用LCD设计的可调式电子钟

上传人:dus****log 文档编号:76282852 上传时间:2022-04-18 格式:DOCX 页数:16 大小:38.42KB
返回 下载 相关 举报
用LCD设计的可调式电子钟_第1页
第1页 / 共16页
用LCD设计的可调式电子钟_第2页
第2页 / 共16页
用LCD设计的可调式电子钟_第3页
第3页 / 共16页
点击查看更多>>
资源描述
单片机应用课程设计说明书用1602LCD设计的可调式电子钟专业自动化学生姓名 班级 自动化142学号 14100指导教师 蒋完成日期 20年1 月23 日 目 录1 概 述32 课题研究背景与意义32.1 课题研究背景32.2 课题研究意义33 系统方案设计与主要设计工作33.1 设计任务33.2 功能要求说明44设计课题总体方案44.1硬件设计方案54.2系统软件设计75. 软件仿真及实物设计调试95.1PROTUES仿真软件介绍95.2仿真运行结果说明105.3实物设计结果与调试116课程设计实验总结11参考文献13附 录14附录1:程序清单14附录2:系统电路原理图21附录3:元器件清单22用1602LCD设计电子钟1 概 述数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。2 课题研究背景与意义2.1 课题研究背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。2.2 课题研究意义以单片机作为为电子钟控制器,可实现编程控制,更加灵活方便,而且可以实现更多的功能。而通过分立器件搭建的驱动电路,不仅降低了设计成本,而且节约了维修成本,提高了用户的经济利益。控制器的过流保护采用了软件保护和硬件保护相结合的方法,大大提高了其安全性能。远程控制单元的加入,扩大了无刷电机控制器的应用范围,方便了控制与管理。编写合适的算法程序,将会使电机的控制更加快速、稳定和安全可靠。3 系统方案设计与主要设计工作3.1 设计任务(一)设计题目:用1602LCD设计电子钟(二)设计目的与任务:1)选取STC89C52单片机作为核心控制芯片,绘制STC89C52单片机最小系统及相应外设单元1602LCD电路原理图;2)基于电路原理图,选取万用板作为基板制作单片机实物;3)编写C源程序文件,用1602LCD实现电子钟显示。3.2 功能要求说明此多功能数字电子钟采用LCD1602显示时间。电子钟一上电即可显示。用四个调整按键调整时间,分别为K1、K2、K3、K4,其中K1键为功能选择键,按一下调节秒,两下是调节分钟,三下是调节闹钟小时;K2为数值加一键;K3为数值减一键。K4为确认键。4设计课题总体方案数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过LCD1602显示器显示出来。图4-1设计总原理图4.1硬件设计方案此设计的硬件采用STC89C52芯片及LCD602显示器,独立式按键组成的多功能电子钟。设计中是采用单片机的内部定时器定时,硬件组成框图如图4.1所示:图4-2程序框图本文可调时钟设计原理主要利用STC89C52单片机,由单片机的P0口控制数码管的位显示, P2口控制数码管的段显示,P1口与按键相接用于时间的校正。在设计中引入电源电路,外部电源系统产生+5V电压,用于给CPU及显示电路提供工作电压,这是数字时钟正常工作时的总电压。整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”计数器的输出,通过LED液晶显示器显示出来。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。该多功能数字电子钟单片机由最小系统、按键模块、LCD显示模块、USB接口电路模块组成,各模块的功能如下:(1) 单片机最小系统STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。(2) LCD显示电路LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 图4-3LCD1602显示仿真电路(3)USB接口电路接上一个电容组成的滤波电路和电源显示灯组成一个电源接口,为单片机工作供电。(4)晶振电路和复位电路STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C3按图4-2-3所示方式连接。晶振、电容C2C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C2、C3的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C2、C3取值范围在530pF之间。根据实际情况,本设计晶振选择频率为12MHZ,电容选择30pF如图(4-2-3)。经计算得单片机工作胡机器周期为:12(112M)=1us。振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上。时钟发生器是个二分频的触发器,将振荡器的信号频率fosc除以2,向CPU提供两相时的时钟信号。复位电路时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。图4-4晶振和复位电路(5)按键模块用四个调整按键调整时间,分别为K1、K2、K3、K4,其中K1键为功能选择键,按一下调节秒,两下是调节分钟,三下是调节闹钟小时;K2为数值加一键;K3为数值减一键。K4为确认键。图4-5按键电路4.2系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、校对设置程序、EEPROM读写程序等组成。主要程序设计流程图如下所示:图4-6主要程序设计流程图4.3 系统程序流程图在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。在主程序中,对不同的按键进行扫描,实现时间调整,复位清零等功能,系统总流程图如下图4-3。图4-7 按键处理流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。如图4-8所示:图4-8时钟显示顺序5. 软件仿真及实物设计调试5.1PROTUES仿真软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.1电子钟系统PROTUES仿真用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的所示。图5.1仿真图5.2仿真运行结果说明电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及复位。打开时的正常显示仿真:图5.2 LCD1602仿真结果图1图5.3 LCD1602仿真结果图25.3实物设计结果与调试图5.4实物调试图1图5.5实物调试图26课程设计实验总结通过这次设计我发现,只有理论水平提高了;才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。这个设计十分有意义,我获得很深刻的经验。通过这次设计,我知道了理论和实际的距离,也知道了理论和实际相结合的重要性,也从中获得了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。这次专业课程设计总体来说还算是成功的,但我也发现了自己许多的错漏和不足之处。最简单的程序没写好就想着去写复杂的程序,做事还是缺乏耐心和信心,当有时遇到问题时,总是无从下手,总想让老师解决问题,对于课本上的知识不能很好的组织到一起,不会灵活的运用,总是对书本知识有着模糊的记忆,不能掌握扎实。在编写个功能的程序时,特别是后来增添更复杂的程序时,明显地显示出自己的不足。通过本次的实训,让我了解到了自己的不足,需要更好的掌握本门课程,书本上的知识是基础,想要更好的掌握就要多动手实践与动脑思考,这样才会达到事半功倍的效果。此设计是在我敬爱的蒋善超老师的精心指导下完成的。蒋老师严谨的教学作风和孜孜不倦的工作态度一直激励着我,使我在学习中遇到困难时能尽最大努力克服,不断进步,在理论和实践方面的能力都获得了很大的提高。四年大学生活中,老师们给了我很多指导和支持。他们严谨的治学,优良的作风和敬业的态度,为我树立了为人师表的典范。通过这次课程设计,本人不仅加强了自己对所掌握的知识的巩固和进一步理解,同时对自己设计进行了一次全面的检验和提升。设计过程中丰富了自己的知识,积累了宝贵的设计经验,获得了一定的设计和能力,能承担一些的设计工作;同时也于此,发现自己还存在不少的知识缺陷,懂得自己要想成为一个杰出的人,我就应该不断地努力学习知识,充实自己的头脑。通过这次课程设计,让我复习了很多学过的旧知识,同时锻炼了自己的动手能力和查阅资料。尤其是解决在实际中解决排查问题的能力。由于本次实训考虑到实训时间短,实训的成本低,还有所学的知识不完整等。这次的设计有很多的不足,和市场上的产品有一定的差距,例如:电子时钟还可以做到秒表计时,闹钟提示等功能。参考文献1 张兰红.单片机原理及应用.北京:机械工业出版社,2012.72 牛昱光. 单片机原理与接口技术M. 北京:电子工业出版社,2008. 3 蒋力培. 单片机微机系统实用教程M.北京:机械工业出版社, 2007.附录附录1:程序清单#include#define uint unsigned int#define uchar unsigned charsbitrs=P20; /定义液晶显示器控制端口sbitrw=P21;sbiten=P22;sbit s1=P14; /定义按键控制sbit s2=P15;sbit s3=P16;sbit s4=P17;ucharshi,fen,miao,ri,yue,nian;uchar code table= 2018:01:05;uchar code table1= 00:00:00;ucharnum,num1,count;uinti,sh,ge,s,g;void Delay(uchar time) /延时 uint j; for(;time0;time-) for(j=0;j125;j+); void write_com(uchar com) /写指令函数en=0;rs=0;Delay(5); P0=com; /Delay(5);en=1; /高脉冲Delay(5);en=0;void write_data(uchardat) /写数据函数en=0;rs=1;Delay(5); P0=dat;Delay(5);en=1;Delay(5);en=0;void init() /初始化en=0;rw=0;write_com(0x38);/设置16X2显示,5X7点阵,8位数据接口write_com(0x0c);/设置开显示,不显示光标D=1:显示开,D=0:显示关,C=1:光标显示,C=0:/光标不显示。B=1:光标闪烁,B=0:光标不闪烁。/说明:这里的设置是显示开,不显示光标,光标不闪烁,设置字为0x0c。write_com(0x06);/写一个字符后地址指针加1I/D=1:写入新数据后光标右移。I/D=0:/写入新数据后光标左移。S=1:显示移动。S=0:显示不移动。write_com(0x01);/显示清零,数据指针清零 for(i=0;i(sizeof(table)-1);i+) /第一行写sizeof判断数据类型长度符的关键字 write_com(0x80+i); /找地址write_data(tablei); /写数据 for(i=0;i(sizeof(table1)-1);i+) /第二行写 write_com(0x80+0x40+i);/写指令 P0=comwrite_data(table1i); miao=59; fen=59;shi=23;ri=1;yue=1;nian=2018; TMOD=0x01; /time0作为定时器工作在模式1下 TH0=(65536-50000)/256; TL0=(65536-50000)%256;/ 中断20次为1s EA=1; /开启总中断 ET0=1; /开启time0中断 TR0=1; /启动time0void write_sfm(ucharadd,ucharnum) /时分秒函数sh=num/10; /分离出十位ge=num%10; /分离出个位write_com(0x80+0x40+add); /第二行数据指针位置调整write_data(0x30+sh); /更改显示数据的十位 0write_data(0x30+ge); /更改显示数据的个位void timer0() interrupt 1 /time0中断 TH0=(65536-50000)/256; /重装初始值 TL0=(65536-50000)%256; count+; if(count=20) /20次到则满一秒 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); void keyscan() /键盘扫描 if(s1=0) /按下S1 Delay(5); if(s1=0) num1+; while(!s1);/等待释放 if(num1=1) TR0=0; /关中断write_com(0x0e); /显示光标,不闪烁write_com(0x80+0x40+0x0b); /数据指针移动到秒的个位处write_com(0x0f);/显示光标,闪烁 if(num1=2) write_com(0x80+0x40+0x08);/指针移到到分钟的个位处 if(num1=3) write_com(0x80+0x40+0x05);/指针移到到小时的个位处 if(num1=4) num1=0; /清零write_com(0x0c); /重新显示 TR0=1; /重新启动计时 if(num1!=0) /按下S2则选择时/分/秒加1 if(s2=0) Delay(5); if(s2=0) while(!s2); if(num1=1) Delay(20);miao+; if(miao=60) miao=0;write_sfm(10,miao); write_com(0x80+0x40+0x0a); if(num1=2) fen+; if(fen=60) fen=0;write_sfm(7,fen); write_com(0x80+0x40+0x07);/分的地址 if(num1=3) shi+; if(shi=24)shi=0;write_sfm(4,shi); write_com(0x80+0x40+0x04); if(num1!=0) if(s3=0) /按下S3则选择时/分/秒 减1 Delay(5); if(s3=0) while(!s3); if(num1=1) Delay(20);miao-; if(miao=-1)miao=59;write_sfm(10,miao); write_com(0x80+0x40+0x0a); if(num1=2) fen-; if(fen=-1) fen=59;write_sfm(7,fen); write_com(0x80+0x40+0x07); if(num1=3) shi-; if(shi=-1)shi=23;write_sfm(4,shi); write_com(0x80+0x40+0x04); if(num1!=0) if(s4=0) /确定按键 Delay(5); if(s4=0) while(!s4); num1=0; /清零write_com(0x0c); /重新显示 TR0=1; /重新启动计时 void main()init();while(1) keyscan(); 盐城工学院专业自动化班级自动化学号姓名设计课题名称用1602LCD设计电子钟比例审核图号A4日期图名系统电路原理图共1张第1张附录2:系统电路原理图附录3:元器件清单1.STC89C52单片机 1块2.LCD602显示器 1个5.1K电阻1个7.102排阻 1个8.12M晶振 1个9.30pF电容 2个10.10F电解电容 1个11.排针,导线 若干12.轻触按钮 4个
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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