单片机课程设计—万年历_第1页
单片机课程设计—万年历_第2页
单片机课程设计—万年历_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、1 / 25郑州轻工业学院软件学院单片机与接口技术课程设计总结报告设计题目:电子万年历学生姓名:系别:专业:班级:学号:指导教师:2011年12月16日设计题目:电子万年历设计任务与要求:1、显示年月日时分秒及星期信息2、具有可调整日期和时间功能3、增加闰年计算功能方案比较:方案一:系统分为主控制器模块、显示模块、按键开关模块,主控制模块采用AT89C52单片机为控制中心,显示模块采用普通的共阴LED数码管,键输入采用中断实现功能调整,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通 过按键盘开关实现对时间、日期的调整。方案二:系统分为主控模块、时钟电路模块、按键扫描模

2、块,LCD显示模块,电源电路、复位电路、晶振电路等模块。主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间,显示模块采用 LCD1602时钟电路模块采用DS1302时钟芯片实现对 时间、日期的操作。两个方案工作原理大致相同,只有显示模块和时钟电路不同。LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少;LCD1602液晶显示屏,显示功能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管DS1302乍为时钟较多,而且不利于控制,因此选择 LCD1602乍为显示模

3、块。DS1302是 一款高性能的实时 时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到 广泛的应用,实时时钟有秒、分、时、星期、日、月和年,月小于 31 天时可以自动调 整,并具有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。单片 机有定时器的功能,但时间误差较大,且需要编写时钟程序,因此采用 电路对比以上方案,结合设计技术指标与要求我们选择了方案二进行设计逻辑总框图:该电子万年历的总体设计框图如图(1)所示0 (1)电子万年历总体设计框图4设计所需的元件:元件名称型号数量/个单片机AT89C521时钟芯片DS13021晶振12MHz1晶振32.76

4、8kHz1电容30pF2电容22uF1按键开关4电阻10K9滑动变阻器1K1电池1.5V4LCDLCD16021电源Vcc+5V1单元电路设计:1、主控制系统单片机中央处理系统的方案设计,选用 AT89C52单片机作为中央处理器,如图(2) 所示。该单片机除了拥有MCS-51系列单片机的所有优点外,内部还具有 8K的在系统可 编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定 时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外 接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰 能力强,性价比高。1 -1- 11

5、1 1 1 t PFPPFFFP-33333333A -PFPPPFFPT z/y/x D D o 1 ozTXNTrrT T曹民I IO12345S7TO12345&7O12345&TS9O1£34S&T831111111111QndddddnddddndddndddV CCPO. O/ADOPO. 1/AD1PO. 2/AD2FO. 3/AD3PO, 4/AD4LS22222222 affpppppfp5432101111113$DDDDDDDDAAAAAAAA图(2) AT89C523052引脚图心2、时钟振荡电路时钟振荡电路图(3)所示,时钟振荡电路用

6、于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHZ勺晶振组成,并接入到单片机的 XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振 的频率决定。电路中两个电容 C1、C2的作用使电路快速起振,提高电路的运行速度。,CCP22图(3)时钟振荡电路图3、复位电路复位电路由电阻和极性电容组成,如图电路开始工作后,当高电平的时间超过大约图(4)复位电路(4)所示,通过高电平使单片机复位,在时钟2us时,即可实现复位。此复位电路为上电复位,较为简

7、单。若改进可以添加手动复位的功能,上电复位发生在开机加电时,由系 统自动完成,手动复位通过一个按键来实现,在程序运行时,若遇到死机,死循环或程序“跑飞”等情况,通过手动复位就可以实现重新启动的操作。手动按钮复位需要人为 在复位输入端RST上加入高电平。一般采用的办法是在 RST端和正电源Vcc之间接一个按钮和一个电阻5、按键电路按键电路由四个轻触开关组成,如图(9)所示。按键用来调整时间,其一端直接接到 单片机的端口,另一端接地,当按下按键时,相应的端口变为低电平,通过一个与门只 要这四个按键有一个按下就会在 P3.2检测到一低电平就触发外部中断0进入按键调节程 序中,通过与个各键相连的端口P

