单片机课程设计之智能电子钟_第1页
单片机课程设计之智能电子钟_第2页
单片机课程设计之智能电子钟_第3页
单片机课程设计之智能电子钟_第4页
单片机课程设计之智能电子钟_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计 题目: 智能电子钟 学生姓名 专 业 班 级 指导教师 成 绩 工程技术学院2016 年 3 月目录一、系统设计内容11.1 设计要求:11.2 可实现的具体功能:1二、总体设计22.1 DS1302简介22.2 LCDl602简介32.3 AT89C51单片机简介3三、硬件设计33.1 原理图43.2 PCB板丝印层43.3 PCB板底层4四、 软件设计流程54.1 总体设计54.2主程序流程图54.3显示流程图64.4 DS1302读取流程64.5 外部中断0流程64.6 外部中断1流程7五、 仿真效果图8六、总结与体会10附录111、 程序112、参考文献21智能电子钟(

2、LCD显示)一、系统设计内容1.1 设计要求:以AT89C51单片机为核心,制作一个LCD显示的智能电子钟: (1)计时:秒、分、时、天、周、月、年; (2)闰年自动判别; (4)时间、月、日交替显示; (5)自定任意时刻自动开/关屏; (6)计时精度:误差1秒/月(具有微调设置); (7)键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。本设计采用市场上流行的时钟芯片DS1302进行制作。1.2 可实现的具体功能:智能电子钟的原理主要由4部分组成:(1)单片机的外围设备,即单片机最小系统,此部分是保证单片机正常工作的必要部分;(2)显示部分: LCD显示,即显示年、月、

3、星期、日、时、分、秒等;(3)时钟芯片DS1302,DS1302是DALLAS公式推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力;(4)按键部分:按键实现开关显示屏对时钟时间的微调,开关键在正常显示模式下按下开火关LCD显示;模式键:可切换到时间调整界面,再按一次退出,此时开关屏键实现对秒的加一操作。二、总体设计AT89C51时钟芯片DS1302按键LCD显示电路 图2.1 设计方案框图2.1 DS1302简介DS1302 是美国

4、DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。图2.2 DS1302芯片2.2 LCDl602简介1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若

5、干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。2.3 AT89C51单片机简介AT89C51(如图所示)是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微

6、控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。三、硬件设计3.1 原理图3.2 PCB板丝印层3.3 PCB板底层4、 软件设计流程4.1 总体设计在整个程序运行过程中,总体上可分为以下几方面:AT89C51时钟芯片DS1302按键1LCD显示电路按键1按键2写地址读数据中断0开关屏中断1秒加一进入(退出)时间调整写命令送显示值4.2主程序流程图开中断,初始化LCD,初始化DS1302开始显示时间显示年月日周4.3显示流程图设定光标位置从DS1302读取要显示的值将读取的BCD码拆分送LCD显示清屏4.4 DS1302读取流程写字节写入要读取的值所在地址读字节读出数据返回数据设定

7、DS1302为读状态4.5 外部中断0流程开启显示退出中断计数器加一计数器为偶数吗Y关闭显示N4.6 外部中断1流程记录此时光标位置关中断,读取当前秒值等待按键释放按键1是否按下Y保持显示此刻时间,设定显示光标并指向秒。N按键0是否按下N等待按键释放写入调整后的值,取消光标显示,回复光标位置,开中断。退出中断Y显示加一后的值秒值加一并做BCD码调整当年秒值小于59吗YN向DS1302写入秒值并取更新后的值显示。等待按键释放5、 仿真效果图日期时间交替显示:关屏时间调整六、总结与体会历经一个星期的设计、修改、调试,最终,我们得到了想要的结果,感受成功之喜悦,但这并不意味着我们做得很好,相反,在这

8、当中暴露出了我们在各个方面许许多多的问题,学到许多的同时感触也很深厚。在硬件设计时,通过对需要系统的分析,单元模块的设计,元件的选取等,使我们了解到平时所学单片机课程的实用价值,以及设计过程中的大局协调、取舍、分析能力的培养。在编程以及仿真时,充分将单片机原理的知识学以致用,既是对我们单片机基础知识的考验,又是对我们灵活运用及创新能力的检验;既考验我们的学习能力,又考验逻辑思维技巧;既体现了个人对课程设计的灵思妙想,又培养了团队之间的合作能力。我们能够很好地完成这次课设,离不开在科学研究上实事求是的工作原则、一丝不苟的工作态度、勤于思考的工作方法、百折不饶的工作精神和精益求精的工作作风,此外,

9、最重要的就是团队之间相处和谐、分工明确。在大家的共同努力下,得到了满意的成果,更使我们明白团队合作的重要与便利。最后,衷心感谢老师在这次设计中耐心给予的大量帮助,解决了我程序中存在的不少问题,并指导了我一些设计的思路,也令我明白自己的大量不足之处,受益匪浅。附录1、 程序#include#include #define uchar unsigned char#define DS1302_SECOND_WRITE 0x80#define DS1302_MINUTE_WRITE 0x82#define DS1302_HOUR_WRITE 0x84#define DS1302_DAY_WRITE 0

