单片机的电子时钟方案设计书_第1页
单片机的电子时钟方案设计书_第2页
单片机的电子时钟方案设计书_第3页
单片机的电子时钟方案设计书_第4页
单片机的电子时钟方案设计书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机应用系统设计课程设计报告标题: 基于单片机的电子时钟设计学生姓名: XXX XXXXXXXX ( ) 1 11.1 DS1302+22.12.22.333.1 513.23.33.43.5 LCD3.644.14.2 CPURAMROM DS1302STC89C51DS13021602SCT89C511方案选择1.1 DS1302+1602LCD液晶屏DS1302是 DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/ 日历和31 字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/ 日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM

2、指示决定采用24 或 12 小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES复位2I/O数据线3 SCLK串行时钟时钟/RAM 的读 / 写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。1602LCD 液晶屏为显示器。程序控制DS1302时钟芯片实现小时、分钟、秒和年、月、日的计时,并在1602LCD 液晶屏上显示出来。通过按键对12 小时 /24小时显示模式切换。当时间走到程序设定的时间时,蜂鸣器响起,起到闹铃功能。2 设计方框图2.1 电路的总体设计框图输入部分输出部分单片机晶振和

3、复位2.2 整体设计思路熟透硬件,了解引脚功能完成整体电路图综合各程序进行仿真仿真成功2.3 程序设计框图设计各部分电路组合电路调试程序并进行修改用 Proteus 画了电路图软硬件结合,完成要初始化显示按下 1键判断按键调时调闹钟显示所调时间显示闹铃时间调整时限到或有其他输入3 硬件电路设计若无键按下按下 3键调定时显示定时时间3.1 51 单片机最小系统设计单片机最小系统如下图3-1 所示:以 SCT89C51单片机为核心,选用 12MHZ的晶振,由于晶振的频率越高,单片机的运行速度就越快,但考虑到单片机的运行速度快会导致对存储器的要求就会变高,所以12MHZ晶振为最佳选择。外接电容的值虽

4、然没有严格要求,但它的大小会影响振荡器频率的高低、稳定性和起振的快速性,因此选用 30PF 的电容作为起振电容。复位电路为按键高电平复位。3.2电源供电电路设计电源供电电路如下图3-2 所示:我们采用外接USB端口的方式为单片机供电,LOPW1为电源显示灯,当按键S5 按下,显示灯亮,表示单片机供+5V 电压。3.3串口通信电路设计串口通信如下图3-3 所示:图中通过MAX232进行TTL 电平和232 电平转换,从而单片机和上位机之间通信提供通道。通信电路的目的就是让通信双发的匹配,单片机用的是TTL 电平,上位机的串口用的是232 电平。3.4时钟芯片电路设计DS1302 时钟芯片是本系统

5、实现高精度计时的关键。利用DS1302 时钟芯片独立于单片机来计时,在提高计时进度的同时也提高了整个系统的抗干扰能力。DS1302 通过SCLK 、 I/O 、 RES端口和单片机 STC89C51 进行通信。 SCLK 接到单片机相应的时钟脉冲; I/O 接到 P3.5 口用来传送所有的数据;时钟芯片间的数据传送的开始与结束。P1.7 口,在读写操作时给DS1302 提供RES 接到 P1.6 口上用来控制单片机与3.5 LCD 显示电路设计1602LCD 液晶屏显示电路如下图3-5 所示:1602LCD 液晶屏为 5V 电压驱动,带背光,可显示2 行,每行16 个字符。液晶1, 2端为电源

6、; 15, 16 为背光电源。液晶3 端为液晶对比度调节端。液晶4 端为向液晶控制器写数据端。液晶 5 端为读 /写选择端。液晶6 端为使能信号,是操作时必须的信号,接单片机的P3.4口。3.5报警电路设计蜂鸣器闹铃电路如下图3-5 所示:蜂鸣器电路接在单片机的P2.3 引脚上,当给该引脚一个低电平,三极管导通,蜂鸣器发出声音作为闹铃。4 软件设计4.1 系统程序流程图设计实验主程序流程图如下图4-1.1 所示:主程序开始显示 /定时判断 /开定时中断调用程序条件中断 T0与设定时间 t接$B4?接 $B0?进入定时中断程序中断 0中断 1秒分时日月对应 P0.3/P0.4转换显示设定定时调整

