单片机设计24秒倒计时.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机设计24秒倒计时

1、具有24s计时功能。 2、设置外部操作开关,控制计时器的直接清零、 启动和暂停 /连续功能。 3、计时器为24秒递减时,计时间隔为1秒。 4、计时器递减到零时,数码显示器不能灭灯,同时发出光电报警信号。 5、有直接清零然后恢复到24秒,准备重新开始计数。 学生在教师指导下,综合运用所学知识完成基于单片机的篮球比赛24秒计时器设计。要求设计一个24秒计时电路,并具有时间显示的功能。 要求: 1、设置外部操作开关,控制计数器的直接清零、启动和暂停/连续计时。 2、要求计时电路递减计时,每隔1秒钟,计时器减1。 3、当计时器减到0时,显示器上显示00,同时发出光电报警信号。 硬件电路: 设计思路: 选用AT89C51作为主控芯片,晶振是6KHz,机械周期为1ms,所以循环10次为1s。P0口作为段码输出,P2.0、P2.1作为位控,高电平有效。数码管是液晶显示,采用动态显示,两个串行口作为中断入口,高电平有效,启动T0定时器/计数器进行计数,低电平有效。图2.2.1是系统硬件设计电路图一。 时间设置完后,启动定时器T0开始定时计数。计时采用倒计时,比如:设置的时间为24秒钟,则在LED上显示24两位数。定时T0计数24秒后中断返回,继续定时计数下一个24秒;同时则在2位LED显示器上显示,表示时间已经过去1秒钟,即为23秒。这样一直持续下去。知道变为“00”时表示赛程结束。如果比赛中裁判叫停,则只要按下键,即可暂停计时。 程序设计: 根据以上流程图,可以用汇编语言编写出篮球计时器24秒倒计时程序,该程序包括主程序,中断程序,延时程序以及显示程序。 # includereg52.h # includeintrins.h # define uint unsigned int # define uchar unsigned char sbit w1=p2^0; //十位位选 sbit w2=p2^1; //个位位选 sbit key1=p1^0; //按键为选码 sbit key2=p1^1; sbit key3=p1^2; sbit BEEP=P2^7; //报警器控制位 uint num,num1,shi,ge; uchar code table[ ]={0x3f,0x06,0x5b,0x4f, //数码管相应的段选码 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(unit z) { uint x,y; for(x=z;x0;x--) for(y=1 10;y0;y--) } /*void delay1(uchar x) //x*0.14MS { uchar i; while(x--) { for(i=0;i13;i++) { } } } void beep(void) { uchar i; for (i=0;i50:i++) { delay 1(4); BEEP=!BEEP; //BEEP 取反 } }*/ /*按键扫描函数*/ void keyscan() { if(key1==0) //开始计算 { delay(5); //延时消抖 if(key1==0) { while(!key1); //松手检测 TR0=1; } } if(key2==0) //暂停计数 { delay(5); //延时消抖 if(key2==0) { while(!key2); //松手检测 TR0=0; while(!key 3);

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档