ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:41.21KB ,
资源ID:11086908      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11086908.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版基于51系列单片机及DS1302时钟芯片的电子时钟C语言毕业论文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整版基于51系列单片机及DS1302时钟芯片的电子时钟C语言毕业论文.docx

1、完整版基于51系列单片机及DS1302时钟芯片的电子时钟C语言毕业论文实时时钟DS1302应用设计高也(陕西理工学院 物理与电信工程学院电子信息工程专业,2011级3班,陕西 汉中 723000)指导教师:王文洋摘要 本设计主要为实现一款可正常显示时钟日历、带有定时闹铃的多功能电子时钟。本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。本设计应用AT89C52芯片作为核心,LM016L液晶屏显示,使用DS1302实时时钟日历芯片完成时钟日历的基本功能。这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。关键词 AT89C52;DS

2、1302;LM016L目 录1、基于单片机的电子时钟硬件选择分析 31.1主要IC芯片选择 31.1.1微处理器选择 31.1.2 DS1302简介 42、电子时钟硬件电路设计 52.1.主控部分(单片机MCS-51) 52.2时钟电路设计 62.3整点报时功能 72.4 LED显示电路 83、proteus软件仿真及调试 103.1电路板的仿真 103.2软件调试 114、硬件调试与功能说明 124.1 硬盘调试 124.2 系统性能测试与功能说明 124.3 系统时钟误差分析 125、课设心得 13参考文献 14附录A 硬件电路原理图 15附录B源程序 16附录C 元器件清单 261、基于

3、单片机的电子时钟硬件选择分析考虑单片机货源充足、价格低廉,可软硬件结合使用,能够较方便的实现系统的多功能性,故采用单片机作为本设计的硬件基础。1.1主要IC芯片选择1.1.1微处理器选择目前在单片机系统中,应用比较广泛的微处理器芯片主要为8XC5X系列单片机。该系列单片机均采用标准MCS-52内核,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。例如比较常用的AT89C2052单片机,带有2KB Flash可编程、可擦除只读存储器(E2PROM)的低压、高性能8位CMOS微型计算机。拥有15条可编程IO引脚,2个16位定时器计数器,

4、6个中断源,可编程串行UART通道,并能直接驱动LED输出1。仅仅是为了完成时钟设计或者是环境温度采集设计,应用AT89C2052单片机完全可以实现。但是将两种功能结合在一片单片机上,就需要更多的IO引脚,故本设计采用具有32根IO引脚的AT89C52单片机。AT89C52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含4KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-52兼容。片内的FLASH存储器允许在系统内可改编程序

5、或用常规的非易失性存储器编程器来编程。因此,AT89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域。AT89C52具有以下主要性能:1. 4KB可改编程序Flash存储器;2. 全静态工作:024Hz;3. 1288字节内部RAM;4. 32个外部双向输入输出(IO)口;5. 6个中断优先级; 2个16位可编程定时计数器;6. 可编程串行通道;7. 片内时钟振荡器。此外,AT89C52是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工

6、作,而RAM、定时器计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。AT89C51为适应不 同的产品需求,采用PDIP、TQFP、PLCC三种封装形式,本系统采用双列直插PDIP封装形式。1.1.2 DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,

7、且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振2。2、电子时钟硬件电路设计电子闹钟至少要包括秒信号发生器、时间显示电路、按键电路、供电电源、闹铃指示电路等几部分。硬件电路框图参照图2.3。该系统使用AT89C52单片机作为核心,通过读取时钟日历芯片DS1302数据,完成此电子时钟的主要功能时钟。使用LM016L液晶屏显示年、月、日、时、分、秒。图2.1多功能电子时钟硬件

8、系统框图键盘是为了完成时钟日历的校对和日历温度的显示功能。由于此电子时钟要求具有闹铃功能,所以设计有闹铃电路,进行声音响铃。整个电路使用了两种电源,+5V电源将为整个电路供电。而+3V电源仅作为DS1302的备用电源。当+5V电源被切断后,DS1302启用+3V电源,可以保持DS1302继续工作。当+5V电源恢复供电,LED依旧显示当前时间,而不会因为断电使系统复位到初始化时间,避免了重新校时的麻烦。2.1.主控部分(单片机MCS-52)MCS-52单片机作为主控芯片,控制整个电路的运行。其外围电路主要有两部分:复位电路和晶体振荡器。复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后

