所在位置 : 首页 > 游戏问答 > 详情

倒计时器设计(单片机课程设计报告).

文章来源:网络整理作者:囧茄发布时间:2023-03-24 09:11:03

《倒计时定时器设计(单片机课程设计报告)》。 由会员共享,可在线阅读。 更多《倒计时定时器设计(单片机课程设计报告)》(32页),请在人人文库在线搜索。

一、学校课程设计报告 课程名称:单片机原理与应用 课程设计主题:倒计时 系别:通信与控制工程系 专业:电子信息工程 班级:10年级 电信二班 学生姓名:张凡、杜斌 学号: , 起止日期: 2012年12月24日 2013年1月6日 指导教师: 教研室主任: 指导教师评价: 指导教师签名: 年、月、日、成绩、项目权重、成绩、张帆、杜斌 1.设计过程中出勤、学习态度等0.22,课程设计质量与答辩0.53,设计报告撰写与蓝图标准化水平0.3总分教研室审核意见:教研室主任签字:年,月、日教学部审核意见:主任署名:年、月 日本本系统采用首款芯片,设计倒数计时器,

2、倒计时定时器可在数码管上显示倒计时时间,可通过按键设置时间,采用4位数码管显示,可实现5种倒计时模式,可通过按键选择控制键9999s-0s、999s-0s、99s-0s、9s-0s,初始值为手动输入-0s特性。 首先检测按键,当相应的按键被按下时,进入相应的倒计时模式。 工作模式五为倒计时模式,初始值可调,初始值也由独立按键设置。 定时器中断 20 次后,即 1 秒后,初始值会自动减 1。 初始值减为零后,计时停止。关键词:; 数码管显示; 独立按键; 振荡电路设计要求 11 方案论证与比较 11.1 方案一 11.2 方案二 11.3 方案比较与选择 12 单元电路设计与计算 22.1 引言

3. 22.2 时钟振荡电路设计 32.3 复位电路设计 32.4 数码管显示电路设计 42.5 独立按键电路设计 53 系统软件设计 63.1 倒计时主程序流程 63.2 定时器工作流程 74 系统功能测试及总体指标 85 详细仪器清单 96 总结与思考与致谢 10 参考文献 10 附录 1:倒计时定时器 DXP 原理图 1.1 附录 2:倒计时定时器电路 PCB 板图 12 附录 3:实物图 13 附录 4:程序 1417 倒计时定时器设计任务和要求单片机,倒计时时间显示在数码管上倒计时器,矩阵键盘设置的时间可以被单片机接受。 4位数码管显示,可实现5种倒计时模式,通过控制按键选择9999s-0s、999s-0s、99

4. s-03 9s-0s,初始值为手动输入-0s。 1 方案演示与对比 现在,定时器在很多领域都得到了广泛的应用,比如体育比赛中的定时器; 游戏倒计时; 交通信号灯、交通管制员、闹钟等。 可见倒计时在社会中的重要性。 当然,倒数计时器的设计方法有很多种,以下是两种设计方案。 1.1 方案一是基于单片机的LCD液晶显示模块1602显示的倒数计时器。 它主要由单片机控制,用按键设置倒计时初始值,用按键选择倒计时初始值,夜景作为显示模块显示倒计时时间。 1.2 方案二是基于单片机数码管显示模块显示的倒计时定时器,主要由单片机控制,通过按键设置初始倒计时时间。

5. 对于刻度值,按下按钮选择倒计时的初始值。 采用基于软件的接口方式,即不使用专门的硬件解码器,而是使用软件程序进行解码。 1.3 方案对比与选择 对比两种方案,我们发现方案2总体上优于方案1。首先,方案1的硬件电路虽然简单,但成本高,编写程序难度大实现需要的功能,而方案2中使用的显示模块是比较熟悉的数码管,编程比较容易,电路成本也不高。 因此,经过综合考虑,决定采用方案2。 2单元电路设计 LED数码管倒计时定时器以正则芯片为核心,起控制作用。 该系统包括四位数码管显示电路、按键电路、复位电路、时钟振荡电路。倒计时整体框图如下图1所示: 图1 倒计时整体框图 2.1介绍

