单片机C语言一秒定时程序详解

单片机C语言一秒定时程序详解,第1张

几M晶振

-----------------------------------

如果是12M晶振的话,那么定时器一个计数频率是12M / 12 = 1M,即一个计数周期是1us。

你给的程序看出,是定时器工作在MODE1。16位计数器。但是你给的程序应该有问题。

一个是TL0 = - 5000 / 256,应该是TL0 = - 5000 % 256;

另一个是if(BUFFER[0]==100),应该是if(BUFFER[0]==200)。

首先你要懂定时计数器原理,51是累加型,MODE1的上限是0xFFFF,即代表可计65535个数。这里程序想计5000个数(5000us),那么TH和TL组成的16位初值应该是60535。要表示这个数,可分两步理解,其一,5000表示成高低字节的两个8位数,高字节为5000 / 256(整数)= 19 = 0x13,低字节为5000 % 256(余数)= 136 = 0x88,结果是5000的16进制表示就是0x1388;其二,65535 - 5000 = 0xFFFF - 0x1388,相当于对0x1388取负。所以就有了TH0 = - 5000 / 256;TL0 = - 5000 % 256;

第二,如上分析,一个中断就是5ms,那么,在中断内部就要判断BUFFER[0]是否到达200,而不是100。如果到了,CIRCLE就向左移一位,然后BUFFER[1]加1,表示增加1秒,同时判断BUFFER[1]是否到60,如果是60就清零。

这小部分代码,还不能说清CIRCLE的具体作用,可能是用来点亮小灯的吧,移一位,小灯也移一次。

不知这样的回答满意不?

>

uchar keyscan(void) //键盘扫描函数,使用行列反转扫描法

{

uchar cord_h,cord_l; //定义行、列值变量

P2=0x0f; //行输出全为0

cord_h=P2&0x0f; //读入列值

if(cord_h!=0x0f) //先检测有无按键按下

{

delay(100); //去抖

if(cord_h!=0x0f)

{

cord_h=P2&0x0f; //读入列值

P2=cord_h|0xf0; //输出当前列值

cord_l=P2&0xf0; //读入行值

return(cord_h+cord_l);//键盘最后组合码值

}

}

}

题目01:在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同的单词。

直接编译,程序执行结果如下图所示:

题目02:编写一个int string_len(char s),返回字符串s的字符长度(不包括\0)。

直接编译,程序执行结果如下图所示:

扩展资料:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

单片机的工作原理与计算机CPU的工作原理是一样的,主要是利用片内的半导体存储器存放用户的程序和数据,单片机的核心中央微处理器CPU中有指令寄存器、指令译码器,程序计数器等部件,由程序计数器寻找下一条要执行的指令,找到后,将指令送给指令寄存器,再由指令译码器翻译执行该指令,完成对指令功能的 *** 作;单片机的工作就是不断地取指令、分析指令、执行指令的循环过程。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本 *** 作。

单片机的周期

时钟周期

时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×106,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12μs。通常也叫做系统时钟周期,是计算机中最基本的、最小的时间单位。

谁说的翡翠毛料贵?这里成本价就可以买到天然好毛料!

广告

在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

机器周期

在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本 *** 作。完成一个基本 *** 作所需要的时间称为机器周期。

以上就是关于单片机C语言一秒定时程序详解全部的内容,包括:单片机C语言一秒定时程序详解、解释程序【单片机类的C】、单片机的C语言程序,就讲解,我没看懂这是个什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9280195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存