




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一局部设计任务和要求i.i单片 机课程 设计 内容21.2 单片机课程设计要求 21.3 系统运行流程 2第二局部设计方案2.1 总体设计方案说明 22.2 系统方框图 32.3 系统流程图 3第三局部主要器材及根本简介3.1 主要器材 43.2 主要器材简介 4第四局部系统硬件设计4.1 最小系统 64.2 LCD 显示电路 64.3 键盘输入电路 74.4 蜂鸣器和LED灯电路7第五局部仿真电路图与仿真结果8第六局部课程设计总结8第七局部参考文献9附录A 实物图附录B 系统源程序单片机课程设计报告第一局部设计任务和要求1.1 单片机课程设计内容利用STC89C5便片机和LCD1602fe
2、子显示屏实现电子时钟,可由按键进行调时 和12/24小时切换.1.2 单片机课程设计要求1 .能实现年、月、日、星期、时、分、秒的显示;2 .能实现调时功能;3.能实现12/24小时制切换;4 .能实现8: 00-22: 00整点报时功能.1.3 系统运行流程程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下.假设有按键按下那么转到相应的功能程序执行, 没有按键按下那么调用时间程序.假设没到那么循环执行.计时中断效劳程序完成秒的 计时及向分钟、小时的进位和星期、年、月、日的进位.调时闪烁中断效劳程序 用丁被调单元的闪烁显示.调时程序用丁调整分钟
3、、小时、星期、日、月、年, 主要由主函数组成通过对相关子程序的调用,如下图.实现了对时间的设置和修改、LCD显示数值等主要功能.相关的调整是靠对功能键的判断来实现的.第二局部设计方案2.1总体设计方案说明1. 程序设计及调试根据单片机课程设计内容和要求,完成 Protues仿真电路的设计和用Keil软件 编写程序,并进行仿真模拟调试.2. 硬件焊接及调试根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到到达预期目的.3. 后期处理对设计过程进行总结,完成设计报告2.2 单片机系统方框图2.2单片机系统流程图键盘扫描流程图主流程图第三局部主要器件及简介3.1 主要器件1. STC89C5
4、1 单片机;2. LCD160傲晶显示屏;3.2 主要器件简介1. STC89C5怦片机简介STC89C51 是采用 8051 核的 ISP (In SystemP1 0vccFl 1FOOP1.2M 1P1 3PiQJP14PO 3P15F04P1 6PC 5PITPO 6RSTA/PTPQ 7PJQffOCDEA/VPFP3 1/TXDALETRnt/P/SE/NP SP27P34/TDP2 0P3.5/T1P2 5P2 4P3 7DP2 3XTALIP2 3XTALlP2IvssPIOsi37630茹142726STC89C51引脚图Programming)在系统可编程芯片,最高工作时
5、钟频率为80MH$片内含8K Bytes的可反复擦 写1000次的Flash只读程序存储器,器件兼容 标准MCS-51指令系统及80C51引脚结构,芯片 内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程ISP 特性,配合PC端的限制程序即可将用户的程序代码下载进单片机内部,省去了 购置通用编程器,而且速度更快.2. LCD160笊晶显示屏简介LCD160珂以显示2行16个字符,有8位数据总线Db D7,和RS R/W EN三 个限制端口,工作电压为5V,并且带有字符比照度调节和背光.LCD16025I脚说明如下表所示:LCD液晶显示器各引脚功能及结构编勺符号引脚说明编勺
6、符号引脚说明1VSS电源地9 D2双向数据口2VDD电源正极10D3双向数据口3VL比照度调节11D4双向数据口4RS数据/命令选择12D5双向数据口5R/W读写/选择13D6双向数据口6E模块使能端14 D7双向数据口7D0双向数据口15BLK背光源地8D1双向数据口16BLA背光源正极VDD电源正极,4.5V5.5V,通常使用5V电压;VL: LCD比照度调节端,电压调节范围为 05V.接正极时比照度最弱,接地电源时比照度最高,但比照度过高会产生“鬼影,因此通常使用一个10K的电位器来调整比照度,或者直接申接一个电阻到地;RS: MCS入数据或者指令选择端.MCIB写入指令时,使RS为低电
7、平;MCI® 写入数据时,使RS为高电平;R/W读写限制端.R/W为高电平时,读取数据;R/W为低电平时,写入数据;EN LCD莫块使能信号限制端.写数据时,需要下降沿触发模块.D卜D7: 8为数据总线,三态双向.如果 MCUJ I/O 口资源紧张的话,该模块也可以只使用4位数据线D4D7接口传送数据.A: LED背光正极.需要背光时,A申接一个限流电阻接VDD K接地.K: LED背光地端.VDD D7P0,7DOP0.6VEE D5P0.5D4P0.4VSS D3P0.3D2P0.2D1PO.lDQPQ.EP3.4RWRSP3.5LCD 1602AT89CS1LCD与单片机连接图
8、第四局部系统硬件设计4.1最小系统复位时单片机的初始化操作,只要给RST 引脚加上两个机器周期以上的高电平信 号,就可以使STC89C51II片机复位.本 次米用的是12M晶振,按钮复位电路.4.2 LCD显示电路LCD显示屏的D0到D7与单片机P0 口相连,LCD显示屏EN口与单片机P3.4 口相 连,RS与P3.5相连.通过滑动变阻器改变 LCD显示屏的显示比照度.4.3 键盘输入电路本次设计采用独立键盘,键盘按下时,相应的I/O 口电平由高变低,一次检测按 键是否被按下.4个独立按键与单片机P3.0 P3.3 口相连.4.3 蜂鸣器和LED灯电路蜂鸣器的作用为准点报时产生报警声,LED在
9、秒钟为偶数时或者功能键被按下时 亮.蜂鸣器与单片机P2.2 口相连,LED丁与单片机P2.3 口相连.第五局部仿真电路图与仿真结果用Keil和Protues进行仿真调试,仿真结果完全到达预期目的R3 0 OOR32 On 3 OC1o X1LCD1LktJlELA3U202106-21 FBW 11闵阡WTAL1PO.flDOFO.1/AD1PO.iDSKTAL2PO.3?AD3FCI.4JAD4P0.5/ADSFO.5JAD6RST殖了炉W昨岫P2.1MP2 2tM0rawP2 3W1ALEP2 4X4126AP2盘心3P2JBXK14PT7四姑P1.DP3MtXDPl 1P31/TXDPI
10、 .2P32flNH0PI .3P31WI1PI 4P3.*iT0P1 SP3.-5/T1PI 6PI .7P37/RD第六局部课程设计总结本次单片机课程设计,在我和我的伙伴陈雅琴默契配合,以及邹老师的指导和同 学的帮助下顺利完成了.在设计过程中,从仿真电路的设计,源程序的书写和修 改以及实物电路的焊接中都遇到了不少问题, 但在我们的共同努力下解决了,并 且从中学到了不少知识.我们在设计过程中还不断提出自己的疑点以及新的想法, 联系实际应用,将课本上学习的东西运用到实际中,这些都令我们受益匪浅.课程设计需要很大的耐心,尤其是遇到困难的时候,这也是对我们的考验.在设 计过程中,我们遇到问题不是感
11、到急躁,而是耐心地寻找解决的方法,与老师、 同学进行交流讨论,寻求最正确的解决方法.总之,在此次的课程设计中,我们不仅动手、动脑,也学会了不少东西,同时, 谢谢对我们的设计带来建议、意见和帮助的老师和同学们!谢谢!第七局部参考文献?单片机原理及应用第二版高等教育出版社?新概念51单片机C语言教程?电子工业出版社附录A实物图附录B系统源程序#include<reg51.h>#define uchar unsigned char #define uint unsigned intsbit lcdrs=P3A5; /定义 1602 液晶 RS端sbit lcden=P3A4;/定义 16
12、02 液晶LCDE涮sbit s1=P3A0; /定义按键-功能键sbit s2=P3A1;/定义按键-增加键sbit s3=P3A2;/定义按键-减小键sbit s4=P3A3;/定义按键-闹钟键sbit beep=P2A2; /定义蜂鸣器端sbit led=P2A3; /定义 LED灯端 uchar count,s1num,s4num;char year,month,day,week,miao,shi,fen,pshi;uchar code table=" 20 - - "/定义初始上电时液晶默认显示状态void delay(uint z) /延时函数(uint x,y
13、;for(x=z;x>0;x-)for(y=110;y>0;y-);void zhuanhuan()(if(shi=0)pshi=12;if(shi<=12&&shi>=1)pshi=shi;if(shi>12)pshi=shi-12;void di()/ 蜂鸣器发声函数(beep=0;delay(300);beep=1;delay(300);void write_com(uchar com)/液晶写命令函数(lcdrs=0;lcden=0;P0=com;delay(5);20lcden=1;delay(5);lcden=0;void write_
14、date(uchar date)/ 液晶写数据函数(lcdrs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void _shi() /写"AM"、"PM函数(if(shi>=12)(write_com(0x80+0x40+1);/ 写出"PM"write_date('P');write_date('M');else(write_com(0x80+0x40+1);/ 写出"AM"write_date('A');wr
15、ite_date('M');void write_ymd(uchar add1,uchar date1)/ 写年月日函数uchar shi,ge;shi=date1/10;/分解一个ge=date1%10;write_com(0x80+add1);/write_date(0x30+shi);/write_date(0x30+ge); /2位数的十位和个位设置显示位置送去液晶显示十位送去液晶显示个位void write_sfm(uchar add,uchar date)/(写时分秒函数uchar shi,ge;shi=date/10;/分解一个2位数的十位和个位ge=date%1
16、0;write_com(0x80+0x40+add);/设置显示位置送去液晶显示十位送去液晶显示个位/写液晶星期显示函数write_date(0x30+shi);/ write_date(0x30+ge); / void write_week(char week) (write_com(0x80+12);switch(week)( case 1: write_date('M');delay(5);write_date('O');delay(5); write_date('N');break;case 2: write_date('T
17、9;);delay(5);write_date('U');delay(5); write_date('E');break;case 3: write_date('W);delay(5);write_date('E');delay(5);write_date('D');break;case 4: write_date('T');delay(5);write_date('H');delay(5);write_date('U');break;case 5: write_date(&
18、#39;F');delay(5);write_date('R');delay(5);write_date('I');break;case 6: write_date('S');delay(5);write_date('A');delay(5);write_date('T');break;case 7: write_date('S');delay(5);write_date('U');delay(5);write_date('N');break;void wri
19、teym()(day=1;month+;if(month=13)(month=1;year+;if(year=100)year=0;write_ymd(3,year);/年假设变化那么重新写入write_ymd(6,month);/月假设变化那么重新写入void init()/初始化函数uchar num;lcden=0;year=13;/初始化种变量值month=6;day=21;week=5;shi=13;fen=59;miao=58;count=0;s1num=0;s4num=0;write_com(0x38);/ 初始化 1602 液晶write_com(0x0c);write_com
20、(0x06);write_com(0x01);write_com(0x80);/设置显示初始坐标for(num=0;num<15;num+)/ 显示年月 日星期write_date(tablenum);delay(5);delay(5);write_com(0x80+0x40+6);/ 写出时间显示局部的两个 : write_date(':');delay(5);write_com(0x80+0x40+9);write_date(':');delay(5);write_week(week);write_ymd(3,year);/分别送去液晶显示write_
21、ymd(6,month);write_ymd(9,day);write_sfm(10,miao);/分别送去液晶显示write_sfm(7,fen);write_sfm(4,shi);TMOD=0x01;/设置定时器0工作模式1TH0=(65536-50000)/256;/定时器装初值TL0=(65536-50000)%256; EA=1;/开总中断ET0=1; /开定时器0中断 TR0=1; /启动定时器0 void keyscan()/按键扫描函数 if(s1=0) delay(5); if(s1=0)/确认功能键被按下 s1num+;/功能键按下次数记录while(!s1);/释放确认i
22、f(s1num=1)/第一次被按下时TR0=0; / 关闭定时器write_com(0x80+3);/光标定位到年位置write_com(0x0f); / 光标开始闪烁 if(s1num=2)/第二次按下光标闪烁定位到月位置write_com(0x80+6);if(s1num=3)/第三次按下光标闪烁定位到日位置write_com(0x80+9);if(s1num=4)/第四次按下光标闪烁定位到星期位置write_com(0x80+12);if(s1num=7)/第七次被按下时光标定位到秒位置write_com(0x80+0x40+10);if(s1num=6)/第六次按下光标闪烁定位到分位置
23、write_com(0x80+0x40+7);if(s1num=5)/第五次按下光标闪烁定位到时位置(write_com(0x80+0x40+4); if(s1num=8)/第七次按下(s1num=0;/记录按键数清零write_com(0x0c);/取消光标闪烁TR0=1; /启动定时器使时钟开始走 if(s1num!=0)/只有功能键被按下后,增加和减小键才有效(if(s2=0)(delay(5);if(s2=0)/ 增加键确认被按下 (while(!s2);/按键释放if(s1num=1)/ 假设功能键第一次按下 ( year+; / 那么调整年加1 if(year=100)/ 假设满1
24、00后将清零 year=0;write_ymd(3,year);/每调节一次送液晶显示一下write_com(0x80+3);/显示位置重新回到调节处 if(s1num=2)/ 假设功能键第二次按下(month+;/那么调整月加1if(month=13)/ 假设满 12 后将置一month=1;write_ymd(6,month);/每调节一次送液晶显示一下write_com(0x80+6);/显示位置重新回到调节处if(s1num=3)/ 假设功能键第三次按下 (day+;/那么调整日加1 if(year%4=0&&month=2) (if(day=30)/ 假设满 29 后
25、将置一 day=1;if(year%4!=0&&month=2)(if(day=29)/ 假设满 28 后将置一day=1;if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11)(if(day=32)/ 假设满 31 后将置一day=1;if(month=4|month=6|month=9|month=11)(if(day=31)/ 假设满 30 后将置一day=1;write_ymd(9,day);/每调节一次送液晶显示一下write_com(0x80+9);/
26、显示位置重新回到调节处if(s1num=4)/ 假设功能键第四次按下(week+;/那么调整星期加1if(week=8)/ 假设满8后将置一week=1;write_week(week);/每调节一次送液晶显示一下write_com(0x80+12);/显示位置重新回到调节处if(s1num=7)/ 假设功能键第七次按下(miao+; /那么调整秒加1if(miao=60)/ 假设满60后将清零miao=0;write_sfm(10,miao);/每调节一次送液晶显示一下write_com(0x80+0x40+10);/显示位置重新回到调节处if(s1num=6)/ 假设功能键第二次按下(fe
27、n+;/那么调整分钟加1if(fen=60)/ 假设满60后将清零fen=0;write_sfm(7,fen);/每调节一次送液晶显示一下write_com(0x80+0x40+7);/显示位置重新回到调节处if(s1num=5)/ 假设功能键第五次按下(shi+;if(shi=24)/ 假设满24后将清零 ( shi=0; if(s4num=0) ( write_sfm(4,shi);/每调节一次送液晶显示一下write_com(0x80+0x40+4);/显示位置重新回到调节处 if(s4num=1) ( zhuanhuan(); _shi(); write_sfm(4,pshi);/每调
28、节一次送液晶显示一下write_com(0x80+0x40+4);/显示位置重新回到调节处 if(s3=0) ( delay(5); if(s3=0)/确认减小键被按下( while(!s3);/按键释放if(s1num=1)/ 假设功能键第一次按下 ( year-;/那么调整秒减1if(year=-1)/假设减到负数那么将其重新设置为99year=99; write_ymd(3,year);/每调节一次送液晶显示一下write_com(0x80+3);/显示位置重新回到调节处 if(s1num=2)/ 假设功能键第二次按下 ( month-;/ 那么调整分钟减1 if(month=0)/ 假
29、设减到负数那么将其重新设置为 59 month=12; write_ymd(6,month);/ 每调节一次送液晶显示一下 write_com(0x80+6);/显示位置重新回到调节处 if(s1num=3)/ 假设功能键第二次按下( day-;/ 那么调整日加1 if(year%4=0&&month=2) (if(day=0)/ 假设满29后将置一 day=29; if(year%4!=0&&month=2) (if(day=0)/ 假设满28后将置一day=28;if(month!=2&&month!=4&&month!=6&
30、amp;&month!=9&&month!=11) (if(day=0)/ 假设满31后将置一 day=31; if(month=4|month=6|month=9|month=11) (if(day=0)/ 假设满30后将置一 day=30;write_ymd(9,day);/每调节一次送液晶显示一下write_com(0x80+9);/显示位置重新回到调节处 if(s1num=4)/ 假设功能键第二次按下 (week-;/ 那么调整小时减1if(week=0)/假设减到负数那么将其重新设置为23week=7;write_week(week);/每调节一次送液晶显示一
31、下write_com(0x80+12);/显示位置重新回到调节处 if(s1num=7)/ 假设功能键第一次按下 (miao-;/ 那么调整秒减1if(miao=-1)/ 假设减到负数那么将其重新设置为 59 miao=59;write_sfm(10,miao);/ 每调节一次送液晶显示一下write_com(0x80+0x40+10);/显示位置重新回到调节处 if(s1num=6)/ 假设功能键第二次按下 (fen-;/ 那么调整分钟减1if(fen=-1)/假设减到负数那么将其重新设置为59fen=59;write_sfm(7,fen);/每调节一次送液晶显示一下write_com(0x
32、80+0x40+7);/显示位置重新回到调节处if(s1num=5)/假设功能键第二次按下shi-;if(shi=-1)/ 假设满24后将清零shi=23;if(s4num=0)write_sfm(4,shi);/每调节一次送液晶显示一下write_com(0x80+0x40+4);/显示位置重新回到调节处if(s4num=1)zhuanhuan();_shi();write_sfm(4,pshi);/每调节一次送液晶显示一下write_com(0x80+0x40+4);/显示位置重新回到调节处if(s1num=0)if(s4=0)delay(5);if(s4=0)/确认功能键被按下s4num+;/功能键按下次数记录while(!s4);/ 释放确认if(s4num=1)/第一次被按下时zhuanhuan();_shi();write_sfm(4,pshi);if(s4num=2)/第二次按下s4num=0;/记录按键数清零 write_com(0x80+0x40+1);write_date('');write_date('');write_sf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精神卫生护理风险防范措施探讨
- 远程教育教师的职责创新
- 2025年机械设备租赁服务项目发展计划
- 数学教师职业发展培训计划
- 六年级第一学期德育工作计划
- 小学2025年春季学期少先队活动方案
- 体育场馆观众安全防范措施
- 国际合作项目反腐倡廉的心得体会
- 信息技术行业的环保管理措施探析
- 旅游业项目实施工期及奖罚措施
- 宇电温控器ai 500 501用户手册s 6中文说明书
- 免疫学检验技术-抗原抗体反应
- 客户关系管理-程广见介绍
- 《一本书读懂采购》读书笔记思维导图
- 海南省养老托育设施项目分析
- 山东省危险化学品建设项目 国内首次生产工艺安全可靠性论证管理办法(征求意见稿)
- 设备管理评价标准
- 固结试验-e-lgp曲线图表41-1
- HY/T 0273.5-2021海洋灾害风险评估和区划技术导则第5部分:海平面上升
- GB/T 9101-2017锦纶66浸胶帘子布
- 人物志学习撒迦利亚201509
评论
0/150
提交评论