液晶显示数字电子钟.doc_第1页
液晶显示数字电子钟.doc_第2页
液晶显示数字电子钟.doc_第3页
液晶显示数字电子钟.doc_第4页
液晶显示数字电子钟.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

目 录1. 课程设计目的11.1 引言11.2 Protues软件简介12. 课程设计题目描述和要求22.1 设计目的22.2 设计内容23. 课程设计报告内容23.1 AT89C51简介23.1.1 主要特性33.1.2 管脚说明33.2 最小系统设计53.2.1 电源引脚53.2.2 外接晶体引脚63.2.3 复位 RST 963.2.4 输入输出引脚73.3 LED显示电路73.4 系统原理103.4.1 流程图103.4.2 原理图113.5 程序说明113.5.1 主程序113.5.2 中断子程序123.5.3 延时子程序123.5.4 控制程序133.5.5 显示程序173.6 系统仿真与调试193.6.1 Protues仿真193.6.2 系统性能测试与功能193.6.3 系统时钟误差分析194. 总结20参考文献211. 课程设计目的1.1 引言 半导体技术在近年来飞速发展,其在移动通信、网络技术、多媒体技术以及嵌入式系统设计中都得到了很大的发展和应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。而嵌入式技术是更是当今最为先进的技术之一。嵌入式技术是以应用为中心,以计算技术为基础,软硬件可裁剪的小体积、低成本的专用计算机系统。无论从发展空间还是就业前景来看,嵌入式系统都是当前最热门、最具发展前景的IT应用领域之一。包括手机、电子字典、可视电话、数字相机(DC)、数字摄像机(DV)、UDisk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。1.2 Protues软件简介PROTEUS软件由Labcenter公司开发的仿真软件,其各项性能在同类软件中都是无可比拟的。它可以实现的功能非常之多,包括数字电路、模拟电路、PCB模拟仿真等,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil C51uVision4等软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支持PLM、汇编和C语言的程序设计。Keil是一款及其简单易学的软件,而且功能也十分强大。其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等, Proteus为我们建立了完备的电子设计开发环境。2. 课程设计题目描述和要求液晶显示数字电子钟2.1 设计目的了解实时时钟的硬件控制原理及设计方法。 掌握RTC模块程序设计方法。掌握液晶屏的显示控制方法。2.2 设计内容使用proteus仿真软件,处理器任选(51单片机、ARM处理器皆可),绘制电路原理图,学习和掌握RTC模块的使用,并编写应用程序,修改时钟日期及时间的设置,并使用128X32点阵液晶显示器,在显示器上动态显示当前系统时间(显示点阵尽量大一点,做到一目了然);同时要求能通过键盘进行时钟日期及时间的设置,能设置告警时间并在告警时间到时触发某种告警事件(如蜂鸣器、LED灯等)。3. 课程设计报告内容3.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图-1 AT89C51单片机3.1.1 主要特性与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年 全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM 32可编程I/O线两个16位定时器/计数器 5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路。3.1.2 管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通表-1 P3口特殊功能RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2 最小系统设计单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面将会对每一个组成部分做一个简单的介绍。3.2.1 电源引脚 Vcc电源端GND接地端工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。 3.2.2 外接晶体引脚图-2 晶振连接的内部、外部方式图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.2.3 复位 RST 9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是按钮复位电路。3.2.4 输入输出引脚 (1) P0端口P0.0-P0.7 P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7 P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。(3) P2端口P2.0P2.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3端口P3.0P3.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能。3.3 LED显示电路 发光二极管是最简单也是最理想的显示电路,也是单片机中最常用的显示元件之一,其基本示意图如下所示。图-3 LED显示器的符号图发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共阳式、共阴式LED数码管的原理图和符号.图-4 共阳式、共阴式LED数码管的原理图和数码管的符号图显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。数码管使用条件:a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA图-5数码管的硬件连接示意图数码管使用注意事项说明:()数码管表面不要用手触摸,不要用手去弄引角;()焊接温度:度;焊接时间:()表面有保护膜的产品,可以在使用前撕下来。3.4 系统原理3.4.1 流程图主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间图-6 主流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。图-7定时器中断流程图3.4.2 原理图用PROTUES软件,根据要求画出数字电子钟的原理图如下所示。图-8 数字钟的原理图电子钟工作原理:数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,按一下second,秒单元就加1 ,按一下minute,分就加1,按一下hour,时就加1。3.5 程序说明3.5.1 主程序#includechar mod=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;char sceond,minute,hour,i,k,l,j,x,y;int u;sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;void main() TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; do kongzhi(); xianshi(); while(1);3.5.2 中断子程序timer0 (void) interrupt 1 using 1 u+; TH0=(65536-50000)/256; TL0=(65536-50000)%256; 3.5.3 延时子程序void delay() unsigned int time,p; for(time=30;time0;time-) for(p=0;p10;p+); 3.5.4 控制程序void kongzhi() if(P1_0=0) TR0=0; while(P1_0=0); while(1) if(P1_1=0) sceond+; if(sceond=60) sceond=0; while(P1_1=0); if(P1_2=0) sceond-; if(sceond0) sceond=0; while(P1_2=0); i=sceond%10; k=sceond/10; P2=0x7f; P0=modi; delay(); P2=0xbf; P0=modk; delay(); if(P1_0=0) while(P1_0=0); while(1) if(P1_1=0) minute+;while(minute=60) minute=0; while(P1_1=0); if(P1_2=0) minute-; if(minute0) minute=0; while(P1_2=0); l=minute%10; j=minute/10; P2=0xef; P0=modl; delay(); P2=0xf7; P0=modj; delay(); if( P1_0=0) w

温馨提示

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

评论

0/150

提交评论