基于单片机的智能电子钟系统设计毕业设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的智能电子钟系统设计
姓名:李永健、王海、吕军梅、巩珍珍
课题组的分工或贡献:每人完成的百分比或者每人负责的内容课程名称: MCS-51单片机应用设计
指导教师:李林
2014年12月
基于单片机的智能电子钟系统设计
李永健、王海、吕军梅、巩珍珍
(信息科学与工程学院)
摘要:电子钟是一种利用数字电路来显示时间的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。本设计通过以单片机芯片STC89C51为核心,通过软件编程完成时钟及定时的基本功能,温度芯片DS18B20完成温度测量功能。采用了六位数码管动态显示时、分、秒,两个LED灯分别指示上下午,同时还有两个LED灯每半秒分别闪烁一次。
通过4个外部按键可以控制小时和分钟的定时和定闹以及报警。此电子钟具有性能优越,操作简单等优点。
关键词:智能电子钟、STC89C51、LED数码管、DS18B20
目录
一、项目目的
二、项目要求
三、基本原理
四、设计方案
(一)系统整体设计思想
(二) 电子钟计时
(三) 数码管显示
(四) 调时
(五) 定闹、报警
(六) 温度采集
五、结论
六、参考文献
七、附录一
附录二
一、项目目的
1. 掌握单片机各个功能模块(并行I/O口、中断系统、定时器/计数器)的工作原理、性能和特点;
2、掌握单片机外围电路的设计方法和仿真方法;
3、掌握单片机外围电路的调试方法;
4、掌握单片机外围电路设计报告的撰写方法;
5、培养团队合作精神、项目组织与管理、交流表达能力;
6、培养责任感和职业道德。
二、项目要求
本课程三级项目要求学生使用MCS-51系列单片机设计并制作一个具有时间显示、按键调时、闹钟报警、温度测量、遥控和自动调时等功能的软硬件系统,可实现六项基本功能分别如下:
1) 时间显示:采用六个数码管显示当前时间:小时、分钟、秒。
2) 温度显示:采用两个数码管显示当前环境温度。
3) 上下午指示:采用两个发光二极管来指示上下午。
4) 半秒提示:采用两个发光二极管,每隔半秒闪烁。
5) 调时功能:采用三个按键(K1-K3)来调整时间,步骤如下:
a)按下K1键,开始调小时,同时2个小时数码管闪烁。
b)按下K2键,小时加;按下K3键,小时减。
c)小时调整好后,再按下K1键,开始调分钟,同时分钟数码管闪烁。
d)按下K2键,分钟加;按下K3键,分钟减。
e)调整好分钟后,再按下K1键,调时结束。
6) 闹钟功能:采用三个按键(K2-K4)来调整闹钟,步骤如下:
a)按下K4键,开始调小时,同时2个小时数码管闪烁。 b)按下K2键,小时加;按下K3键,小时减。
c)小时调整好后,再按下K4键,开始调分钟,同时分钟数码管闪烁。 d)按下K2键,分钟加;按下K3键,分钟减。 e)调整好分钟后,再按下K4键,定闹结束。
闹钟定时的时间到后,蜂鸣器/扬声器发出提示音;用户需按K2-k4键来取消闹钟警告。 三、基本原理
利用软件编程借助于定时器/计数器0实现间隔为1s 的定时功能,格式为秒,分,时,在其中断服务程序中实现对小时、分钟、秒单元数值的调整。主程序通过不断循环调用调时子程序,实现整个功能。利用嵌套在调时子程序中的显示子程序实现上下午指示和半秒闪烁。利用温度芯片DS18B20来测量温度。四、设计方案
(一)系统整体设计思想 总体设计框图:
电源
STC89C52
单 片 机
DS18B20 温度芯片 LED 灯指示 (上下午、半秒)
8片数码管显示
按键
(k1~k4)
报警
通过定时器/计数器0实现1s的计时,将它设计成内部中断,即每计满1s 产生中断信号,主程序转去执行定时器0的中断服务程序,按照时间规则改变相应RAM存储单元的数值。在主程序里首先不断检测是否有按键按下,如果没有,则不断调用显示子程序,否则,根据按下的是哪个键可以转去执行相应的程序段,分别实现小时和分钟的加和减以及闹钟定时,而每次执行结束都会调用显示子程序,保证数码管的稳定显示,同时也可以实时根据存储单元数值的不同显示。
而闹钟的倒计时则利用定时器/计数器1的计时来实现,同样为1s计时,只不过是在中断服务程序中实现对存储单元的按规则递减,同样的即使显示就可以实现倒计时功能,到达00:00:00时就可以调用报警子程序,实现报警。
(1)RAM单元分配
(21H).0 指示即将显示的是十位还是个位
20H #0AH,定时器/计数器0或1计满10次为1s
19H #05H,定时器/计数器0或1计满5次为0.5s
18H #05H,显示子程序内部执行次数
29H #01010101B
30H 小时的BCD码
31H 分钟的BCD码
32H 秒的BCD码
TH0 #3CH,T0计数初值,可计时100ms
TL0 #0B0H
TH1 #3CH,T1计数初值,可计时100ms
TL1 #0B0H
(2)循环执行部分:
HERE: LCALL ADJUST
AJMP HERE ;反复调用
ADJUST程序可以实现所有功能
(3)主程序的初始化部分:
MAIN: SETB P3.0
CLR P3.1
MOV TMOD,#01H ;设T0方式1,定时
CLR A ;A清零
MOV 30H, A ;“时”单元清零
MOV 31H, A ;“分”单元清零
MOV 32H, A ;“秒”单元清零
SETB ET0 ;允许中断
SETB ET1
SETB EA ;CPU开中断
MOV TH0, #3CH ;给T0装入计数初值,可计时100ms
MOV TL0, #0B0H ;
MOV TH1, #3CH ;给T1装入计数初值
MOV TL1, #0B0H
SETB TR0 ;启动计数
(二)时间显示模块
(1)物理连接
P0.0~P0.7接数码管的a~dp(片选码)
P2.0~P2.5接数码管的1~6(段选码)
时间显示:采用六个数码管显示两位的小时,分钟,秒