基于单片机数字时钟课程设计

上传人:痛*** 文档编号:135276988 上传时间:2022-08-15 格式:DOC 页数:22 大小:613.50KB
返回 下载 相关 举报
基于单片机数字时钟课程设计_第1页
第1页 / 共22页
基于单片机数字时钟课程设计_第2页
第2页 / 共22页
基于单片机数字时钟课程设计_第3页
第3页 / 共22页
点击查看更多>>
资源描述
赣南师院物理与电子信息学院数字电路课程设计报告书姓名: 班级:电子信息工程09级 学号 时间: 2011年 6 月 13 日 论文题目基于单片机数字时钟课程设计课程论文要 求设计一数字钟,实现以下功能:1具有时、分、秒计数显示功能,以24小时循环计时;2具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间,并能对计时清零;3 LED灯花样显示。设计过程(包括:设计方案、电路分析、仿真结果、软硬件结合测试步骤和结果、设计收获和体会)1、数字钟系统方案选择和论证方案一:多功能数字钟的系统采用STC89C52单片机作为控制系统的核心模型采用单片机作为主控制器。数字钟电路系统由主体电路和拓展电路两大部分组成。其中,主体电路完成数字钟的基本功能,拓展电路完成电路的拓展功能。设计使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。 本系统采用单片机STC89C52作为本设计的核心元件,利用7段共阴LED作为显示器件。接入共阴LED显示器,可显示时,分钟,秒。电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,流水灯,芯片选用STC89C52单片机。方案二:本设计的总体组成框图如图1所示:数字钟电路系统由主体电路和拓展电路两大部分组成。其中,主体电路完成数字钟的基本功能,拓展电路完成电路的拓展功能。该系统的工作原理是:震荡器产生的稳定高频脉冲信号,完成数字钟的时间基准,再经分频器输出标准秒脉冲。秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数进位,小时计数器按“12翻1”规律计数。计数器的输出经译码器送显示器。计时出现误差时可以用校时电路进行校时、校分、校秒。拓展电路必须在主体电路正常运行的情况下才能进行功能拓展。采用译码器接到分计数器和秒计数器相应的输出端,使计数器运行到差十秒整点报时,利用分频器输出的500HZ和1000HZ的信号加到音响电路中,用于模仿电台报时:每当数字钟计时快要正点时发出声响,按照4低音一高音的顺序发出间断声响,以最后一声高音的时刻为正点时刻。LED灯也依次轮流显示。在EDA实验室可以直接通过实验箱上的频率脉冲给该电路图添加所需要的频率,而不需要我们自己设计。下面通过硬件中数字钟所需要的频率来设计电路。实验中需要的是1HZ的脉冲,通过该脉冲使数字钟达到秒信号所需要的频率振荡器分频器校时电路时计数器分计数器秒计数器LED灯花样显示扫描选位信号译码驱动电路时钟显示整点报时方案一与方案二的比较:方案一和方案二都是可编程的器件为主要部分,通过语言的编程达到控制其他器件工作。方案一:用C语言和汇编语言进行程序编写。方案二:用VHDL语言进行编写。两种方法都非常好而且比用单个数字芯片制作简单,但考虑到制作的成本,我选着方案一,单片机价格便宜,市场价5元。而CPLD器件的价格在几十元以上。2、设计原理2.1单片机STC89C52简介STC89C52是一个低电压,高性能CMOS型8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器(ROM)和128B的随机存取数据存储器(RAM),器件采用STCMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC89C52为用户提供了许多高性价比应用场合,可灵活应用于各种控制领域。STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。主要特性:与MCS-52 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路引脚使用说明(图2-1):图(2-1)VCC:供电电压(一般接5伏)。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口也可作为STC89C52的一些特殊功能口,如下所示:管脚备选功能:P3.0RXD(串行输入口) P3.1 TXD(串行输出口) P3.2/INT0(外部中断0) P3.3/INT1(外部中断1) P3.4T0(记时器0外部输入) P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)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应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度2.2 时钟频率的设计原理利用单片机内部的定时器产生时钟频率,选择定时器的工作方式为方式一,所以定时时间为50ms,那么设计定时的计算如下:初始值=(65536-定时时间)*12/11059200=(65536-50000)*12/11059200从而TH0=4CH, TL0=00H;程序如下:INT_T0:PUSH PSW MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD 256INC TCNTMOVA,TCNTCJNE A,#20,RETUNE;计时1SINC SECONDMOV A,TCNT1CLR C RLC A ;带进位左移。 MOV P 3,A MOV TCNT1,A CJNE A,#0,NEXTMOV TCNT1,#0FFHNEXT:MOVTCNT,#0MOVA,SECONDCJNE A,#60,RETUNEINC MINUTE ;计时1minMOVSECOND,#0MOVA,MINUTECJNE A,#60,RETUNEINC HOURLCALL BZMOVMINUTE,#0MOVA,HOURCJNE A,#24,RETUNEMOVHOUR,#0 ;计时1hourMOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE: POP PSW RETI2.3 数码管显示电路原理单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,本系统采用共阴极。LED的结构及连接如图1-2所示图2-2LED显示原理当选用共阴极的LED时,所有发光二极管阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据为字符的段码或称为字型码。字型码与LED显示器各段的关系为D7D6D5D4D3D2D1D0dpgfedcba表1-1dp为小数点,字符0、1、2F的段码如表1-2所示字符段码(共阴)段码(共阳)字符段码(共阴)段码(共阳)03FHC0H87FH80H106HF9H96FH90H24FHA4HA77H88H366HB0HB7CH83H46DH99HC39HC6H57DH92HD5EHA1H607H82HE79H86H77FHF8HF71H8EH表1-2下图是本系统采用的共阴极LED七段数码显示器:图2-33、电路设计3.1本设计输入输出电路该系统输入电路采用的是P1口中的P1.0、P1.1、P1.2作为校正的输入分别为秒校正、分校正、时校正。(如图2-4)图2-4系统的输出电路采用的是P0口、P3和P2口分别是段码输出、循环彩灯输出和位选输出。段码输出P0口外界一个74ls373作为输出锁存保证数据输出稳定 图2-53.2系统软件设计说明该系统软件程序主要有主程序模块,定时中断服务程序,中断等待服务程序,键盘服务程序,显示子程序服务程序等六大模块组成。图2-4中按键从上往下设定为S1,S2,S3。S1与p1.0相连,S2与p1.1相连,S3与p1.2相连。当需要设定当前时间时,按一下S2键,时钟加1;按一下S1,分钟加1;按一下S1,秒钟加1。3.3 LED的编程思想本设计使用LED数码管显示,LED显示器具有耗电少、成本低、配置简单灵活、安装方便、耐震动、使用寿命长等优点,因而应用广泛。该方案控制最简单,但是只能显示有限的符号和数字,对于设计中复杂的显示功能显然不能胜任。虽然点阵液晶可以显示多种字符和图形,拥有友好的人机界面及强大的显示功能。特别适用于智能控制的可编程人性化显示。但是考虑到本设计的实际要求,使用数码管显示就足以达到要求了。七段LED由七个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三部分组成。4、程序调试 1)将程序输入到KEIL的环境下;(如图2-6所示) 2)用单步运行和断点运行方式调试程序; 3)调试T0中断服务程序,首先在记数单元39H、3AH、3BH、3CH单元中预置数,调试秒单元向分单元进位及分单元向时单元的进位,最后将T0中断服务程序统调通过; 4)在39H、3AH、3BH、3CH单元中预置数,调试显示程序; 5)调试主程序,使闹钟走时系统工作正常。图2-65、Proteus软件仿真仿真步骤第一步:用KEIL软件对程序进行编译,编译通过后,会自动生成HEX文件。第二步:在Proteus的元件库中找到STC89C52以及相应的元件,按照硬件设计中的说明把各部件连接起来组成一个时钟的硬件系统。第三步:把在伟福环境调试下生成的.HEX文件装入到STC89C52里,点击运行符号就可以使软硬件的配套设施在Proteus的环境下仿真实现。第四步:验证系统能否实现所要求的功能,并检验错误。 仿真过程中出现的错误及解决措施1)当把程序生成的.HEX文件装入到STC89C52后运行时,显示模块出现数字显示错误,但是软硬件都没有错误,经检查是它们不配套,在修改扫描显示控制字而且改变硬件布线顺序后方显示正常。2)P0口是漏极开路的并行I/O口和分时复用数据地址总线,在用作I/O口是必须接上拉电阻,否则造成电平不稳地,从而显示出乱码。由于对硬件不了解产生错误。3)在设计的初期把主程序设计成顺序结构,但是在运行的时候没有注意到这个问题,没有按照软件说明中的顺序操作。仿真结果开始仿真时,显示如图2-7所示:图2-7按一下minute按键,分钟加一。如下图2-8图2-8按一下hour按键,时钟加一。如下图2-9图2-96、protel99制作6.1原理图:6.2 PCB图:如果能制作到PCB板,那么焊接和连接都非常的简单,而且制作出的作品性能稳定,美观。7、课程设计元器件清单元器件名称类型数量价格(元)单片机STC89C5215底座DIP4010.3DIP1610.15数据锁存器74LS37311.2瓷片电容22pf20.1晶振12MHZ10.24按键开关40.1LED灯红色90.1排阻A09-471470欧10.14自锁开关单刀双掷10.18若干导线铜线若干数码管4位5461AS共阴21.99单排座1*4010.258、课程设计体会 单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程,为自己今后从事与单片机控制系统有关的工作打下了基础。虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚开始时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过几周的学习,虽然过程很艰辛,问了很多朋友,但是总算实现了定时闹钟的功能,所有的努力都很值得。这几周的大部分时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。以下是我本次单片机课程设计的几点心得与体会: 1. 在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解,知道单片机片内片外的内容及其功能。 2. 设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图。模块化的设计思想在程序设计中的作用是十分大的,它可以为你提供一个比较清晰的思路,并且很容易找到头绪,不至于在设想一个程序时感觉到无从下手。 3. 在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改进才能达到预期的目的,编写程序的时间并不是很长,主要是修改程序会花很多时间。 4. 要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。刚开始我在编写程序时,很不习惯于写注释,感觉很麻烦,而且没用,但是在修改的过程中我就遇到了较大的麻烦,以至于不得不重新的作了注释,以增加程序的易读性,从而使修改过程变得容易一些。5. 课程设计是在学单片机原理及接口技术课程综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础。 总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写设计报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,看到自己几周的小成果,感觉一切的辛苦和艰难都是值得的。9、参考文献1余发山著.单片机原理及应用技术江苏:中国矿业大学出版社. 2003年.97-1182阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19893廖常初.现场总线概述J.电工技术,1999.4康华光.数字电子技术. 北京: 高等教育出版社,20035吴金戌.8051单片机实践与应用. 北京: 清华大学出版社,20036楼然苗.51系列单片机设计实例. 北京: 北京航空航天出版社,20047黄仁欣.单片机原理及应用技术. 北京: 清华大学出版社, 20058 何立民. 单片机高级教程 第1版北京:北京航空航天大学出版社,2001 9赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,2001.3 10李广第 单片机基础 第1版北京:北京航空航天大学出版社,1999 11徐惠民、安德宁 单片微型计算机原理接口与应用 第1版 北京:北京邮电大学出版社,1996 12夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001 附1:源程序代码S_SETBIT P1.0;数字钟秒控制位M_SETBIT P1.1;分钟控制位H_SETBIT P1.2;小时控制位AlarmBIT P1.3SECONDEQU30HMINUTEEQU31HHOUREQU32HTCNTEQU34HTCNT1EQU35HORG00HSJMP STARTORG0BHLJMP INT_T0START:MOVDPTR,#TABLEMOVHOUR,#0;初始化MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0MOV TCNT1,#0FFHMOVTMOD,#11H;写控制字MOVTH0,#(65536-50000)/256;定时50msMOVTL0,#(65536-50000)MOD 256MOVIE,#8AH SETB TR0;*;判断是否有控制键按下,是哪一个键按下A1:LCALL DISPLAYJNB S_SET ,S1JNB M_SET ,S2JNB H_SET ,S3LJMP A1 S1:LCALL DELAY;去抖动JB S_SET ,A1INC SECOND;秒值加一MOV A,SECONDCJNE A, #60, J0;判断是否加到60SMOV SECOND ,#0LJMP K1S2:LCALL DELAY;去抖动JB M_SET ,A1K1:INC MINUTE;分值加一MOV A, MINUTECJNE A, #60 ,J1;判断是否加到60minMOVMINUTE ,#0LJMP K2S3:LCALL DELAY;去抖动JB H_SET,A1K2:INC HOUR;小时值加一MOVA,HOURCJNE A,#24,J2;判断是否加到24hMOVHOUR,#0MOVSECOND,#0LJMP A1;*;等待按键弹起J0:JB S_SET,A1LCALL DISPLAYSJMP J0J1: JB M_SET,A1LCALL DISPLAYSJMP J1J2:JB H_SET,A1LCALL DISPLAYSJMP J2;*定时器0终端服务程序,对秒,分钟和小时的计数INT_T0:PUSH PSW MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD 256INC TCNTMOVA,TCNTCJNE A,#20,RETUNE;计时1SINC SECONDMOV A,TCNT1CLR C RLC A ;带进位左移。 MOV P 3,A MOV TCNT1,A CJNE A,#0,NEXTMOV TCNT1,#0FFHNEXT:MOVTCNT,#0MOVA,SECONDCJNE A,#60,RETUNEINC MINUTEMOVSECOND,#0MOVA,MINUTECJNE A,#60,RETUNEINC HOURLCALL BZMOVMINUTE,#0MOVA,HOURCJNE A,#24,RETUNEMOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE: POP PSW RETI;*显示控制子程序DISPLAY:MOVA,SECOND;显示秒MOVB,#10DIV ABCLRP2.1MOVC A,A+DPTRMOVP0,ALCALL DELAYSETB P2.1MOVA,BCLRP2.0MOVC A,A+DPTRMOVP0,ALCALL DELAYSETB P2.0CLRP2.2MOVP0,#40H;显示分隔符LCALL DELAYSETB P2.2MOVA,MINUTE;显示分钟MOVB,#10DIV ABCLRP2.4MOVC A,A+DPTRMOVP0,ALCALL DELAYSETB P2.4MOVA,BCLRP2.3MOVC A,A+DPTRMOVP0,ALCALL DELAYSETB P2.3CLRP2.5MOVP0,#40H;显示分隔符LCALL DELAYSETB P2.5MOVA,HOUR;显示小时MOVB,#10DIV ABCLRP2.7MOVC A,A+DPTRMOVP0,ALCALL DELAYSETB P2.7MOVA,BCLRP2.6MOVC A,A+DPTRMOVP0,ALCALL DELAYSETB P2.6RETTABLE:DB3FH,06H,5BH,4FH,66H;显示数字09DB6DH,7DH,07H,7FH,6FHDELAY:MOVR6,#10D1:MOVR7,#25DJNZ R7,$DJNZ R6,D1RET;*喇叭响应程序BZ: MOV R1,#60 ;响应延时时间T2: MOV R2,#60T3: CLR Alarm DJNZ R2,T3SETB AlarmLCALL DISPLAYDJNZ R1,T2 CLR Alarm RET END附二:总原理图可另加附页 附: A4纸赣南师范学院2010-2011学年第二学期数字电路课程设计行政班级 : 电子信息工程09级 学号: 姓名: 课程设计题目: 基于单片机数字时钟课程设计设计要求:设计一数字钟,实现以下功能:1具有时、分、秒计数显示功能,以24小时循环计时;2具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间,并能对计时清零;3LED灯花样显示。教师评语:教师签字:年 月 日选课班级 : 电子信息工程09级 任课教师: 杨汉祥 成绩: _ _
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


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

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


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