基于单片机的智能电子钟系统设计毕业设计论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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(段选码)

时间显示:采用六个数码管显示两位的小时,分钟,秒

相关文档
最新文档