10、x86#define DS1302_WEEK_WRITE 0x8a#define DS1302_MONTH_WRITE 0x88#define DS1302_YEAR_WRITE 0x8c#define DS1302_PROTECT_WRITE 0x8e#define DS1302_SECOND_READ 0x81#define DS1302_MINUTE_READ 0x83#define DS1302_HOUR_READ 0x85#define DS1302_DAY_READ 0x87#define DS1302_WEEK_READ 0x8b#define DS1302_MONTH_READ

11、 0x89#define DS1302_YEAR_READ 0x8dsbit lcden = P22;sbit lcdrs = P20;sbit write = P21;sbit sck = P16; /时钟 sbit io = P17; /数据 sbit rst = P15;/ DS1302复位unsigned char Chinese_13=0x2d,0x20,0x3a;/ “-”“ ”“:”unsigned char Chinese_27=0x31,0x32,0x33,0x34,0x35,0x36,0x37;/一二三四五六天/unsigned char Cursor6=0x81,0x83

12、,0x85,0x90,0x92,0x94;/定义光标移动的位置unsigned char num = 0;unsigned int ji = 0;unsigned int jiao = 0;void Delayms(unsigned int z)/延时unsigned int x,y;for(x=z;x0;x-)for(y=115;y0;y-);/lcd子程序void Write_com(unsigned char com)/写命令lcdrs = 0;P0 = com;Delayms(5);lcden = 1;Delayms(5);lcden = 0;void Write_data(unsig

13、ned char dat)/写数据lcdrs = 1;P0 = dat;Delayms(5);lcden = 1;Delayms(5);lcden = 0;unsigned char Read_com()/读命令unsigned char com;write = 1;lcdrs = 0;lcden = 1;com = P0;Delayms(5);write = 0;lcdrs = 0;lcden = 0;return com;void init_lcd()/lcd初始化lcden = 0;Write_com(0x38);Write_com(0x0c);Write_com(0x06);Write

14、_com(0x01);Write_com(0x80);/ds1302子程序void DS1302WriteByte(uchar dat)/写字节uchar i;sck=0;Delayms(2);for(i=0;i=1;uchar DS1302ReadByte()/读字节uchar i,dat;Delayms(2);for(i=0;i=1;if(io=1)/当数据线为高时,证明该位数据为1dat|=0x80;/要传输数据的当前值置为1,若不是,则为0sck=1;Delayms(2);sck=0;Delayms(2);return dat;uchar DS1302Read(uchar cmd)/读

15、命令uchar dat;rst=0;sck=0;rst=1;DS1302WriteByte(cmd);/传输地址dat=DS1302ReadByte();/读取要得到的时间/日期sck=1;rst=0;return dat;void DS1302Write(uchar cmd,uchar dat)/写命令rst=0;sck=0;rst=1;DS1302WriteByte(cmd);/传输地址DS1302WriteByte(dat);/写入时间/日期sck=1;rst=0;void Init_DS1302(void)/初始化DS1302Write(0x8e,0x00);/写保护关DS1302Wr

16、ite(DS1302_SECOND_WRITE,0x55);/初始秒值DS1302Write(DS1302_MINUTE_WRITE,0x59);/初始分钟DS1302Write(DS1302_HOUR_WRITE,0x23);/初始为24小时模式初始时间为DS1302Write(DS1302_DAY_WRITE,0x02);/20xx年x月x日星期xDS1302Write(DS1302_MONTH_WRITE,0x03);DS1302Write(DS1302_YEAR_WRITE,0x16);DS1302Write(DS1302_WEEK_WRITE,0x03);DS1302Write(0x

17、90,0x01);/充电DS1302Write(0xc0,0xf0);/初始化一次标示DS1302Write(0x8e,0x80);void Split_display(unsigned char address)/取数显示unsigned char i;i=DS1302Read(address);i=i/16+0;Write_data(i);/显示十位Delayms(3);i=DS1302Read(address);i=i%16+0;Write_data(i);/显示个位Delayms(5);void Dispaly_shi()/显示时间Write_com(0x84);Split_displ

18、ay(DS1302_HOUR_READ);/显示小时Write_data(Chinese_12);/显示“:”Delayms(3);Split_display(DS1302_MINUTE_READ);/显示分钟Write_data(Chinese_12);Delayms(3);Split_display(DS1302_SECOND_READ);/显示秒Delayms(3);Delayms(50);void Display_nian()/显示年月日uchar i;Write_com(0x82);Delayms(100);Write_com(0x82);Delayms(100);Write_dat

19、a(2);Delayms(5);Write_data(0);Delayms(1);Split_display(DS1302_YEAR_READ);/显示年份Write_data(Chinese_10);/显示“-”Delayms(3);Split_display(DS1302_MONTH_READ);/显示月份Write_data(Chinese_10);Delayms(3);Split_display(DS1302_DAY_READ);/显示日期Write_data(Chinese_11);Delayms(3);Write_data(Chinese_11);Delayms(3);i=DS1302Read(DS1302_WEEK_READ);/显示星期i=i%16+0;Write_data(i);Delayms(3);Write_com(0x82);Delayms(50);void inter0()

温馨提示

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

评论

0/150

提交评论