admin管理员组文章数量:1531219
2024年6月19日发(作者:)
中北大学单片机课程设计说明书
1 设计任务与要求
设计一个计时提醒器,要求开机时,显示00,等待输入计时时间,由键盘输入计时分钟
数,按确认键后,计时提醒器开始工作,计时完成后,蜂鸣器发出嘀嘀的提示音。在计时过
程中如果按下键盘取消键则取消计时,系统回到开机时的状态
。
2 方案设计与论证
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,
同时带动传统控制检测日新月益更新。现在,在许多领域中,定时器得到了广泛
的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计
时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。可见倒计时器在
社会中的重要性。当然,设计倒计时器的方法很多,以下是两个设计方案。
方案一:基于AT89C51单片机的LCD液晶显示模块1602显示的倒计时器。
主要是以单片机来控制,用按键来设定倒计时初始时刻的值,LCD1602液晶作为
显示模块来显示剩余的时间。
方案二:基于AT89C51单片机的数码管显示模块显示的倒计时器。主要是以
单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示
剩余的时间。此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的
接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
方案比较:通过以上两个方案,我们发现,方案二总体比方案一好。首先方
案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,
而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造
价不高,因此,综合考虑之后决定采用方案二。
3 硬件单元电路设计与参数计算
LED数码管倒计时器以AT89C51单片机为核心,起着控制作用。系统包括九
位数码管显示电路,按键电路,复位电路,时钟电路以及蜂鸣器电路。倒计时的
总体框图如下图1所示:
第 1 页 共 13 页
中北大学单片机课程设计说明书
按键电路模块
复位电路
晶振电路模块
AT89C51
数码管显示
电路模块
报警电路模
块
图1 倒计时的总体框图
4 软件设计与流程图
本系统中,是利用软件和硬件相互结合,以实现电路功能。软件在系统中起
着举足轻重的作用,利用程序对硬件达到控制作用。因此下面说明软件的实现。
4.1 倒计时器主程序流程图
程序的的开始时初始化数码管的段选和位选,数码管不显示。程序中用到了
两个定时器,接下来先设定定时器0和定时器1的工作方式,并且给两个定时器
装初值,定时器0的定时时间是1ms,用作扫描数码管显示,定时器1的定时时
间是10ms,用作定时器时间的递减。然后给定时器设定初值,开启定时器0。最
后进入死循环函数,在循环函数中,对按键进行扫描,如果有键按下,执行按键
函数,并检查是否需要报警。如果没有按键按下,则直接检查是否需要报警。流
程图如下图7所示:
第 2 页 共 13 页
中北大学单片机课程设计说明书
开始
初始化P0口和P3
口,全置为高电平
设定倒计时的初值
设定定时器0,1工作
方式
开启定时器0
给定时器0,1设初
值
执行报警程序
有按键按
下?
否
是
执行按键功能函
数prockey();
执行报警程序
图7 倒计时器主程序流程图
第 3 页 共 13 页
中北大学单片机课程设计说明书
4.2 定时器0的中断程序流程图
定时器0的定时时间是1ms,用作扫描数码管显示,在定时器0开启时,定
时器0开始定时,此时主程序正常运行,当定时器0的定时时间到时,主程序不
在执行,开始进入中断程序,在中断程序中,对9位数码管进行动态扫描。中断
程序执行完后返回主程序。如图8所示。
执行主程序
执行一条指令
取下一条指令
定时器0有
中断请求?
否
是
保护现场和断点
定时器0中断服务程序
(完成数码管各位的扫描)
恢复现场
返回
图8定时器0的中断程序流程图
第 4 页 共 13 页
中北大学单片机课程设计说明书
4.3 定时器1的中断程序流程图
定时器1的定时时间是10ms,用作是倒计时时间以秒来自减,在定时器1
开启时,定时器1开始定时,此时主程序正常运行,当定时器0的定时时间到时,
主程序不在执行,开始进入中断程序,在中断程序中,设定倒计时的时间变化。
中断程序执行完后返回主程序。如图9所示。
执行主程序
执行一条指令
取下一条指令
定时器1有
中断请求?
否
是
保护现场和断点
定时器1中断服务程序
(完成时间以秒为最小单位递减)
恢复现场
返回
图9 定时器1的中断程序流程图
第 5 页 共 13 页
中北大学单片机课程设计说明书
5.总电路
5.1 倒计时器总原理图
倒计时原理图由一块AT89SC51单片机器控制作用,单片机的P1^0到P1^3
分别接的按键电路,即4个微动开关。P0口与显示电路的数码管的段选相连,
起到控制数码管的段选的的作用。P3口和P2^0口分别对应数码管的9个位选,
起到对9个数码管的扫描作用,其中的9个三极管起着开关作用,对应数码管的
选通。P2^1口接蜂鸣器报警电路。如图10所示。
图10 倒计时器总原理图
5.2 PCB制板图
本系统把总电路图分成两个模块来画PCB,一个是最小系统模块,另一
个是显示模块。
(1) 倒计时器最小系统模块,如下图11。
第 6 页 共 13 页
中北大学单片机课程设计说明书
图11 倒计时器最小系统模块
(2) 倒计时器显示模块,如下图12。
图12 倒计时器显示模块
5.3 整体电路仿真图以及仿真结果分析
系统仿真用的是Proteus软件,可通过仿真显示出所设计系统的功能,对于
程序的调试等有很大的帮助。
第 7 页 共 13 页
中北大学单片机课程设计说明书
系统仿真时首先在使用Keil C 译码器,把所写的程序进行编译,同时在仿
真器里设置生成HEX文件,编译无错误进行Proteus仿真。等所有的原件都连接
完成后可以把Keil C编译生成的无错误文件加载到AT89C51中,方法是,右键
点中器件然后再用左键点击,出来一个对话框在program file后选择要添加的
文件,文件要求必须是HEX文件。然后可以点击运行观察现象,看与自己设置的
是否符合,如果不相符再查找错误进行修改,一般的错误都是程序中的,所以要
认真的读取程序的每一个部分。系统的仿真图如下图13所示。
图13 倒计时器仿真图
启动Proteus软件的play按钮,出现如上图12所示,以上四个开关分别设
定倒计时的天,时,分,秒的值。并且设定天的按键还可以开启倒计时,设定秒
的按键也可以暂停倒计时。
当天,时,分,秒的值全为0时,发出报警声。从仿真图可知,本系统的程
序已达到要求。
在此电路系统的仿真中,应该注意的问题有数码管的Minimum Trigger Time
项设定的值要合适,此电路中设定为1us。还有就是在程序中数码管的扫描时间
要合适。以保证数码管显示稳定,不闪烁。
第 8 页 共 13 页
中北大学单片机课程设计说明书
5.4 软件调试
用到了Keil C软件,集成调试环境,集成了编辑器、译码器、调试器,支
持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。树状结
构显示,一目了然,支持ASM(汇编)、C语言多模块源程序混合调试,在直接修
改、编译、调试源程序,错误指令定位。功能很强大,用于对程序的调试和编辑。
本系统的程序的编写就是在Keil C软件中完成的,在程序中用到了两个定时器,
为了使倒计时的时间准确,必须计算对定时器的初值,当程序完成之后,生成
HEX文件。再利用Proteus软件进行仿真。经过仿真,程序符合题目的要求。
5 性能测试与分析
按照设计程序的分析,LED数码管的动态扫描的频率是1000HZ,在实际使用
时完全没有闪烁。在程序中,定时器10ms中断一次,变量 sec100自增,中断
100次时,秒的显示自减,用定时器来定时,准确。电路中的四个按键可以分别
用来设定倒计时的天,时,分,秒。另外,设定天的按键还可以用来开启倒计时,
设定秒的按键还可以暂停倒计时。当数码管的显示全0时,蜂鸣器报警。系统由
5V电源来驱动,经过测是试与分析,此系统稳定可用。
6 汇编语言源程序
ORG 00H
JMP START
ORG 30H
START:MOV P2,#00H ;位选置低电平 显示00
MOV P3,#0FH ;键盘置P3.4低电平
MOV R4,#0 ;显示标志 显示00
MOV DPTR,#TABLE;
SETB P0.7
K: MOV R3,#00H ;按键按下或未弹起标志
JNB P3.0,W1 ;判断按键S1是否按下 按下转判断S1按键
是否弹起
JNB P3.1,W2 ;判断按键S2是否按下 按下转判断S2按键
第 9 页 共 13 页
中北大学单片机课程设计说明书
是否弹起
JNB P3.2,INT ;判断按键S3是否按下按下转倒计时设
置子程序
JMP DISP ;转显示和判断按键S4是否按下
W1: JB P3.0,IN1 ;判断按键S1是否弹起 弹起转加1子
程序设置
MOV R3,#1 ;设置按键S1未弹起标志
JMP DISP ;转显示和判断按键S4是否按下
W2: JB P3.1,IN0 ;判断按键S2是否弹起 弹起转减1子
程序设置
MOV R3,#2 ;设置按键S2未弹起标志
DISP: JNB P3.3,START ;判断按键S3是否按下 按下转复位
MOV A,R4 ;
MOV B,#10
DIV AB
MOV 21H,B
DISP1:SETB P2.1 ;显示十位
CLR P2.0
LCALL DEL ;调用显示和延时子程序
DISP2:MOV A,21H ;显示个位
SETB P2.0
CLR P2.1
LCALL DEL ;调用显示和延时子程序
CJNE R3,#4,K1 ;判断按键S3是否按下 否就转判断其他按键
按下情况
DJNZ R2,DISP ;倒计时显示 延
时:0.5msX2X200=200ms=0.2s
DJNZ R1,DISP ;倒计时显示 延
时:0.5msX2X5+200ms=205ms=0.205s
第 10 页 共 13 页
中北大学单片机课程设计说明书
AJMP INT ;转倒计时设置子程序
K1: INC R3 ;判断按键按下或未弹起标志加1
CJNE R3,#3,K2 ;判断S2是否按下 否就转判断其他按键
按下情况
AJMP W2 ;转继续转判断S2按键是否弹起
K2: CJNE R3,#2,K ;判断按键S1是否按下,否就转判断其他按键
按下情况
AJMP W1 ;转继续转判断S1按键是否弹起
IN1: CJNE R4,#99,ADD1 ;判断当前值是否为99 否就转加1
子程序
AJMP START ;复位
ADD1: INC R4 ;当前值加1(加1子程序)
AJMP K ;转继续判断是否有按键按下
INT: MOV R3,#4 ;设置倒计时标志(倒计时子程序设置)
MOV R2,#200 ;置显示中循环次数
MOV R1,#5 ;置显示外循环次数
INO: CJNE R4,#0,SUBB1 ;判断当前值是否为0,否就转减1子程序
CJNE R3,#4,SUBB0 ;当前值为0判断S3是否按下否S2按下转减1
AJMP START ;转复位
SUBB0:MOV R4,#100 ;100-1=99(0-1=99)
SUBB1:DJNZ R4,DISP ;转减1子程序
CJNE R3,#4,K ;判断S3是否按下 否就转继续判断是否有按键按下
CLR P0.7 ;蜂鸣
MOV P2,#00H ;位选置0 开
MOV P1,#3FH ;当前值显示00
MOV R3,#5 ;置蜂鸣延时次数标志
DELAY:MOV R7,250
DELA:MOV R6,#20
DEL:MOVC A,@A+DPTR
第 11 页 共 13 页
中北大学单片机课程设计说明书
MOV P1,A
MOV R5,#200
DJNZ R5,$ ;2机周*250*1us/机周=500us=0.5ms
CJNE R3,#5,EXIT ;判断是否是蜂鸣的延时 不是转中断返回
DJNZ R6,DEL ;0.5ms*10=5ms
DJNZ R7,DELA ;5ms*200=1s
AJMP START ;复位
EXIT: RET
TABLE:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END
7 结论与心得
在设计制作365天倒计时器的过程中,我深切体会到,实践是理论运用的最好检
验。本次设计是对我三年所学知识的一次综合性检测和考验,无论是动手能力还
是理论知识运用能力都得到了提高,同时加深了我对网络资源认识,大大提高了
查阅资料的能力和效率,使我有充足的时间投入到电路制作当中。本系统的制作
主要应用到了模拟电子技术、数字电子技术、单片机控制技术、电子工艺等多方
面的知识。在硬件调试过程中,我也学会不少的东西,掌握一些调试方法。在设
计仿真图和编些程序中,对Proteus和Keil等软件掌握的更加牢固,而且所设
计的基于单片机的365天倒计时器,精确度高,达到了应用要求。
第 12 页 共 13 页
中北大学单片机课程设计说明书
参考文献
[1] 余永权.AT89系列单片机应用技术.北京:北京航空航天大学出版社,2002
[2] 沈红卫.单片机应用系统设计实例与分析. 北京:北京航空航天大学出版社,
2003
[3] 吴金戎.8051单片机实践与应用.北京:清华大学出版社,2002
[4] 胡汉才.单片机原理及系统设计.北京:清华大学出版社,2002
[5] 何希才.新型集成电路应用实例[M].北京:电子工业出版社, 2002
[6] 马中梅.单片机的汇编语言程序设计.北京:北京航空航天大学出版社,2004
[7] 公茂法.单片机接口实例集.北京:西安电子科技大学出版社,2004
[8]51系列单片机设计实例:北京航空航天大学出版社,2003.3
[9]单片机应用技术 北京:中国电力出版社, 2003
第 13 页 共 13 页
版权声明:本文标题:计时提醒器设计 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1718782140a724367.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论