数字电子钟的设计(程序仿真+电路图+任务书+说明书)_第1页
数字电子钟的设计(程序仿真+电路图+任务书+说明书)_第2页
数字电子钟的设计(程序仿真+电路图+任务书+说明书)_第3页
数字电子钟的设计(程序仿真+电路图+任务书+说明书)_第4页
数字电子钟的设计(程序仿真+电路图+任务书+说明书)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第1页摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,因此在许多电子设备中被广泛使用。电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。本次设计以数字电子为主,分别对1S时钟信号源、秒计时显示、分计时显示、小时计时显示、整点报时及校时电路进行设计,然后将它们组合,来完成时、分、秒的显示并且有整点报时和走时校准的功能。电路主要使用集成计数器,例如CD4060、CD4518,译码集成电路,例如74LS373,LED数码管及各种门电路和基本的触发器等。关键词:电子钟报时校准数码管第2页目录绪论.1摘要.3第一章总体设计方案.41.1数字电子钟的电路概述.41.2电路的设计方案.41.3总体简易设计电路图.5第二章系统的硬件设计.62.1系统的硬件构成及功能.62.2单元电路的分析与设计.62.2.1AT89C51单片机及其引脚说明.62.2.2晶体振荡器.112.2.3LED数码管.112.2.474LS373的功能及引脚说明.132.2.5复位电路.15第三章系统的软件设计.1631软件编程要点.163.2项目程序流程图.173.3项目的源程序.20第四章系统调试.254.1常用调试工具.254.1.1keil软件.254.1.2Proteus软件.264.1.3系统调试.26总结.27附录整机电路图.28第3页绪论由于集成电路制造技术日新月异,电子电路的设计日趋复杂。为了能在电路付诸实现之前,完全掌握操作环境因素(如电源电压、温度等)对电路的影响,利用电脑辅助设计进行电模拟与分析,并进行输入与输出信号响应的验证,可有效地节省产品开发的时间与成本。SimulationProgramwithIntegratedCircuitEmphasis(PSPICE)软件是专门用于电子电路仿真的“虚拟电子工作台PSPICE软件具有强大的电路图绘制功能、电路模拟仿真功能、图形后处理功能和元器件符号制作功能,以图形方式输入,自动进行电路检查,生成图表,模拟和计算电路。它的用途非常广泛,不仅可以用于电路分析和优化设计,还可用于电子线路、电路和信号与系统等课程的计算机辅助教学。与印制版设计软件配合使用,还可实现电子设计自动化。被公认是通用电路模拟程序中最优秀的软件,具有广阔的应用前景。这些特点使得PSPICE受到广大电子设计工作者、科研人员和高校师生的热烈欢迎,国内许多高校已将其列入电子类本科生和硕士生的辅修课程。第4页第一章总体设计方案1.1数字电子钟的电路概述设计的单片机电子钟/计时器采用6位LED数码管显示时、分、秒,以24小时计时方式。可以通过按键实现时分调整、秒表时钟功能转换、省电(关闭显示)、可根据设定的作息时间表按时输出警示信号等功能。为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些。考虑时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定采用动态扫描法实现LED的显示。单片机采用易购的AT89C51系列,这样单片机可具有足够的空余硬件资源实现其它的扩充功能。1.2电路的设计方案根据功能和指标要求,本系统选用AT89C51单片机为主控机。通过扩展必要的外围接口电路,实现对数字电子钟的设计。具体设计考虑如下:(1)由于此次所要设计的是简单的数字电子钟显示时、分、秒功能,因此需要用LED数码管作为显示器。(2)同时用于调时、分的调时电路分别接引脚P1.1、P1.2。(3)用并行口P0.0-P0.7作为段选码,P2.0-P2.5作为位选码,相应的驱动芯片用74LS373。(4)同时还需晶体振荡电路,复位电路及中断电路。通过将以上电路组合起来实现本次我所要设计完成的简易数字电子钟及其功能。第5页1.3总体简易设计电路图单片机AT89C51复位电路晶振电路LED数码显示器74LS373芯片图1-1总体结构框图工作原理:数字钟一般由振荡器、分频器、计数器、译码器、显示器等几部分组成。这些都是数字电路中应用最广的基本电路。石英晶体振荡器产生的时标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。秒信号送入计数器进行计数,并把累计的结果以“时”、“分”、“秒”的数字显示出来。“秒”的显示由两级计数器和译码器组成的六十进制计数电路实现:“分”的显示电路与“秒”相同,“时”的显示由两级计数器和译码器组成的二十四进制计数电路来实现。所有计时结果由六位数码管显示。调时电路中断电路第6页第二章系统的硬件设计2.1系统的硬件构成及功能根据总体要求分析,数字电子钟的电路系统由秒信号发生器、“时、分、秒”LED数码管显示电路、校时电路、复位电路等组成。秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。“时、分、秒”分别通过不同进制的计数器来实现。74LS373将“时、分、秒”的输出状态经LED数码管显示出来。电路是根据计时系统的输出状态产生一脉冲信号。校时电路是用来对“时、分、秒”显示数字进行校对调整的。根据实际情况,硬件的主要单片机为AT89C51芯片,它能够满足数据的采集、控制和数据处理的需求。调试时间时,有相应的调试时、分的按钮。2.2单元电路的分析与设计2.2.1AT89C51单片机及其引脚说明AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4KBYTES的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为你提供许多性能价比的应用场合,可灵活应用于各种控制领域。第7页AT89C51单片机图2-1:图2-1:功能特性及引脚说明:AT89C51提供以下标准功能:4K字节FLASH闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。1、主电源引脚(2根)(1)VCC:电源输入,接+5V电源(2)GND:接地线2、外接晶振引脚(2根)第8页(1)XTAL1:片内晶振电路的输入端(2)XTAL2:片内晶振电路的输出端3、控制引脚(4根)(1)RST/VPP:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。(2)ALE/PROG:地址所存允许信号。当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器。ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。如有必要,可通过对特殊功能寄存器区中的8EA单元的DO位置位,可禁止ALE操作。该置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。(3)PSEN:外部存储器读选通讯信号。当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次/PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的/PSEN信号不出现。(4)EA/VPP:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。4、可编程输入/输出引脚(32根)AT89C51单片机有4组8为可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。每一根引脚都可以编程,比如用来控制电机、交通灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能。第9页(1)P0口:8位双向I/O口线,名称为P0.0-P0.7,作输入口时,应先软件置“1”。是一组8位漏双向极开路型I/O口,即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8位TTL逻辑门电路,对端口写1可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。(2)P1口:8位准双向I/O口线,名称为P1.0-P1.7,作输入口时,应先软件置“1”。是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位。(3)P2口:8位准双向I/O口线,名称为P2.0-P2.7,作输入口时,应先软件置“1”。是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位。在访问外部程序存储器或16位地址的外部地址存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如执行MOVXR1指令)时,P2口线上的内容(即特殊功能寄存器SFR区中R2寄存器的内容),在整个访问期间不改变。FLASH编程和校验时,P2亦接收高位地址和其他控制信号。(4)P3口:8位准双向I/O口线,名称为P3.0-P3.7,作输入口时,应先软件置“1”。是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,被外部拉第10页低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表2-1所示:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时/计数器1外部输入)P3.5T1(定时/计数器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。2.2.2晶体振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,作用是为系统提供基本的时钟信号。我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限第11页制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。振荡器特性,XTAL1和XTAL2分别为反向放大器的输入和输出。该反晶体向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。在XTAL1和XTAL2引脚上外接定时元件就能构成自激振荡电路。定时元件通常采用石英晶体和电容组成的并联谐振电路。电容器C1和C2主要起频率微调作用。X1CRYSTALC122nFC222nF图2-2石英晶体振荡器2.2.3LED数码管LED数码管示图:第12页图2-3LED数码管LED数码管的性能特点、简易检测及使用注意事项1性能特点LED数码管的主要特点如下:(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。(2)发光响应时间极短(#defineucharunsignedchar#defineuintunsignedintsbitdule=P10;/定义段选信号sbitwele=P11;/定义位选信号sbitkey_minu=P12;/定义调时开关sbitkey_hour=P13;sbitkey=P32;/定义外部中断0开关ucharaa;/定义定时器中断控制变量uchartemp_hour;/定义调时开关的暂存变量uchartemp_minu;uchartemp_key;ucharhour;ucharminu;ucharsec;ucharhour_sw;/小时的十位ucharhour_gw;ucharminu_sw;/分钟的十位ucharminu_gw;ucharsec_gw;ucharsec_sw;第21页ucharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;voidinit()TMOD=0x01;/设定时器工作方式1EA=1;/开启总中断位ET0=1;/开启定时器0中断TH0=(65536-50000)/256;/给定时器0的高8位装数TL0=(65536-50000)%256;/给定时器0的低8位装数TR0=1;/允许计数器0工作IT0=0;/设外部中断0的触发方式位低电平触发EX0=1;/开启外部中断0PX0=1;/将外部中断0的优先级设位最高aa=0;/初始化定时器中断0的控制位hour=0;minu=0;sec=0;key_hour=1;/将开关控制置高电平key_minu=1;/将开关控制置高电平key=1;/j将开关控制置高电平temp_key=key;/将开关控制变量的值赋给开关暂存变量temp_hour=key_hour;/将开关控制变量的值赋给开关暂存变量temp_minu=key_minu;/将开关控制变量的值赋给开关暂存变量/折数函数voidnumber()hour_sw=hour/10;hour_gw=hour%10;minu_sw=minu/10;minu_gw=minu%10;sec_sw=sec/10;sec_gw=sec%10;/延时函数微秒级voiddelay(uintz)uintx,y;for(x=z;x0;x-)/显示函数voiddisplay()第22页number();/调用折数函数dule=1;/打开段选信号wele=1;/打开位选信号P2=0x3e;/使第一个数码管亮及数码管的位选位P0=tablehour_sw;/给数码管的P0口赋值及数码管的段选位dule=0;/关闭段选信号wele=0;/关闭为选信号delay(5);/调用延时程序5msdule=1;wele=1;P2=0x3d;P0=tablehour_gw;dule=0;wele=0;delay(5);dule=1;wele=1;P2=0x3b;P0=tableminu_sw;dule=0;wele=0;delay(5);dule=1;wele=1;P2=0x37;P0=tableminu_gw;dule=0;wele=0;delay(5);dule=1;wele=1;P2=0x2f;P0=tablesec_sw;dule=0;wele=0;delay(5);dule=1;wele=1;P2=0x1f;第23页P0=tablesec_gw;dule=0;wele=0;delay(5);/主函数voidmain()init();/调用初始化函数while(1);/死循环,等待中断/定时器中断服务函数void_TR0_()interrupt1TH0=(65536-50000)/256;/给定时器0的高8位装初值TL0=(65536-50000)%256;/给定时器0的低8位装初值/50ms产生一次中断aa+;/中断控制变量自加if(aa=20)/判断控制变量是否为20及计时达到1saa=0;/清0sec+;/秒自加1if(sec=60)/判断是否到60ssec=0;/清0minu+;/分自加1if(minu=60)/判断分是否到60minu=0;/清0hour+;/小时自加1if(hour=24)hour=0;display();/调用显示函数/外部中断0服务函数void_EX0_()interrupt0temp_minu=key_minu;/将开关控制变量的值赋给开关暂存变量temp_hour=key_hour;第24页temp_key=key;while(temp_key=0)/判断中断开关是否按下若按下执行下面的循环temp_key=key;/将开关控制变量的值赋给开关暂存变量temp_minu=key_minu;temp_hour=key_hour;display();/调用显示函数/调分钟If(temp_minu=0)/判断调时开关(分钟)是否按下delay(5);/延时5毫秒软件消除机械误差temp_minu=key_minu;/将开关控制变量的值赋给开关暂存变量if(temp_minu=0)/判断调时开关(分钟)是否真的按下display();/调用显示函数while(temp_minu=0)/松手检测temp_minu=key_minu;/如果开关一直处于按下状态,则死循环if(temp_minu=1)/判断调时开关(分钟)是否松开deplay(5);/延时5毫秒软件消除机械误差temp_minu=key_minu;/将开关控制变量的值赋给开关暂存变量if(temp_minu=1)/判断调时开关(分钟)是否真的松开minu+;/分钟自加1if(minu=60)/判断分钟是否为60minu=0;/清0hour+;/小时自加1if(hour=24)hour=0:/调小时temp_hour=key_hour;if(temp_hour=0)delay(5);temp_hour=key_hour;if(temp_hour=0)display();while(temp_hour=0)temp_hour=key_hour;if(temp_hour=1)delay(5);temp_hour=key_hour;第25页if(temp_hour=1)hour+;if(hour=24)hour=0;第四章系统调试调试是一个必不可少的环节,它将会验证你的成果,是否实现了所要完成的功能。系统调试仿真时首先要在使用Keil编译器,把所写的程序进行编译,同时在仿真器里设置生成“HEX”文件,编译无错误时还要进行Proteus仿真,查看功能是否能够实现。下面就将仿真将会用到的软件进行简单的介绍,并对仿真过程予以简介。4.1常用调试工具4.1.1keil软件Keil软件是集成调试环境,集成了编缉器、编译器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然,支持ASM(汇编)、C语言,多语言多模块源程序混合调试,在线直第26页接修改、编译、调试源程序,错误指令定位。功能很强大。用于对程序的调试和编辑。Keil软件如图4-1所示。4.1.2Proteus软件系统仿真还用到了Proteus软件,可通过仿真可以完全显示出所设计系统的功能,对于程序的调试等有很大的帮助。首先要新建一个文档是DNS型的找出需要的器件,可以使用搜索功能。接着把各个器件放到合适的位置都要放到蓝色框内。然后根据自己的设计要求连线。把所有的元件都连接好,做出完整的电路图。4.1.3系统调试系统的调试开始是把Keil编译生成的无错误后缀名为HEX的文件加载到AT89C51单片机中,方法是双击单片机弹出一个对话框,在programfile后选择要添加文件,文件要求必须是HEX文件。然后可以点击运行观察现象,当出现错误时,大多都是软件出了问题,经过不断的改进调试,步进电机控制系统设计的软件仿真能达到预期的效果。系统仿真图见第五章的整机图。图4-1keil软件界面第27页总结该数字电子钟可以完成以下功能:(1)能准确的显示023小时59分59秒;(2)具有方便的校时功能;(3)具有特定作息报时功能;在此次的数字电子钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。同时在此次设计中,发现了很多要注意的地方和需改正的错误,例如:在连接六十进制、二十四进制的进位及七进制的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了。在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的脚以及接低电平第28页的脚,因此在实际的电路连接中往往容易遗漏。在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。因此仿真图和电路连接图还是有一定区别的。附录整机电路图整机电路图如下:第29页XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/

温馨提示

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

评论

0/150

提交评论