8、3.4_P3.7可以判断是哪个键按下,从而作相应的操作。P2.27A10 P2 3JA11P2.4/A12P2.5/A13P2 67A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/iNTlP3.VK)P3.5/T1P3.O/WR pst/rd",反复®选择所调节弼掾徉月日时分i : Kt -粧择O加-K210O-K3确定242?n in 2725U31斗1516图(9) 按键电路6、显示电路1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵 型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符

9、位都可以显示 一个字符。显示电路采用LCD1602液晶显示,如图(10)所示,图中只画出了其相应的接 口,3脚用于调节LCD1602的背光,4、5、6为LCD1602的控制口,用于控制其写入或是 读出指令,7至14脚为LCD1602的数据口,将数传送到LCD1602中。LCD1LMOiBLj 2CO02if 2wJULSJ>JEL gp'y图(10) LCD1602显示电路LCD1602的特性+5V电压,对比度可调;内含复位电路;提供各种控制命令 , 如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有 80 字节显示数据存储器 DDRA;M内建有160个5X7点阵的字型的字符发

10、生器 CGROM个可由用户自定义的5X7的字 符发生器 CGRA;M基本操作时序:读状态:输入:RS=L RW=H E=H输出:DBA DB7状态字;写指令:输入:RS=L RW=L E=T降沿脉冲,DBA DB7指令码;输出:无。读数据:输入:RS=H RW=H E=H输出:DBA DB7数据;写数据:输入:RS=H RW=L E=T降沿脉冲,DB(A DB7数据;输出:无。LCD1602的各种指令不再说明。流程图与软件设计:1 、程序流程图主程序首先初始化定时器、LCD1602及 DS1302然后就开始查询按键,有键按下则开始调整时间和日期,若没有按下,则执行下面的时间、日期的显示,最后依

11、次循环这 些相同的操作,相应流程图如图( 11)所示:图(12)程序流程图按键的检测是通过中断的办法来实现,利用按键进行间调整。K1按下则开始设置时间及日期,同时在第一行最右端显示被选择的对象,第一次按下 K1时,设置年份,若 按下K3,则是减1操作,按下K2是加1操作,设置好年后,第二次按下 K1时,则是设 置月份,按K3减,按K2则加1,依次循环下去,则可以将时间和日期设置完毕, K4是 确定键,设置好按下即可保存设置了。2、软件设计软件总设计:主程序首先对系统环境初始化,设置定时器TO工作模式为16位定时/计数器模式,置位总中断允许位 EA并对键盘端口置位,再对 LCD1602初始化,D

12、S1302 初始化。接着扫描键盘,在键盘程序里面是对时间、日期及闹钟的调整,最下面是时间 的显示。软件程序编写:软件程序编写的好坏直接影响着系统运行情况的良好。因本程序涉 及的模块较多,所以程序编写也采用模块化设计,C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用 C51编写。具体程序见附件一:程序3、软件调试在软件调试过程中,当调节时间和日期后,单片机上电后更新的是PC的时间,后来查找资料发现,是设置ds1302的问题,对于开发板上的液晶一般 RW都接的地,故不需要读液晶状态,也不需要读忙,但在 仿真中还是加上了这一部分。还有一个问题,在按键操作时有时会出现功能不稳定

13、,这是由于按键存在抖动,所 以后来加个去抖动的延时后在判断,基本就可以解决问题,整体电路与仿真结果分析:电子万年历硬件电路图及仿真如图(13)所示,系统由AT89C52单片机,按键扫描 电路、显示电路、时钟电路、晶振电路、复位电路及电源指示电路。仿真正确显示了时间,在 LCD1602中正确显示了当前日期、时间,通过按按键 K1, 就可以开始设置时间,依次按K1依次在年、月、日、时、分之间切换,按K2键用于加1 操作,K3键用于减1操作,K4是确定按钮。仿真正确显示了时间和日期,符合设计的要 求。结论与心得:在这学期的课程序设计中,收获知识的同时,还收获了阅历,收获了成熟,通过查 找大量资料,请

14、教老师,以及不懈的努力,不仅培养了独立思考、 动手制作的能力,在 各种其它能力上也都有了提高。更重要的是,在课程序设计里,我们学会了很多学习的 方法,知道了理论和实践的巨大差别。而这是以后最实用的,真的是受益匪浅。要面 对 社会的挑战,只有不断的学习、实践,再学习、再实践。同时在与老师和同学的交流过 程中,互动学习,将知识融会贯通。通过自己的努力,做出了一个万年历,对以后的学 习是一个莫大的鼓舞,激起了我的学习兴趣和开发创新思维。参考文献图书类: 1 张毅坤 陈善久, 单片微型计算机原理及应用 西安电子科技大学出版社2 张毅刚,彭喜元,单片机原理与应用设计 电子工业出版社3 赵建领 薛园园 ,

15、零基础学单片机 C 语言程序设计 机械工业出版社4 周向红 51 单片机课程设计 华中科技大学出版社 ,5 郭天祥51单片机C语言教程-入门,提高,开发,拓展全攻略,电子工业出版社6 赵亮侯国锐.单片机C语言编程与实例人民邮电出版社程序如下 :#include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit rs=P2A6;sbit rw=P2A5;sbit Icde n=P2A7;sbit s1=P3A0;sbit s2=P3A1;sbit s3=P3A2;uchar count,s1num;ch

16、ar shi,fen,miao,nian,yue,ri,xinqi; uchar code tabIe=" 2014-01-10-5 " uchar code tabIe1=" 10:59:00"void deIay(uint z) uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-);bit Icd_busy()bit resuIt;rs = 0;rw = 1;Icden = 1;delay(5);result = (bit)(P0&0x80);lcden = 0;return result;void

