日期:2023-08-21访问量:0类型:小程序制作资讯
倒数计时器课程设计(附程序版本) .doc\n
课程设计\n报告 课程名称:微控制器的原理与应用 课程设计
主题:电阻测量 09224 开始和结束日期:2010 年 12 月 31 日 指导老师: 系主任: 讲师评论: 讲师签名: 1年级,设计过程的出勤情况,学习态度等。 0.22、课程设计质量与防御 0.53、设计报告撰写及图纸规范程度 0.3 部门审核意见: 部门主任签名: 部门评审意见: 主任签名: 主任签名: 基于倒数计时器设计任务和要求 本项目是由单片机设置的程序,显示倒数计时器,并能接受单片机矩阵键盘设置的时间。它由4位数码管显示,可实现5种倒计时模式,可选择9999s-0s,999s-0s,99s-0s,9s-0s,通过控制按钮手动输入起始值-0s。近年来,随着计算机在社会领域的渗透,单片机的应用不断深化,同时带动传统的控制检测日新月异。现在,计时器广泛应用于许多领域,例如体育游戏中的计时器;安全措施中的定时警报;游戏中的倒计时;红绿灯维持秩序;红色路灯、交通管制员、闹钟等等。由此可见倒数计时器在社会中的重要性。当然,设计倒数计时器的方法有很多种,这里有两个设计选项。\n
解决方案1:倒数计时器由基于单片机的LCD液晶模块1602显示。主要由单片机控制,倒计时初始时刻的值用按钮设定,倒计时初始值的选择由按钮进行,LCD作为显示模块显示倒计时时间。解决方案2:基于单片机的数字管显示模块显示倒数计时器。它主要由单片机控制,利用按钮设置倒计时初始时刻的值,按钮选择倒计时的初始值。本电路对倒数计时器中的LED数字指示灯采用基于软件的接口方式,即不使用特殊的硬件解码器,而是使用软件程序进行解码。方案对比:通过以上两种方案,我们发现选项二总体上优于方案一。首先,硬件电路虽然简单,但成本较高,编写程序很难达到所需的功能,而方案二中使用的显示模块是比较熟悉的数字管,编写程序相对容易,电路成本也不高,因此,经过综合考虑, 决定使用方案二。硬件单元电路设计与参数计算 LED数码管倒数计时器以单片机为核心,起到控制作用,8255A芯片在系统中用作扩展I/O作用。该系统包括四位数字电子管显示电路、按键电路、复位电路、时钟电路和矩阵键盘电路。倒计时的整体框图如下图1所示:倒计时3.1时钟电路的整体框图单机必须由时钟驱动才能工作。\n
单片机内部有时钟振荡电路,\n
只要外部振荡源能够产生一定的时钟信号并发送到单片机内部的每个单元,就决定了单片机的工作速度。此系统使用内部时钟方法。时钟电路如下图3所示。通常,选择石英晶体振荡器。该电路在上电后延迟约10ms后启动,并在XTAL2引脚处产生幅度约为3V的正弦波时钟信号,其振荡频率主要由石英晶体振荡器的频率决定。电路中的两个电容C1和C2有两个功能:一个是帮助振荡器振动;二是微调振荡器的频率。该系统中C1和C2的值为30pf。 3.2矩阵电路 本系统采用4*4矩阵键盘,线路由8255A芯片PC口下四位控制,PC口高四位控制,键盘扫描为动态低级扫描, 当有按键电路模块数字管显示电路模块矩阵键盘按键按下时,相应行为高电平,扫描结果通过PC端口发送回8255A。该系统矩阵电路的功能是能够设置倒计时的初始值,也可以通过按下软件中设置的几个键的功能来实现倒计时最大初始值的选择。倒计时按千、百、十、位数顺序显示,用四个按钮逼真地显示开关,达到的效果是当按下相应的键时,对应的倒计时从最大初始值开始倒计时,比如S3键,数码管显示99S开始倒计时。\n按
程序中的S8键开始初始值设置,并按相应的编码键,这些键代表0-9来设置四位的初始值。设置初始值时,每次按下一个键时,该键表示的代码都会显示在数码管上。设置四位数字,等待按下独立键跳出矩阵电路。按钮电路如下图4所示。-----------按钮电路原理图 3.3 数码管显示电路 这里我们使用分段数码管显示(包括小数点),平时在显示器上我们一般采用两种方式:一种是静态显示,另一种是动态显示。其中,静态显示的特点是显示稳定无闪烁,程序编写简单,但占用大量端口资源,消耗大量电能;动态显示的特点是显示稳定性不如静态显示,程序编写复杂,但占用的端口资源比静态显示少。在该设计中,为了减少端口资源和降低功耗,采用了动态显示方法。本系统倒计时时间的最大范围为9999S,应显示值的最大范围,这样可以看出数码管显示电路使用的是4位数码管。\n
考虑到数码管有很多段和位,该系统使用8255A作为扩展端口芯片。数码管有段选择和选位控制,本电路有4位选择、段选择(每个数码管的段选择并联连接)。8255芯片的PA口和PB线用于控制四位数的数码管,单片机的PB口用于控制段。电路中使用PNP数码管的四个位选择开关,PNP扮演开关的角色。电路如下图5所示。软件设计及流程图 4.1 倒数计时器主程序流程图 在程序开始时,设置定时器0,给定定时器的初始值,定时器的定时时间为10ms,用作递减定时器时间。然后将 PA 和 PB 端口设置为初始化的 8255 芯片的输出端口,将 PC 的下四位设置为输入端口,将上四位设置为输出端口。进入死环功能,在循环功能中,进入模式9-0s的倒计时,然后扫描矩阵,如果有按键按回键值,执行判断语句。如果为 false,则继续以这种方式执行程序,如果为 false,则跳出此倒计时模式并进入下一个倒计时模式。流程图如下图6所示: 倒数计时器主程序流程图 4.2 计时器0的中断程序流程图 定时器的定时时间为10ms,用作扫描数码管显示,当定时器开启时,定时器0开始计时,此时主程序运行正常,当定时器0的定时时间到来时, 主程序不执行,开始进入中断程序,在中断程序中,如果计时器为1s,则处理时间并将计数标志清除为零,分配给相应的变量,如果没有,则计数标志计数加到1,如果倒计时时间为零,则重新分配, 并且中断程序在执行后返回主程序。\n
如图 7 所示。打开定时器0开始设置定时器0、1工作模式,并打开外部中断1,给定时器0设置初始值将8255芯片初始化为9-0s模式死循环并调用键盘扫描仪进入相应的倒计时模式,有无按键进入主程序同时循环, 调用初值程序,按键跳出倒计时,键值等于4 定时器0中断程序流程图 总电路 5.1 倒数计时器一般原理图 倒计时原理图由单片机控制, 还采用8255A芯片扩展端口,单片机的P3^2至P3^3连接独立的按键电路, 即 2 个微动开关。8255A芯片的PC口连接矩阵键盘,PB口连接显示电路数码管的段选择,起到控制数码管段选择的作用,PA口对应数码管的扫描作用, 其中4个三极管起开关作用,对应数码管的门控。见附图 执行命令计时器 删除保护站点和断点的命令 中断服务程序(完成数码管的扫描) 还原场景 返回 执行主程序 5.2 整体电路仿真及仿真结果分析 系统仿真采用软件,可以通过仿真显示所设计系统的功能, 这对程序的调试有很大帮助。在模拟系统时,首先使用Keil解码器编译编写的程序,同时在模拟器中设置HEX文件进行编译和模拟,没有错误。\n
当所有原件都连接好后,你可以将Keil编译生成的无差错文件加载到其中,方法是右键单击设备,然后左键点击,弹出一个对话框,选择要在文件后面添加的文件,文件要求必须是十六进制文件。然后你可以点击运行来观察现象,看看是否与你的设置一致,如果没有,那么找错误进行修改,一般的错误都在程序中,所以仔细阅读程序的各个部分。启动软件的播放按钮,如上图13所示,上述矩阵键盘设置倒计时初始值和倒计时最大初始值范围选择。按下相应的键,数码管上显示相应的计数范围开始计时,当计时中断时,数字管上的值减少1,即当1S计时时间达到时全部为0时,数字管上的值自动加载为最大计数范围的值。从仿真图中可以看出,该系统的程序已经满足要求。5.3 软件调试采用Keil软件,集成调试环境,集成编辑器、解码器、调试器,支持软件仿真,支持项目管理强大的观察窗口,支持所有数据类型。树状结构显示,一目了然,支持ASM(汇编)、C语言多模块源程序混合调试,在直接修改、编译、调试源程序、错误指令定位。它功能强大,用于调试和编辑程序。该系统的程序是用Keil软件编写的,程序中使用了两个计时器,为了使倒计时时间准确,必须计算计时器的初始值,并在程序完成后生成HEX文件。软件可重复使用以进行仿真。经过仿真,程序符合主题的要求。\n","to":"zh-Hans","":{"":[61,17,435,335,198,250,76,36,24,34,68,58,93,100,269,113,184,200,111,348,35,223,142,183,78,208,43,46,52,256,103,60,290,192,250,376,177,126,97,47,252,198,195,114,208,125,195,175,119,40,243,169,193,132,345,319,72,30,317,411,27,313,92,386,57,191,276,213,185,348,101,227,222,60,255,35,67],"":[26,8,155,82,71,45,28,11,8,8,16,19,28,35,56,27,38,57,31,81,8,61,40,45,16,49,12,11,13,66,30,12,79,54,58,83,46,33,21,11,87,43,42,31,53,35,41,39,31,9,73,64,51,55,106,90,16,12,94,104,11,63,23,107,14,53,91,67,46,79,23,68,58,16,68,14,15]}}]}]
TAG标签:小程序倒计时
日期:2024-02-20 浏览量:131
日期:2023-08-21 浏览量:115