51单片机99秒倒计时C语言源程序

上传人:飞*** 文档编号:39932543 上传时间:2018-05-21 格式:DOC 页数:3 大小:20KB
返回 下载 相关 举报
51单片机99秒倒计时C语言源程序_第1页
第1页 / 共3页
51单片机99秒倒计时C语言源程序_第2页
第2页 / 共3页
51单片机99秒倒计时C语言源程序_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《51单片机99秒倒计时C语言源程序》由会员分享,可在线阅读,更多相关《51单片机99秒倒计时C语言源程序(3页珍藏版)》请在金锄头文库上搜索。

1、 51 单片机 99 秒倒计时 C 语言源程序51 单片机实现数码管 99 秒倒计时,其实很简单,就是使用定时器中断来实 现。目的就是学习怎样用单片机实现倒计时,从而实现一些延时控制类的东西, 99 秒只是一个例子,你完全可以做出任意倒计时如 10 秒倒计时程序。定时器定 时时间计算公式:初值 X=M(最大计时)-计数值。初值,换算成十六进制,高位给 TH0,低位给 TL0,如果用定时器 0 的话。M(最大计时)如果是 16 位的,就是 2 的 16 次方,最大定时,65535 微秒, 实现 1 秒定时,可以通过定时 10 毫秒,然后 100 次改变一次秒值即可。10*100 毫秒=1S计数值

2、:你要定时多长时间,如果定时 1 毫秒,就是 1000 微秒,(单位为 微秒),如果定时 10 毫秒,就是 10000(微秒),当然,最大定时被定时器本 身位数限制了,最大 2 的 16 次方(16 位定时计数器),只能定时 65.535 毫秒。 定时 1S 当然不可能 1S 定时器中断。下面为实现 99 秒倒计时 C 语言源程序/*了解定时器,这样的话,就可以做一些基本的实验了,如定时炸弹,10 秒 后打开关闭继电器*/ /*数码管,12M 晶振*/ #include #define uchar unsigned char sbit p20 = P20;sbit p21 = P21;code

3、 unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;code unsigned chartab_dot=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar shiwei; uchar gewei;int timecounter = 50;void delay(unsigned int cnt) while(-cnt); void main() TMOD|=0x01; /*定时器 0 16 位定时器 X=65535-10000(10 毫秒) =5553

4、5=D8F0(十六进制)定时 10ms*/ TH0=0xd8; TL0=0xf0; IE=0x82; /这里是中断优先级控制 EA=1(开总中断),ET0=1(定时器 0 允 许中断),这里用定时器 0 来定时 TR0=1; /开定时器 0while(1) P0=shiwei; /99 的十位 P2=0; /99 的个位, delay(300); /动态扫描数码管延时 P0=gewei; P2=1; delay(300); void timer0(void) interrupt 1 using 1 /定时器 0 中断 static uchar second=timecounter,count; /99 可以任意改TH0=0xd8; /定时 10 毫秒 TL0=0xf0; count+; if(count=10) /10 毫秒定时,延时为 10*10=100(毫秒)=0.1 秒 count=0; second-; if(second=0) P20 = P20;P21 = P21;second=timecounter; /回到 99 再循环来,当然,可以做其他的控制, shiwei=tab_dotsecond/10; /数码管 10 位 gewei=tabsecond%10; /数码管个位 void keyscan(void)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号