7、时间定时中断程序流程图如下图4-1.2 所示:定时中断重装定时常数T0 100ms整秒调整秒单元整分调整分单元整时调整时单元整日调整日单元整月月判断调整月单元整年调整年单元调时功能流程图如下图4-1.3 所示:按SB1调整 2路按SB1调整 3路按SB1中断开始按键扫描开始进入 1按SB2年单元按SB3单元加 1调整年单按SB1月单元按SB2单元加 1调整月单元按SB1调整日单元按SB1按SB3按SB2日单元按SB3按SB2时单元按SB3单元加 1单元加 1调整时单按SB1分单元按SB2单元加 1调整分单按SB1调整秒单按SB1按SB3 按SB2开关定时中断返回设计小结本系统实现了人机交互功能

8、,有夏时令制以及万年历功能。可对年、月、日、时、分、秒进行设定,闹钟设定,具有整点报时功能,模式切换。本系统采用 1602LCD 显示信息,比其它电子时钟显示信息更丰富,可同时时间、日期、星期等。秒表功能精确到毫秒。可设置多组闹钟。系统具有断最保护功能,芯片可以保存断电时的信息并继续工作。通过这次的设计使我认识到对单片机的知识知道的太少了,书本上的很多知识不能灵活运用,尤其是不能充分理解程序的含义,导致编程过于复杂。但也提高了我的动手能力,让我享受到电子时钟设计的快乐,让我开阔了视野,丰富了经验。知道了如何把理论运用到实际中去,把理论与实际相结合。这次电子时钟的设计给我奠定了一个基础,我会在以

9、后的学习、生活中锻炼自己。参考文献1王建校 . 51 系列单片机及 C51程序设计 M. 北京:科学出版社, 20022康华光主编 .电子技术基础 M,第 4 版 .北京高等教育出版社,19913李维缋 .液晶显示器件应用技术M. 北京:北京邮电学院出版社,19934范志新 .液晶显示及其用应 J. 国际光电与显示, 20015鲍宏亚等编 MCS-51 系列单片机应用系统设计及实用技术中国宇航出版社20056杨文龙 .单片机原理及应用 M. 西安电子科技大学出版社20007赵文博,刘文涛 .单片机语言 C51 程序设计 M. 人民邮电出版社20068李朝青编 单片机原理及接口应用技术(第三版)

10、北京航空航天大学出版社2008附录:主要程序清单/* 包含器件配置文件*/#define uchar unsigned char#define uint unsigned intchar DATA_7SEG10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 。 /*09 的数码管段码*/uchar hour=0,min=0,sec=0 。/* 时、分、秒单元清零*/uchar deda=0。/*5mS 计数单元清零*/uchar t_hour=0,t_min=0 。/* 闹时时、分单元清零*/bit d_05s=0 。/*0.5 秒标志

11、*/bit o_f=0 。/* 闹时启 /停标志 */uchar set=0。/* 模式设定标志*/uchar m=0 。uchar flag=0 。/*RAM掉电标志 */void delay(uint k) 。/* 延时子函数 */void conv() 。/* 走时单元转换*/void p_out() 。/* 判别闹时到否子函数*/void dirve() 。/* 走时时间输出驱动子函数*/void t_dirve() 。/* 闹时时间输出驱动子函数*/* 闹时启 /停子函数 */void time1_of()uchar m 。if(P3_7=0)delay(1) 。if(P3_7=0)

