单片机LCD电子时钟课程设计报告(共26页).doc

上传人:飞****2 文档编号:14093088 上传时间:2022-05-02 格式:DOC 页数:26 大小:5.58MB
返回 下载 相关 举报
单片机LCD电子时钟课程设计报告(共26页).doc_第1页
第1页 / 共26页
单片机LCD电子时钟课程设计报告(共26页).doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《单片机LCD电子时钟课程设计报告(共26页).doc》由会员分享,可在线阅读,更多相关《单片机LCD电子时钟课程设计报告(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上宁德师范学院单片机课程设计报告专业 电气工程及其自动化 学生姓名 钱泳舟 学号 B 题 目 LCD电子时钟 指导教师 袁秋凤 2015年12月8日专心-专注-专业1 方案设计与论证1.1 主控制器模块方案1 采用STC89C52芯片作为硬件核心。STC89C52内部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载。方案2采用AT89S52芯片作为硬件核心。AT89S52片内具有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,也与MCS-5

2、1系列单片机完全兼容,具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,STC89C52相对ATS89C52价格便宜,且抗干扰能力强。考虑到成本因素,因此选用STC89C52。1.2 显示模块方案1 用LED数码管进行显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。方案 2采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,LCD1602可显示32个字符,采用LCD的缺点是亮度不够。比较以上两种方案:方案1硬件简单、功耗小;方案2硬件简单,显示内容多,功耗小,成本低等。本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求

3、,权衡两种方案,选择方案2。2 硬件电路设计2.1原理框图 2.2 单片机最小系统电路主控制器最小系统仿真电路如下图1所示。主要由STC89C52单片机、内部时钟电路和按键手动复位电路构成。图1 最小系统仿真电路图2.2.1 复位电路复位电路有两种方式:上电复位和按钮复位,我们主要用上电复位方式。如图2所示: 图2 复位电路图2.2.2 晶振电路晶振可以选用频率为12MHz的晶振,晶振两端接单片机XTA1、XTA2引脚。如图3所示图3 晶振电路图2.3 LCD液晶屏显示电路显示电路采用LCD液晶显示器,采用动态扫描显示方式。单片机的P0端口作为段选线,P2.0P2.3作为位选线。显示仿真电路如

4、图所示,实际电路制作时采用PNP三极管9012来驱动4位数码管,驱动电路如图4所示,9012的基极接单片机的P2.5P2.7引脚,集电极接数码管的COM引脚。 图4 LCD显示电路图2.4 按键电路 图5 按键电路图K1设置时钟(按键1次设置秒,2次设置分,3次设置时。),K2增加一(设置中对所选择变量加一),K3减少一(设置中对所选择变量减一),K4 复位(时分秒归零)。3 软件设计3.1 主程序主程序包括键盘识别控制及液晶屏显示2个子程序,实现时钟的显示,调节功能。初始化子程序包括1602液晶显示模式和定时器初值。利用定时器0来控制时间,实现分钟,小时的计算。开始初始化子程序按键扫码 3.

5、2 子程序3.2.1 按键子程序按键子程序入口通过按键子程序的设置,可以通过按键来调整时间,三个按键分别为功能键(K1)、增加键(K2)、减小键(K3).和复位键(K4):功能键是否按下 N增加键是否按下减小键是否按下NY N根据增加键按下次数来设置时、分、秒根据减小键按下次数来设置时、分、秒Y YYY显示设置时间显示设置时间Y N N Y功能键是否按下4次功能键是否按下4次次数清零次数清零 Y Y3.2.2显示子程序显示子程序通过取商取余的方法将日期、时间分离,然后通过“写命令”、“写数据”两条指令程序将分离后的日期、时间送入1602进行显示,程序框图如图3-3所示。写命令模式 将命令字送到

6、数据中等待数据稳定使能端给一高脉冲延时使能端置04 安装与调试4.1 电路安装步骤(1)检查元件的好坏按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。(2)放置、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。4.2 系统调试(1)在Keil软件中编写并调试程序,修改语法错误,最终生成.hex目标程序。(2)利用Proteus软

7、件绘制电路图,在确保电路连接正确无误的情况下,载入目标程序,仿真开始3秒后查看结果,如图所示。图 3秒系统仿真效果5 性能测试与结果分析使用STC-ISP软件输入目标程序,观察实物运行效果,可以通过按动按键来调整时间,按下K1(选择“秒”位)再按下K2 (加)4次,再次按下K1(选择“分”位)后按下K3 (减)3次,再按K1(选择“时”位)再按下K3(减)2次结果如下图所示。该电子时钟设计方案正确、可行,各项指标稳定、可靠。6 心得体会在这个两个星期的时间里我学到了很多宝贵的知识和单片编程的经验,在这次课程设计过程中我遇到了许多困难和问题,其中一些我通过自己上网找资料和询问同学的方式找到了解决

8、的方法,就是在这个过程中我学会了许多书本上学不到的东西,还有一些是我自己解决不了的问题,这些问题都是需要靠我以后的经验积累和不断的学习才能得到解决的,从这次课程设计中我体会到了自己用汗水换来的成果的喜悦。 我在刚开始设计这个东西时是一头雾水,没有一个方向和目标,后来从网上找到一些有关的资料通过相似的题目我一步一步的完成我自己的课程设计的功能,尤其是在编写程序的时候,每一个模块都要经过非常仔细的考虑后在写,因为程序的运行过程中需要考虑各个模块之间的影响和互助,有一些模块是我们没有学习过的我从网上找到相似的然后经过修改变成我能用的,在这之间我锻炼了我的变成能力。这次课程设计采用的是AT89C51系

9、列单片机,而接口电路则是一个数字时钟,经过反反复复的修改、调试,程序终于达到预期功能。通过protrus仿真演示也达到预期的功能。电路的设计相对编程来说要容易一些,总体来说电路图都是大同小异的,只是他们中的分支做一些修改来。课程设计需要很大的耐心,尤其是遇到困难的时候,这也是对我们的考验。在设计过程中,我们遇到问题不是感到急躁,而是耐心地寻找解决的办法,与同学进行交流讨论,寻求最佳的解决办法。最重要的学习就是一个课程设计的过程的整体思路,先做什么后做什么最后来一个总结经验的过程,这给我以后的设计过程打下了基础,这次设计中,我深刻体会到专研的重要性,一个看似简单的系统,却需要着大量的知识储备和很

10、强的专研精神,理论和实践往往是两回事,理论上很简单的事情在实际操作中往往会遇到很多意想不到的困难,学科的知识不光来自于书本知识,更来自于实践。参考文献:1 苏平.单片机的原理与接口技术M.北京:电子工业出版社,2006,1-113.2 王忠民.微型计算机原理M.西安:西安科技大学出版社,2003,15-55.3 左金生.电子与模拟电子技术M.北京:电子工业出版社,2004,105-131.4 新编单片机原理与应用(第二版).西安电子科技大学出版社,2007.25 张萌.单片机应用系统开发综合实例M. 北京:清华大学出版社,2007.7附录:1 电路图2 实物图正面反面3 源程序#include

11、#define uchar unsigned char #define uint unsigned intsbit lcdrs=P25;sbit lcswr=P26;sbit lcden=P27;sbit s1=P10;sbit s2=P11;sbit s3=P13;sbit rd=P37;uchar count,s1num;char miao,shi,fen;uchar code table= ;uchar code table1= 00:00:00;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_co

12、m(uchar com)lcdrs=0;lcswr=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)lcdrs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void init()uchar num; lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num15;num+)write_date(tabl

13、enum);delay(5);write_com(0x80+0x40);for(num=0;num12;num+)write_date(table1num);delay(5);TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);voi

14、d keyscan()rd=0;if(s1=0)delay(5);if(s1=0)s1num+;while(!s1);if(s1num=1)TR0=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)s1num=0;write_com(0x0c);TR0=1;if(s1num!=0)if(s2=0)delay(5);if(s2=0)while(!s2);if(s1num=1)miao+;if(miao=60

15、)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(s3=0)delay(5);if(s3=0)while(!s3);if(s1num=1)miao-;if(miao=-1)miao=59;write_sfm(10,miao);write_com(0x80

16、+0x40+10);if(s1num=2)fen-;if(fen=-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7);if(s1num=3)shi-;if(shi=-1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4);void main()init();while(1)keyscan();void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=18)count=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;write_sfm(4,shi);write_sfm(7,fen);write_sfm(10,miao);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