




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AT89C51单片机电子时钟设计 学院: 专业: 学号: 学生: 目录1 电子时钟41.1 电子时钟简介41.2 电子时钟的基本特点41.3 电子时钟的原理42 单片机识的相关知识42.1单片机简介42.2 单片机的特点52.3 AT89C51单片机介绍53 设计方案的选择73.1计时方案73.2 显示方案73.3 数码管显示工作原理83.4 键盘电路设计93.5 主控模块AT89C5194 系统软件设计9附录12 摘要:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由
2、于具有上述优点,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次设计通过对它的学习、应用,以AT89C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机;电子时钟;AT89C511 电子时钟1.1 电子时钟简介本设计采用AT89C51单片机,以汇编语言为程序设计的基础,设计一个用六位数码管显示时、分、秒的时钟。现代的电子时钟是基于单片机的一种计时工具,采用
3、延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零,从而达到计时的功能,是人民日常生活不可缺少的工具。1.2 电子时钟的基本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。1.3 电子时钟的原理 该电子时钟由AT89C51,键盘,八段数码管等构成,采
4、用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。2 单片机识的相关知识2.1单片机简介单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大 部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外 存。同
5、时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的 单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。2.2 单片机的特点1.单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2.采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3.单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分
6、。 4.单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。2.3 AT89C51单片机介绍 VCC:电源。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL
7、门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄
8、存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通)
9、 P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。
10、另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。图1 AT89C51单片机3 设计方案的选择3.1计时方案 方案1:采用实时时钟芯片 现在市场上有很多
11、实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。 方案2:使用单片机内部的可编程定时器 利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。3.2 显示方案 对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。 静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但
12、占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。 LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。3.3 数码管显示工作原理 数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LE
13、D显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用
14、8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。图2 数码管3.4 键盘电路设计该设计只用了一个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键盘可以实现小时和分钟的调节以及控制是否进入省电模式。当按键按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。达到时间调节的目的。选择的多功能按键如图3
15、所示。图3 多功能控制键3.5 主控模块AT89C51AT89C51是一个8位单片机,片内ROM全部采用FLASH ROM技术,晶振时钟为12MHz。AT89C51是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1F高频滤波电容。4 系统软件设计在主程序的开始定义了一组固定单元用来存储计数的分、秒、时的存储单元。在主程序中,对不同的按键进行扫描,实现秒表,时间调整。系统总体流程图如图4所示。N
16、YNYT0中断入口通过查表方式显示数据位选值=8数码位选加1位选数值=0秒计数加1秒计数=500秒计数=0SECOND加1中断返回开始图4 总体流程图系统子程序流程图如图5所示。YYNNN子程序入口SECOND=60SECOND=0,并MINUTE加1MINUTE=60MINUTE=0,并HOUR加1显示数据处理中断返回HOUR=24Y图5 子程序流程图附录 程序清单 源程序ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;
17、跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定
18、时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS×20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1SETMM1: LJMP SETMM ;
19、转到时间调整程序SETMM1秒计时程序 INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值) MOV A,#3CH ;高8位初值修正ADDC A,TH0 MOV TH0,A ;重装初值(高8位修正值) SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71
20、H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志 CJNE A,#60H,ADDHH ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等
21、于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时 MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H MOV 75H,79H POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断 RETI
22、;中断返回闪动调时程序 ;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW MOV TL1, #0B0H ;装定时器T1定时初值 MOV TH1, #3CH DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反 JB 02H,FLASH1 ;02H位为1时显示单元"熄灭" MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H MOV 74H,78H MOV 75H,79H IN
23、TT1OUT: POP PSW ;恢复现场POP ACC RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H MOV 75H,79H AJMP INTT1OUT ;转中断退出 FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示 MOV 74H,7AH MOV 7
24、5H,7AH AJMP INTT1OUT ;转中断退出加1子程序 ADD1: MOV A,R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,R0 ;前一地址中数据放入A中低四位 ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV R0,A ;数据放入当削地址单元中 RET ;
25、子程序返回清零程序 CLR0: CLR A ;清累加器MOV R0,A ;清当前地址单元DEC R0 ;指向前一地址MOV R0,A ;前一地址单元清0RET ;子程序返回时钟调整程序 ;当调时按键按下时进入此程序SETMM: CLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电) MOV R2,#06H ;进入调时状态,赋闪烁定时初值 SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),
26、等待SETB 00H ;键释放,分调整闪烁标志置1SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4
27、循环CLOSEDIS:SETB ET0 ;省电(LED不显示)状态。开T0中断SETB TR0 ;开启T0定时器(开时钟)CLOSE: JB P3.7,CLOSE ;无按键按下,等待。LCALL DISPLAY ;有键按下,调显示子程序延时削抖JB P3.7,CLOSE ;是干扰返回CLOSE等待WAITH: JNB P3.7,WAITH ;等待键释放LJMP START1 ;返回主程序(LED数据显示亮)SETHH: CLR 00H ;分闪烁标志清除(进入调小时状态)SETHH1: JNB P3.7,SET5 ;等待键释放SETB 01H ;小时调整标志置1SET6: JB P3.7,SET
28、7 ;等待按键按下LCALL DL05S ;有键按下延时0.5秒JNB P3.7,SETOUT ;按下时间大于0.5秒退出时间调整MOV R0,#79H ;按下时间小于0.5秒加1小时操作LCALL ADD1 ;调加1子程序MOV A,R3 CLR C CJNE A,#24H,HOUU ;计时单元数据与24比较HOUU: JC SET6 ;小于24转SET6循环LCALL CLR0 ;大于或等于24时清0操作AJMP SET6 ;跳转到SET6循环SETOUT: JNB P3.7,SETOUT1 ;调时退出程序。等待键释放LCALL DISPLAY ;延时削抖JNB P3.7,SETOUT ;是抖动,返回SETOUT再等待CLR 01H ;清调小时标志CLR 00H ;清调分标志CLR 02H ;清闪烁标志CLR TR1 ;关闭定时器T1CLR ET1 ;关定时器T1中断SETB TR0 ;开启定时器T0SETB ET0 ;开定时器T0中断(计时开始)LJMP START1 ;跳回主程序SET1: LCALL DISPLAY ;键释放等待时调用显示程序(调分)AJMP SE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无线电频率管理汇报
- 采购合同模板大全
- 酒店预订服务合同范本
- 企业合同风险防范:实战技巧
- 2024潍坊市新航科技职业中等专业学校工作人员招聘考试及答案
- 2024江西赣州三江高级技工学校工作人员招聘考试及答案
- 2024河池市职业教育中心学校工作人员招聘考试及答案
- 建筑设备租赁合同协议
- 原地舒展运动课件
- 蔬菜种子购销合同书
- 吉林省吉林市2024-2025学年高三下学期3月三模试题 生物 含答案
- 2025年陕西农业发展集团有限公司(陕西省土地工程建设集团)招聘(200人)笔试参考题库附带答案详解
- 辽宁省协作校2024-2025学年度下学期高三第一次模拟考试语文+答案
- GB/T 16895.36-2024低压电气装置第 7-722 部分:特殊装置或场所的要求电动车供电
- 人音版初中音乐 九年级上册 中考一轮复习课件
- 工程结算单(样本)
- 校园小品剧本多人10人 校园多人小品剧本
- 完整欠条范本
- 巴厘岛码头工程量清单
- 数学杂志投稿地址
- 工程制图d唐福官第三章点直线平面的投影
评论
0/150
提交评论