6. 具有 8K 系统内可编程闪存的低功耗、高性能预 CMOS 微控制器。 在单个芯片上,它具有智能 8 位 CPU 和系统内可编程闪存,使其成为许多嵌入式控制应用系统的高度灵活和超高效的解决方案。 具有以下标准特性: 8k字节Flash,512字节RAM 32位I/O口线,看门狗定时器,内置4KB位电路,2个16位定时器/计数器,1个6向量2级中断结构,线路端口为全双工。 此外,它还可以降为 0Hz 静态逻辑操作,并支持 2 种软件可选择的省电模式。 在空闲模式下,CPU停止工作,允许RAM定时器/计数器、串口和中断继续工作。掉电保护

7、在保护模式下,RAM的内容被保存,振荡器被冻结,单片机的所有工作停止,直到下一次中断或硬件复位。 最高工作频率为35MHz 6T/12T可选。 UIP1.1.T2EX Pl.2 Pl.3 P1.4.TNT2 pi.s.intJ Pl TNH3 Pl."lNT*P3.C.RXDG P3.1 TXDC Pa.XWTG P3.3.1NT1 P3.4F) P3 ,5-Tl P3.AQ- P3.7.-RI>ftST AL£ PSEN Gun vccPO.O-ADO P0.1 ADI M.1AD2 P0.3.AD3 M.4.AD4 PO.5.AD5 PO.iS .AI>PD.7.&

8. #39;ADP1.0.-A&P2.1.A&P2.2A1©P2.3A11 P2.4/A12 M.5.A13 P2.t5 AHXL 图2 引脚图 2.2 时钟振荡电路设计 MCU 必须时钟 It只能在驱动下工作。 单片机内部有时钟振荡电路。 只要外部振荡源能产生一定的时钟信号,送到单片机内部的各个单元,就决定了单片机的工作速度。 本系统采用内部时钟方式。 时钟电路如下图2所示。 通常使用石英晶体振荡器。 振荡器在上电延时约10ms后开始振荡,并在XTAL2引脚产生幅度约为3V的正弦波时钟信号。 振荡频率主要由石英晶体的频率决定。

9、电路中的两个电容C1、C2有两个作用:一是帮助振荡器起振; 另一种是微调振荡器的频率。 本系统C1、C2取值为30pf。 < XTAL 图3 时钟振荡电路 2.3 复位电路设计 在上电或复位过程中,控制CPU复位状态:让CPU在此期间一直处于复位状态,而不是一上电或刚复位就开始工作,防止 CPU 发出错误指令和执行错误操作也可以提高 EMC 性能。 无论用户使用哪种类型的单片机,​​都涉及到单片机复位电路的设计。 单片机复位电路的设计直接影响到整个系统的可靠性。很多用户设计了单片机系统倒计时器,并在实验室调试成功,但存在“死机”、“程序飞”等现象当场。 这主要是由于单片机的复杂性

10、位电路设计不可靠造成的。 基本复位方法 基本复位方法 基本复位方法 单片机在启动时需要进行复位,使CPUS系统的各个部件处于一定的初始状态,并从初始状态开始工作。 89系列单片机的复位信号由RST引脚输入到芯片中的施密特触发器。 当系统处于正常工作状态且振荡器稳定时,如果RST引脚出现高电平并保持2个机器周期以上(24个振荡周期),CPUB可以响应并复位系统。 单片机系统的复位方式有:手动按键复位和上电复位。 在本系统中,我们选择手动按键复位,需要人为给复位输入端RST加一个高电平(图1)。 一般的方法是在RST端和电源正极Vcc之间接一个按钮,当人为按下时

11、按下按钮时,Vcc的+5V电平会直接加到RS基极上。 手动按钮复位电路如图所示。 无论人移动多快,按钮都会保持连接几十毫秒,完全可以满足复位的时间要求。 °; 1-JIt 复位电路 侬VCC-7- 图4 复位电路 2.4 数码管显示电路设计 LED数码管(LED)是由多个发光二极管封装在一起组成的“8”字形器件。 内部连接都搞定了,只引出各自的笔画,公共电极。 LED数码管常用的段数一般为7段,有的加小数点,有的类似于3位“+1”型。有半数,1、2、3、4、 5、6、8、10位等,LED数码管根据LED的接法不同

