版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、下载可编辑单片机课程设计题目:智能电子钟学生姓名专业班级指导教师成绩工程技术学院.专业 .整理 .下载可编辑2016年3月.专业 .整理 .下载可编辑目录一、系 统设 计内 容11.1设计 要求 :11.2可实 现的 具 体功 能:1二、总 体设 计22.1 DS1302简 介22.2 LCDl602简介32.3 AT89C51单片 机简 介3三、硬 件设 计43.1原理 图43.2 PCB板 丝 印层43.3 PCB板 底 层4四、软件 设计 流 程44.1总体 设计44.2 主 程序 流程 图54.3 显 示流 程图54.4 DS1302读 取流 程64.5外部 中断 0 流程64.6外部
2、 中断 1 流程7五、仿真 效果 图8六、总 结与 体会10附录11.专业 .整理 .下载可编辑1、 程序112、参考文献22.专业 .整理 .下载可编辑智能电子钟(LCD 显示 )一、系统设计内容1.1设计要求:以 AT89C51 单片机为核心,制作一个 LCD 显示的智能电子钟:(1) 计时:秒、分、时、天、周、月、年;(2) 闰年自动判别;(4) 时间、月、日交替显示;(5) 自定任意时刻自动开/关屏;(6) 计时精度:误差1 秒/月(具有微调设置);(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键 K1、K2 完成。本设计采用市场上流行的时钟芯片 DS1302进行制作。
3、1.2可实现的具体功能:智能电子钟的原理主要由 4 部分组成:(1) 单片机的外围设备,即单片机最小系统,此部分是保证单片机正常工作的必要部分;(2) 显示部分: LCD 显示,即显示年、月、星期、日、时、分、秒等;(3) 时钟芯片 DS1302 , DS1302 是 DALLAS 公式推出的涓流充电时钟芯片,内含一个实时时钟/日历和 31 字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟/日历电路能够计算 2100 年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力;(4) 按键部分:按键实现开关显示屏对时钟时间的微调,开关键在正常显示模式下按下开火关 L
4、CD 显示;模式.专业 .整理 .下载可编辑键:可切换到时间调整界面,再按一次退出,此时开关屏键实现对秒的加一操作。二、总体设计时钟芯片DS1302LCDAT89C51显示电路按键图 2.1设计方案框图2.1 DS1302简介DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V 5.5V 。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 内部有一个 318 的用于临时性存放数据的 RAM 寄存器 。DS1
5、302 是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。.专业 .整理 .下载可编辑图 2.2 DS1302芯片2.2 LCDl602简介1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。2.3 AT89C51单片机简介AT89C51 (如图所示)是一种带 4K 字节闪烁可编程可擦除只读存储器( FPE
6、ROM Falsh ProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89S51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。.专业 .整理 .R122pFP0.5/AD5339P0.6/AD632RSTP0.7/AD7VCCC321P2.0/A88765432122P2.1/A9VCC23RP1P2.2
7、/A10K10uF2924PSENP2.3/A11123025ALEP2.4/A12R21k3126EA 下载可编辑P2.5/A13RESPACK4B1P2.6/A1427901234563V28P2.7/A151111111C4U21P1.0/T2P3.0/RXD10VCC28211K1三、硬件设计4P1.1/T2EXP3.1/TXD13X1VCC113121230uFVCC2P1.2P3.2/INT0X2P1.3P3.3/INT1514K2P1.4P3.4/T032.768kHz561512RSTP1.5P3.5/T1C5原理图7716P1.7P3.7/RD3.1SCLK368P1.6P3
8、.6/WR17X2I/O30uFWD1100-1189C513.2 PCB板丝印层3.3 PCB板底层四、软件设计流程4.1总体设计在整个程序运行过程中,总体上可分为以下几方面:.专业 .整理 .下载可编辑写地址时钟芯片DS1302读数据中断 0写命令按键 1AT89C51LCD开关屏显示电路送显示值按键 1秒加一按键 2中断 1进入(退出)时间调整4.2 主程序流程图开始开中断,初始化LCD ,初始化DS1302显示时间显示年月日周4.3 显示流程图.专业 .整理 .下载可编辑清屏设定光标位置从 DS1302读取要显示的值将读取的 BCD 码拆分送 LCD 显示4.4 DS1302读取流程设
9、定 DS1302 为读状态写字节写入要读取的值所在地址读字节读出数据返回数据4.5外部中断 0 流程.专业 .整理 .下载可编辑计数器加一计数器为偶数吗NY关闭显示开启显示退出中断4.6外部中断 1 流程等待按键释放记录此时光标位置关中断,读取当前秒值按键 1是否按下YN等待按键释放保持显示此刻时间 ,设定显示光标并指向秒。写入调整后的值,取消光标显示,回复光标位置,开中断。N按键 0是否按下退出中断Y.专业 .整理 .下载可编辑N当年秒值小于 59吗Y秒值加一并做 BCD 码调整显示加一后的值等待按键释放向 DS1302 写入秒值并取更新后的值显示。五、仿真效果图日期时间交替显示 :.专业
10、.整理 .下载可编辑关屏.专业 .整理 .下载可编辑时间调整六、总结与体会历经一个星期的设计、修改、调试,最终,我们得到了想要的结果,感受成功之喜悦,但这并不意味着我们做得很好,相反,在这当中暴露出了我们在各个方面许许多多的问题,学到许多的同时感触也很深厚。在硬件设计时,通过对需要系统的分析,单元模块的设计,元件的选取等,使我们了解到平时所学单片机课程的实用价值,以及设计过程中的大局协调、取舍、分析能力的培养。在编程以及仿真时,充分将单片机原理的知识学以致用,既是对我们单片机基础知识的考验,又是对我们灵活运用及创新能力的检验;既考验我们的学习能力,又考验逻辑思维技巧;既体现了个人对课程设计的灵
11、思妙想,又培养了团队之间的合作能力。我们能够很好地完成这次课设,离不开在科学研究上实事求是的工作原则、一丝不苟的工作态度、勤于思考的工作方法、百折不饶的工作精神和精益求精的工作作风,此外,最重要的就是团队之间相处和谐、分工明确。在大家的共同.专业 .整理 .下载可编辑努力下,得到了满意的成果,更使我们明白团队合作的重要与便利。最后,衷心感谢老师在这次设计中耐心给予的大量帮助,解决了我程序中存在的不少问题,并指导了我一些设计的思路,也令我明白自己的大量不足之处,受益匪浅。附录1、程序#include#include #define uchar unsigned char#define DS130
12、2_SECOND_WRITE 0x80#define DS1302_MINUTE_WRITE 0x82#define DS1302_HOUR_WRITE 0x84#define DS1302_DAY_WRITE 0x86#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#def
13、ine DS1302_HOUR_READ 0x85#define DS1302_DAY_READ 0x87#define DS1302_WEEK_READ 0x8b#define DS1302_MONTH_READ 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,0x
14、20,0x3a;/“-”“”“:unsigned char Chinese_27=0x31,0x32,0x33,0x34,0x35,0x36,0x37;/一二三四五六天/unsigned char Cursor6=0x81,0x83,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子程序voi
15、d Write_com(unsigned char com)/写命令lcdrs = 0;P0 = com;Delayms(5);.专业 .整理 .下载可编辑lcden = 1;Delayms(5);lcden = 0;void Write_data(unsigned 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
16、(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_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
17、,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)/读命令uchar dat;rst=0;sck=0;rst=1;DS1302WriteByte(cmd);/传输地址dat=DS1302ReadByte();/读取要得到的时间/ 日期sck=1;rst=0;return dat;void DS1302Write(uchar cmd,
18、uchar dat)/写命令.专业 .整理 .下载可编辑rst=0;sck=0;rst=1;DS1302WriteByte(cmd);/传输地址DS1302WriteByte(dat);/写入时间 / 日期sck=1;rst=0;void Init_DS1302(void)/初始化DS1302Write(0x8e,0x00);/写保护关DS1302Write(DS1302_SECOND_WRITE,0x55);/初始秒值DS1302Write(DS1302_MINUTE_WRITE,0x59);/初始分钟DS1302Write(DS1302_HOUR_WRITE,0x23);/初始为 24 小
19、时模式初始时间为DS1302Write(DS1302_DAY_WRITE,0x02);/20xx年 x 月 x 日星期 xDS1302Write(DS1302_MONTH_WRITE,0x03);DS1302Write(DS1302_YEAR_WRITE,0x16);DS1302Write(DS1302_WEEK_WRITE,0x03);DS1302Write(0x90,0x01);/充电DS1302Write(0xc0,0xf0);/初始化一次标示DS1302Write(0x8e,0x80);void Split_display(unsigned char address)/取数显示unsi
20、gned 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_display(DS1302_HOUR_READ);/显示小时Write_data(Chinese_12);/显示 “:”Delayms(3);Split_display(DS1302_MINUTE_READ);/
21、显示分钟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_data(2);Delayms(5);Write_data(0);Delayms(1);Split_display(DS1302_YEAR_READ);/显示年份Write_dat
22、a(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);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024特岗教师聘用及教师团队协作能力提升服务合同3篇
- 2025年度新能源车辆采购及维护服务合同范本2篇
- 2025年度智能家居系统代理商合作协议4篇
- 2025年度新能源汽车研发出资人合作协议4篇
- 2025年度旅游景区特色商品档口租赁经营合同3篇
- 2025年度水电工程安全监测系统安装与维护服务合同3篇
- 2024版食堂承包合同协议范文
- 2025年度特殊岗位人员辞退及安置协议范本4篇
- 2025年度智能机器人研发股权合作协议4篇
- 2025年度文化产业园区运营管理合同3篇
- 小学数学六年级解方程练习300题及答案
- 电抗器噪声控制与减振技术
- 中医健康宣教手册
- 2024年江苏扬州市高邮市国有企业招聘笔试参考题库附带答案详解
- 消费医疗行业报告
- 品学课堂新范式
- GB/T 1196-2023重熔用铝锭
- 运输行业员工岗前安全培训
- 公路工程安全风险辨识与防控手册
- 幼儿园教师培训:计数(数数)的核心经验
- 如何撰写和发表高水平的科研论文-good ppt
评论
0/150
提交评论