欢迎来到天天文库
浏览记录
ID:26031884
大小:121.50 KB
页数:3页
时间:2018-11-24
《七.定时器 T0 的应用---9.9 秒计时设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、七.定时器T0的应用---9.9秒计时设计[实验任务]开始时,显示“00”,第1次按下BY1后就开始计时。第2次按BY1后,计时停止。第3次按BY1后,计时归零。[硬件电路][C语言源程序]#include//必须用这个子函数库unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharsec;//定义计数值,每过1/10秒,sec加一unsignedcharkeycnt=0;unsignedinttcnt;//键值判断sbitgewei=P2^0;/
2、/个位选通定义sbitshiwei=P2^1;//十位选通定义voidDelay(unsignedinttc)//延时程序{while(tc!=0){unsignedinti;for(i=0;i<100;i++);tc--;}}voidLED()//LED显示函数{shiwei=0;P0=table[sec/10];Delay(8);shiwei=1;gewei=0;P0=table[sec%10];Delay(5);gewei=1;}voidKEY()//按键扫描程序{unsignedchari,j;if(P3_0==0){for(i=20;i>0;i--)//延时去干扰for(j=2
3、48;j>0;j--);if(P3_0==0){keycnt++;switch(keycnt)//按下次数判断{case1://第一次按下TH0=0x06;//对TH0TL0赋值TL0=0x06;TR0=1;//开始定时break;case2://第二次按下TR0=0;//定时结束break;case3://第三次按下keycnt=0;//重新开始判断键值sec=0;//计数重新从零开始break;}while(P3_0==0);}}}//请注意写程序时的格式规范,此处是为了节省纸张voidt0(void)interrupt1using0//定时中断服务函数{tcnt++;//每过250
4、usttcnt加一if(tcnt==400)//计满400次(1/10秒)时{tcnt=0;//重新再计sec++;if(sec==100)//定时10秒,在从零开始计时{sec=0;}}}voidmain(void){TMOD=0x02;//定时器工作在方式2ET0=1;EA=1;sec=0;while(1){KEY();LED();}}
此文档下载收益归作者所有