12、分为共阴极和共阳极,了解LED的这些特性对于编程是非常重要的,因为不同类型的数码管除了硬件电路外还有不同的编程方法。 共阴、共阳数码管的内部电路发光原理相同,只是供电极性不同。 颜色有红、绿、蓝、黄等。 LED数码管广泛应用于仪器、钟表、车站、家电等场合。 选择时要注意产品尺寸、颜色、功耗、亮度、波长等。 这里我们使用8段数码管显示(包括小数点),通常我们使用两种显示方式:一种是静态显示,一种是动态显示。其中静态显示的特点是显示是稳定不闪烁,编程简单,但占用端口资源多,功耗大; 动态显示的特点是显示稳定性不如静态,编程难度更大

13、复杂,但比静态显示占用端口资源少。 本设计中,为了减少端口资源,降低功耗,采用了动态显示的方式。 本系统倒计时时间的最大量程为9999S,要显示最大量程的值,由此可知,数码管显示电路需要用4个数码管YCt”1代fYOC来产生一个,R5Vb为store one I, 匚YQC butt one t Class vcc Q 显示电路图 5 数码管显示电路原理图 2.5 独立按键电路设计 通过5个独立按键控制5种不同的工作模式,由于第5种工作模式是可调倒计时模式,因此增加了四个调整初始值的按钮,一个定时启/停按钮 图6 独立按键电路 图3 系统软件设计 3.1 倒数定时器主程序流程图 程序开始时,首先设置定时器0,首先设置定时器,定时器设置初始值。

14.检测按键是否按下,如果有按键按下,则进入相应的倒计时模式。 定时器0的定时时间为50ms。 变量aa每进入一次定时中断自动加1。 当 aa 等于 20 时,它计为一秒。 此时定时器清零,重新赋初值,将之前设置的倒计时初值num自动减1,同时进行相关显示。 图7主程序流程图 3.2中断定时器0的程序流程 定时器0的定时时间为50ms,用于扫描数码管显示。 当定时器 0 打开时,定时器 0 开始计时。 此时主程序运行正常。 当定时器0计时时间到,主程序不执行,开始进入中断程序。 中断程序中,如果时间为1s,则处理完时间并清零计数标志,赋值给相应的变量并减1,如果不是则计数标志加1,如果倒计时时间为零

15、重新赋值,中断程序执行完毕后返回主程序。 如图8所示。 图8定时器0中断程序流程图 4 系统功能测试 硬件调试的主要任务是排除硬件故障,包括设计错误和工艺故障。 1、离线检查:用万用表根据电路原理图一步步检查印制电路中所有器件的引脚,特别是电源是否连接正确:检查数据总线、地址总线和控制是否正确母线有短路故障,时序是否正确。 正确的; 检查各开关按钮是否能正常切换,连接是否正常; 各限流电阻是否短路等。为了保护芯片,先检查各IC的电位,确认无误后再插入芯片进行检查。 2、在线调试:暂时拔下89C52芯片,将仿真器40插入89C52芯片插座进行调试,检查键盘/显示接口电路是否满足设计要求

16、可以使用一些简单的测试软件来检查接口是否正常工作。 比如我们可以设计一个软件,让89C52的P1、P2口输出55H或AAH,同时读取P3口。 运行后用万用表检测对应端口电平是否为一高一低。 8位是否为1,如果正常,说明89C52工作正常。 也可以设计一个静态显示程序,让所有的LED都显示“8”。 检查 LED 是好是坏。 如果运行测试结果不符合预期,很容易根据故障现象判断故障原因,采取有针对性的措施排除故障。 起初,数码管的亮度并不理想。 经检查发现是段选择电阻(P0口接限流电阻)偏大。 最后换一个470欧的电阻后,数码管显示正常。软件调试的任务是使用开发工具

17、进行在线仿真调试,发现并改正程序错误,同时也发现硬件故障。 程序的调试应逐个模块进行。 首先对各个功能子程序分别进行调试,检查程序是否能实现预期的功能,接口电路的控制是否正常等,最后将子程序逐级连接起来进行联调。 本系统的编程是在Keil C软件中用C语言完成的。 程序中使用了定时器。 为了使倒计时时间准确,必须计算定时器的初值。 程序完成后,会生成一个 HEX 文件。 然后用软件模拟。 经过模拟和实际测试,在实际使用中完全没有出现闪烁现象。 程序中,定时器每50ms中断一次,变量aa自增。 中断20次后,秒显示递减,误差很小,约为0.1%。电路中的五个按键可以