9、,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。晶体振荡电路:MCS-52单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振

10、荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。图2.2 主控部分电路图2.2时钟电路设计系统时钟应用了实时时钟日历芯片DS1302,其连接如图2.3。该硬件电路设计简单,抗干扰能力强。如图,AT89C52单片机P1.5直接接DS1302的RST端,上电后,AT89C51的P1.5脚自动输出高电平。P1.6作为串行时钟接口,P1.7作为时钟数据的IO。DS1302采用双电源供电,平时由+5V电源供电,当+5V掉电之后,由图中BT1(+3V备用电池)供电。特别需要注意X1和X2两端连接的晶振Y1,该晶振

11、频率为32.768KHz。图2.3系统时钟电路2.3整点报时功能采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。也可以在编程的时候编写一段音乐程序,待闹铃时间到时,调用该音乐程序给扬声器,便响起音乐。不过该方法只能做一些简单音乐,并且音乐程序会占用很多单片机存储资源。还有一种方法是采用录音放音芯片1420做闹铃,先对录放音设备录入一段音乐,当到设定时间时,单片机控制录放音设备放音。采用录放音电路,铃声可以是预先设定的一段自己喜欢的音乐,符合电器设备人性化的要求。且1420芯片可以分段录音,还具有语音报时功能。另外,也可以购置一块音乐集成电路,加置在单片机和蜂鸣器之间,当单片机连接闹铃

12、电路的管脚送出高电平时,音乐集成电路会给蜂鸣器特定脉冲,使蜂鸣器发声。此类集成电路体积较小,使用方便,不足的是音乐简单、单一4。闹铃的闹钟不是本设计中的重点,故采用最简单的方法,占用单片机一根IO口P3.7,当响铃标志位为“1”时,P3.7送一定频率脉冲,使蜂鸣器U11发出声音。如图2.4 图2.4 闹铃电路2.4 LCD LM016L液晶屏显示电路 LM016L液晶模块采用HD44780控制器, TempDat; void WDS1302(uchar ucAddr, uchar ucDat) DS1302_RST = 0; DS1302_SCLK = 0; DS1302_RST = 1; D

13、S1302_Write(ucAddr); DS1302_Write(ucDat); DS1302_SCLK = 1; DS1302_RST = 0; uchar RDS1302(uchar ucAddr) uchar ucDat; DS1302_RST = 0; DS1302_SCLK = 0; DS1302_RST = 1; DS1302_Write(ucAddr); ucDat=DS1302_Read(); DS1302_SCLK = 1; DS1302_RST = 0; return ucDat; *DS1302的初始状态的时间设定* void init_1302() WDS1302(0

14、x8e,0x00);开保护寄存器 WDS1302(0x80,0x50);秒 WDS1302(0x82,0x01);分 WDS1302(0x84,0x14);时 WDS1302(0x8A,0x03);星期 WDS1302(0x86,0x06);日 WDS1302(0x88,0x06);月 WDS1302(0x8C,0x12);年 WDS1302(0x90,0xab);卷电流充电 WDS1302(0x8e,0x80);关保护寄存器 *1602驱动* bit lcd_bz() bit result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_();

15、 _nop_(); result = (bit)(P0 & 0x80); ep = 0; return result; void lcd_wcmd(uchar cmd) while(lcd_bz(); rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); P0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep= 0; void lcd_pos(unsigned char pos) lcd_wcmd(pos | 0x80); void l

16、cd_wdat(unsigned char dat) while(lcd_bz(); rs = 1; rw = 0; ep = 0; P0 = dat; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; void lcd_init() lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1); lcd_wcmd(0x06); delay(1); lcd_wcmd(0x01); delay(1); *调时函数* void set

