欢迎来到天天文库
浏览记录
ID:11665086
大小:552.36 KB
页数:23页
时间:2018-07-13
《基于单片机的智能电子钟系统设计毕业设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于单片机的智能电子钟系统设计姓名:李永健、王海、吕军梅、巩珍珍课题组的分工或贡献:每人完成的百分比或者每人负责的内容课程名称:MCS-51单片机应用设计指导教师:李林2014年12月基于单片机的智能电子钟系统设计李永健、王海、吕军梅、巩珍珍(信息科学与工程学院)摘要:电子钟是一种利用数字电路来显示时间的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。本设计通过以单片机芯片STC89C51为核心,通过软件编程完成时钟及定时的基本功能,温度芯片DS18B20完成温度测量功能。采用了六位数码管动态显示时、分、秒,两个LED灯分别指示上下
2、午,同时还有两个LED灯每半秒分别闪烁一次。通过4个外部按键可以控制小时和分钟的定时和定闹以及报警。此电子钟具有性能优越,操作简单等优点。关键词:智能电子钟、STC89C51、LED数码管、DS18B20目录一、项目目的二、项目要求三、基本原理四、设计方案(一)系统整体设计思想(二)电子钟计时(三)数码管显示(四)调时(五)定闹、报警(六)温度采集五、结论六、参考文献七、附录一附录二一、项目目的1.掌握单片机各个功能模块(并行I/O口、中断系统、定时器/计数器)的工作原理、性能和特点;2、掌握单片机外围电路的设计方法和仿真方法;3、掌握单片机外围电路的调试方法;4、掌握单片机外围
3、电路设计报告的撰写方法;5、培养团队合作精神、项目组织与管理、交流表达能力;6、培养责任感和职业道德。二、项目要求本课程三级项目要求学生使用MCS-51系列单片机设计并制作一个具有时间显示、按键调时、闹钟报警、温度测量、遥控和自动调时等功能的软硬件系统,可实现六项基本功能分别如下:1)时间显示:采用六个数码管显示当前时间:小时、分钟、秒。2)温度显示:采用两个数码管显示当前环境温度。3)上下午指示:采用两个发光二极管来指示上下午。4)半秒提示:采用两个发光二极管,每隔半秒闪烁。5)调时功能:采用三个按键(K1-K3)来调整时间,步骤如下:a)按下K1键,开始调小时,同时2个小时数
4、码管闪烁。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键来取消闹
5、钟警告。三、基本原理利用软件编程借助于定时器/计数器0实现间隔为1s的定时功能,格式为秒,分,时,在其中断服务程序中实现对小时、分钟、秒单元数值的调整。主程序通过不断循环调用调时子程序,实现整个功能。利用嵌套在调时子程序中的显示子程序实现上下午指示和半秒闪烁。利用温度芯片DS18B20来测量温度。四、设计方案(一)系统整体设计思想总体设计框图:按键(k1~k4)DS18B20温度芯片STC89C52单片机电源8片数码管显示LED灯指示(上下午、半秒)报警通过定时器/计数器0实现1s的计时,将它设计成内部中断,即每计满1s产生中断信号,主程序转去执行定时器0的中断服务程序,按照时间
6、规则改变相应RAM存储单元的数值。在主程序里首先不断检测是否有按键按下,如果没有,则不断调用显示子程序,否则,根据按下的是哪个键可以转去执行相应的程序段,分别实现小时和分钟的加和减以及闹钟定时,而每次执行结束都会调用显示子程序,保证数码管的稳定显示,同时也可以实时根据存储单元数值的不同显示。而闹钟的倒计时则利用定时器/计数器1的计时来实现,同样为1s计时,只不过是在中断服务程序中实现对存储单元的按规则递减,同样的即使显示就可以实现倒计时功能,到达00:00:00时就可以调用报警子程序,实现报警。(1)RAM单元分配(21H).0指示即将显示的是十位还是个位20H#0AH,定时器/
7、计数器0或1计满10次为1s19H#05H,定时器/计数器0或1计满5次为0.5s18H#05H,显示子程序内部执行次数29H#01010101B30H小时的BCD码31H分钟的BCD码32H秒的BCD码TH0#3CH,T0计数初值,可计时100msTL0#0B0HTH1#3CH,T1计数初值,可计时100msTL1#0B0H(2)循环执行部分:HERE:LCALLADJUSTAJMPHERE;反复调用ADJUST程序可以实现所有功能(3)主程序的初始化部分:MAIN:SETBP
此文档下载收益归作者所有