18、分别用于设置倒计时的计数范围,系统由5V电源驱动。 经测试分析,系统稳定可用,满足设计要求。 5 详细仪器清单表 1 仪器清单 仪器名称 数量独立按键 10 USB 接口 1 个开关 2 四位共阴数码管 1 晶振电阻 8200R 电阻 830PF 电容 28.2K 电阻 1470R 电阻 122UF 电容 16 总结与致谢 在设计过程中倒计时课程设计 在实习期间,我深刻体会到实践是对理论应用的最好检验。 本次设计是对我本学期所学知识的综合检验和检验。 动手能力和理论知识的应用能力都得到了提高。 同时加深了我对网络资源的了解,大大提高了我查阅资料的能力。 和效率,让我可以有更多的时间来设计软件部分。这个系统需要我们

19、必须有丰富的编程经验,能看懂单片机开发板的原理图,熟悉那些I/O口的功能,能准确运用数字等各种知识力量。 在软件调试的过程中,我学到了很多,掌握了一些调试软件的方法。 在仿真图和设计电路图的设计中,对Keil、Keil等软件的掌握更加牢固,设计的基于单片机的倒计时定时器精度高,满足应用要求。 本次课程设计使我掌握了很多实践知识。 在老师和同学的帮助下,我对单片机有了更进一步的了解。 这次课程设计对我来说意义深远,它让我对未来看得更清楚。 在这里,我要对那些传授我知识的老师们表示深深的感谢。 是你们的无私奉献,造就了今天有一定知识的我们。参考文献1 朱定华,戴如萍

20. 单片机原理与应用 M 北京:清华大学出版社,20032 楼然淼,李光飞. 单片机课程设计指导 M. 北京航空航天大学出版社,20073 张鑫,单片机原理与应用(第2版) M.电子工业出版社,20104 谭浩强。 C程序设计(第二版) 清华大学出版社,1999 附录一:倒计时定时器DXP原理图 附录二:倒计时定时器电路PCB板图K 附录三:物理图 附录四:程序# /* 设计者:杜斌,张Fan*/# uchar char# uint ; ; 图表

21. emp41;char ,a;char code duan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;=P280;sbit key2= P2A1; =P282;key4=P283;sbit key5=P3A6;sbit =P3A5; sbit=P2A4; sbit=P2A5; =P2A6; sbit JIAGE=P2A7;uint num1=9999,num2=99

22, 9, num3=99, num4=9, num5=0, t, i; 无效延迟(uint t); void main() P1=0xf0; P0=0x3f; TMOD=0x01; TH0=(65536-50000) /256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1)if(key1=0)delay(10);if(key1 =0)键1=0; 对于(我= 0;我

23.;P0=;延迟(6);如果(key2=0)延迟(10);如果(key2=0)key2=0;for(i=0;i

24.);if(key4=0)delay(10);if(key4=0)key4=0;P1=0xfe;for(i=0;)num5=0;while(!);delay(20); while(!);if(=0)delay(10);if(=0)num5=num5+100;if(num5>10000)num

25. 5=0;while(!);delay(20);while(!);if(=0) delay(10);if(=0)num5=num5+10;if(num5>10000)num5= 0;while(!);delay(20);while(!);if(JIAGE=0)delay(0);num5=num5+1;if(num5>10000)while(!JIAGE);delay(20) ;while(!JIAGE);for(i=0;i

26. =0xfd;中断;案例 2:P1=0xfb;中断;案例 3:P1=0xf7;中断;P0=;延迟(6); 延迟(uint t)uint i,j;for(i=0;i

27. mp13=/1000;if(num1=0)P0=0x3f;EA=0;numi-;if(key2=0)=;=/10;=/100;P0=0x3f;EA=0;num2- ;if(key3=0)=;=/10;if(num3=0)P0=0x3f;EA=0; num3-;27if(key4=0)=;if(num4=0)P0=0x3f;EA=0;num4-;if(key5=0)=;=/10;=/100;=/1000;P0= 0x3f;如果(!)&&(num5>0) num5-;#

高考倒计时器

高考倒计时器

类型:休闲游戏大小: 131MB

玩法:高考倒计时器

立即下载