17、_time() signed char address,item; signed char max,mini; if(M=0) sel+; delay(300); if(sel=7) sel=0; if(sel=2) address=0x82; max=59;mini=0; 分 if(sel=1) address=0x84; max=23;mini=0; 时 if(sel=6) address=0x8c; max=99;mini=9; 年 if(sel=4) address=0x88; max=12;mini=1; 月 if(sel=5) address=0x86; max=31;mini=1

18、; 日 if(sel=3) address=0x8A; max=07;mini=1; 星期 M=1; item=(RDS1302(address+1)16)*10 + (RDS1302(address+1)%16; if(U = 0) delay(200); U=1; item+; if(D = 0) delay(200); D=1; item-; if(W = 0) delay(200); sel=0; W=1; if(itemmax) item=mini; if(item4; lcdshow_u(6,0x30+x); y=y&0x0f; lcdshow_u(7,0x30+y); lcdsh

19、ow_u(8,:); x=RDS1302(MINUTE);分 y=x; x=x4; lcdshow_u(9,0x30+x); y=y&0x0f; lcdshow_u(0x0a,0x30+y); lcdshow_u(0x0b,:); x=RDS1302(SECOND);秒 y=x; x=x4; lcdshow_u(0x0c,0x30+x); y=y&0x0f; lcdshow_u(0x0d,0x30+y); x=RDS1302(0x8b); y=x; x=x4; lcdshow_u(0x0e,0x30+x); y=y&0x0f; lcdshow_u(0x0f,0x30+y); x=RDS1302

20、(0x8d); y=x; x=x4; lcdshow_d(8,0x30+x); y=y&0x0f; lcdshow_d(9,0x30+y); lcdshow_d(0x0a,-); x=RDS1302(0x89); y=x; x=x4; lcdshow_d(0x0b,0x30+x); y=y&0x0f; lcdshow_d(0x0c,0x30+y); lcdshow_d(0x0d,-); x=RDS1302(0x87); y=x; x=x4; lcdshow_d(0x0e,0x30+x); y=y&0x0f; lcdshow_d(0x0f,0x30+y);*下面的if实现每到8:10和14:10

21、的提醒功能* if(RDS1302(HOUR)=0x14 & RDS1302(MINUTE)=0x10)| ( RDS1302(HOUR)=0x08 & RDS1302(MINUTE)=0x10) SPK = 0; delay(200); SPK = 1; for(x=45;x0;x-) set_time(); delay(10); *主函数* void main() uchar i; lcd_init(); delay(10); lcd_pos(0x03); i = 0; while(DIS1i != 0) lcd_wdat(DIS1i); i+; delay(200); lcd_pos(0

22、x41); i = 0; while(DIS2i != 0) lcd_wdat(DIS2i); delay(200); i+; init_1302(); delay(1000); for(i=0;i); delay(150) ; for(i=0;i17;i+) lcdshow_d(i,); delay(150) ; lcd_init(); delay(10); lcdshow_u(0,T); lcdshow_u(1,i); lcdshow_u(2,m); lcdshow_u(3,e); lcdshow_u(14, ); lcdshow_d(0,D); lcdshow_d(1,a); lcdsh

23、ow_d(2,t); lcdshow_d(3,a); lcdshow_d(6,2); lcdshow_d(7,0); LCD框架描绘 while(1) set_time(); if(sel=2)lcdshow_u(0X09, );lcdshow_u(0x0a, );delay(500); if(sel=1)lcdshow_u(0X06, );lcdshow_u(0X07, );delay(500); if(sel=3) lcdshow_u(0X0E, );lcdshow_u(0X0F, );delay(500); if(sel=4)lcdshow_d(0x0b, );lcdshow_d(0x0c, );delay(500); if(sel=5)lcdshow_d(0x0e, );lcdshow_d(0x0f, );delay(500); if(sel=6) lcdshow_d(0x08, );lcdshow_d(0x09, );delay(500); if(sel=8) display(); 调时LCD闪烁显示 display(); 附录C 元器件清单元器件名称型号数量单片机STC89C521液晶显示屏LCD16021时钟芯片DS13021蜂鸣器5V1晶体振荡器32.768K1晶体振荡器12M1排阻A103J1按键开关常开3

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1