17、 write_com(uchar com)while(lcd_busy();rw=0;rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date) while(lcd_busy();rw=0;rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void init()uchar num;lcden=0;write_com(0x38);delay(1);write_com(0x0c);delay(1);write_com(0x06);del

18、ay(1);write_com(0x01);delay(1);write_com(0x80);for(num=0;num<15;num+)write_date(tablenum);delay(5);write_com(0x80+0x40);for(num=0;num<12;num+)write_date(table1num); delay(5);TMOD=0x01;TH0=(65536-50000)/256;/50msTL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void write_sfm(uchar add,uchar date)uchar sh

19、i,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);void write_nyr(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);void keyscan() if(s1=0)delay(5);if(s1=0) s1num+;while(!s1);if(s1num=1)TR0

20、=0;write_com(0x80+0x40+10);write_com(0x0f);if(s1num=2)write_com(0x80+0x40+7);if(s1num=3)write_com(0x80+0x40+4);if(s1num=4) write_com(0x80+5);if(s1num=5)write_com(0x80+7);if(s1num=6)write_com(0x80+10);if(s1num=7)write_com(0x80+14); if(s1num=8)s1num=0;write_com(0x0c); TR0=1;if(s1num!=0)if(s2=0)delay(5

21、);if(s2=0)while(!s2);if(s1num=1)miao+;if(miao=60)miao=0;write_sfm(10,miao); write_com(0x80+0x40+10);if(s1num=2)fen+;if(fen=60)fen=0;write_sfm(7,fen);write_com(0x80+0x40+7);if(s1num=3)shi+;if(shi=24)shi=0; write_sfm(4,shi); write_com(0x80+0x40+4);if(s1num=4)nian+;if(nian=100)nian=0; write_nyr(4,nian)

22、; write_com(0x80+4);if(s1num=5)yue+;if(yue=13)yue=1; write_nyr(7,yue); write_com(0x80+7);if(s1num=6)ri+;if(ri=31)ri=1;write_nyr(10,ri); write_com(0x80+10);if(s1num=7)xinqi+;if(xinqi=8)xinqi=1;write_nyr(14,xinqi); write_com(0x80+14);if(s3=0)delay(5);if(s3=0)while(!s3);if(s1num=1)miao-;if(miao=-1)miao=59; write_sfm(10,

温馨提示

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

评论

0/150

提交评论