12、o_f=1 。for(m=0 。 m<30。 m+)t_dirve() 。P1=DATA_7SEGt_min/10 。 P3=0xfd 。 delay(1) 。if(P3_1=0)if(o_f=1)P1_7=0。 else P1_7=1 。delay(1) 。if(P3_5=0)delay(1) 。if(P3_5=0)o_f=0 。for(m=0 。 m<30。 m+)t_dirve() 。P1=DATA_7SEGt_min/10 。 P3=0xfd 。 delay(1) 。if(P3_1=0)if(o_f=1)P1_7=0。 else P1_7=1。 delay(1) 。/* 走

13、时函数 */void time()conv() 。/* 走时单元转换*/dirve() 。/* 走时时间输出驱动子函数*/p_out() 。/* 判别闹时到否子函数*/* 定时器 T0 5mS 初始化 */void init_timer()TMOD=0x01 。TH0=-(4800/256) 。TL0=-(4800%256) 。IE=0x82 。TR0=1 。/* 扫描按键子函数*/void scan_key()delay(1) 。if(P3_4=0)set+ 。if(set>=4)set=0 。if(set=1)flag=0x55 。F0:if(P3_4=0)goto F0 。/* 按

14、键未释放 ,在此等候 */* 延时子函数 */void delay(uint k)uint i,j 。for(i=0 。 i< DIV> for(j=0。 j<121 。 j+) 。/*5mS 定时中断服务子函数 */ void zd(void) interrupt 1TH0=-(4800/256) 。TL0=-(4800%256) 。deda+。/* 调整走时时间*/void time_adj()uchar m 。if(P3_5=0)delay(1) 。if(P3_5=0)hour+ 。if(hour=24)hour=0 。for(m=0 。 m<30。 m+)dir

15、ve() 。if(P3_2=0)P1_7=0 。else P1_7=1。delay(1) 。if(P3_7=0)delay(1) 。if(P3_7=0)min+ 。if(min=60)min=0 。for(m=0 。 m<30。 m+)dirve() 。if(P3_2=0)P1_7=0 。else P1_7=1。delay(1) 。/* 调整闹时时间*/void time1_adj()uchar m 。if(P3_5=0)delay(1) 。if(P3_5=0)t_hour+ 。if(t_hour=24)t_hour=0 。for(m=0 。 m<30。 m+)t_dirve()

16、。if(P3_7=0)delay(1) 。if(P3_7=0)t_min+ 。if(t_min=60)t_min=0。for(m=0 。 m<30。 m+)t_dirve() 。/* 时、分、秒单元及走时单元转换*/void conv()if(deda<=100)d_05s=0 。else d_05s=1。if(deda>=200)sec+ 。 deda=0。 if(sec=60)min+ 。 sec=0。 if(min=60)hour+ if(hour=24)hour=0 。 min=0 。 /* 走时时间输出驱动子函数*/void dirve()P1=DATA_7SEGh

17、our/10 。 P3=0xf7 。delay(1) 。P1=DATA_7SEGhour%10 。 P3=0xfb 。 delay(1) 。if(d_05s=1)if(P3_2=0)P1_7=0。else P1_7=1。 delay(1) 。P1=DATA_7SEGmin/10 。 P3=0xfd 。 delay(1) 。if(o_f=1)if(P3_1=0)P1_7=0 。 else P1_7=1。 delay(1) 。 P1=DATA_7SEGmin%10 。 P3=0xfe 。 delay(1) 。 /* 闹时时间输出驱动子函数*/void t_dirve()P1=DATA_7SEGt_

18、hour/10 。P3=0xf7 。 delay(1) 。if(P3_3=0)P1_7=0 。else P1_7=1。delay(1) 。P1=DATA_7SEGt_hour%10 。 P3=0xfb 。delay(1) 。P1=DATA_7SEGt_min/10 。 P3=0xfd 。 delay(1) 。P1=DATA_7SEGt_min%10 。 P3=0xfe。 delay(1)。/* 判别闹时到否子函数*/void p_out()if(o_f=1)if(t_hour=hour)if(t_min=min)if(P3_0=0)P1_7=0 。 delay(1) 。 else P1_7=1。/* 主函数 */void main()init_timer() 。/* 定时器 T0 初始化 */while(1)/* 无限循环 */if(P3_4=0)scan_key() 。/* 有按键 ,调用按键扫描子函数*/switch(set)/* 根据 set 键值散转 */case 0:time()。 break。/* 走时时间程序*/case 1:time1_adj() 。 break。/* 闹时时间调整*/case 2:time_adj() 。 break。/* 走时时间调整*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论