《毕业设计(论文)基于AT89S52单片机的数字钟设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89S52单片机的数字钟设计.doc(28页珍藏版)》请在三一办公上搜索。
1、目 录摘 要1Abstact第1章 绪 论1.1 电子钟的发展史41.2 设计的目的与意义41.3 设计的基本思路与主要内容5第2章 时钟系统的整体设计62.1系统功能要求62.2 整体方案6第3章 硬件设计与分析83.1 硬件设计原理83.2各单元电路介绍83.2.1 AT89S52单片机介绍83.2.2单片机最小应用系统83.2.3显示电路93.2.4 键盘及其接口93.3 系统原理图10第4章 软件设计124.1 程序流程图124.2 程序清单13第5章 调试与运行错误!未定义书签。5.1 电路仿真错误!未定义书签。5.2 调试和运行错误!未定义书签。第6章 结 论26致 谢27参考文献
2、28基于AT89S52单片机的数字钟设计作 者 指导老师 摘要:近些年,人们对数字钟的要求越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,如电子闹钟、数字闹钟等。单片机在多功能数字钟中的应用已是非常普遍,人们对数字钟的功能及工作顺序都非常熟悉,但是却很少知道他的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时,实现数字钟表的各种功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以定时、校时。输出设备显示器可以为液晶显示器或数码管。本次做的数字钟是以单片机(AT89S52)为核心,结合相关的元器件(共阴极
3、LED数码显示器、8路同相三态双向总线收发器74LS245 / 6非门反相器74LS04等),再配以相应的软件,达到制作简易数字钟的目的,其硬件部分难点在于元器件的选择、布局及焊接。P0口要直接驱动8位LED是不够的,我们通过两片74LS245对功率进行放大,如果没有,LED管将不能正常显示。关键词:单片机 AT89S52 共阴极LED数码显示器Based on the digital clock AT89S52 SCM designAuthor linzhangbingGuidance teacher huyonggangAbstract: in recent years, people o
4、n a digital clock and taller to the requirement of the clock, the traditional already cannot satisfy peoples needs. Multi-function digital clock no matter in style in performance or have undergone a qualitative change, such as electronic alarm clock, digital alarm clock, etc. Microcomputer in the ap
5、plication of multi-function digital clock already are very common, people on a digital clock function and working order are very familiar with, but few know his internal structure and working principle. By single chip microcomputer as a digital clock core controller can through its clock signal timi
6、ng, realizing the functions of digital clock, its time data SCM outputs, using monitors displayed. Through the keyboard can timing, school. Output device for LCD monitors can or digital tube. This do a digital clock is AT89S52 SCM () as the core, combining relevant components (total LED digital disp
7、lay, cathode in three states with eight road bidirectional bus transceiver 74LS245/6 74LS04 sr inverter, etc), match again with the corresponding software, achieve the purpose of simple digital clock made its hardware parts, the difficulty of the components selection, layout and welding.P0 mouth sha
8、ll direct drive eight LED is not enough, we 74LS245 by two of power amplifier, if not, LED tube cant normal display. Keywords: microcontroller AT89S52 LED digital display of the cathode 第1章 绪 论1.1 数字时钟的发展史 电子钟有着很长的历史,从民国19年的电钟,研制始於60年代中期的国内电晶体、半导体管钟,到研制始於70年代末的石英电子钟,再到今天我们所用的智能电子钟。以前的电子钟存在着很多缺点,其外观体
9、积庞大,在功能上有死摆、走时时间不长、走时精确度不高等缺点。如今无论是外观,还是在功能上,电子钟都有了很大的改进。 虽然世界绝大多数钟表都是中国制造,但钟表对于国内市场来说只是个小行业,2003年总盘子不过才100多亿,但不是没有前景。近年来,市场在急剧膨胀。根据国外的统计数据显示,发达国家人均一生拥有手表23块,发展中国家12块,而目前中国的城镇人口人均拥有量不多于6块,空间很大。比如彩电一般是一个家庭一台,手表则是每人一块,但从销售量来看,光TCL一家公司两个月的彩电销量可以接近300万台,而我们手表每年总共才卖200多万只。所以绝对不是市场潜力不够的问题,而是我们应该如何去做的问题。1.
10、2 设计的目的与意义人类的生活包括:工作、学习、休息以及参与社会的多种实践活动,环环有条理,更加丰富多彩。应该说时钟的计时功能与人类的各种行为和活动有着密切的联系,于是时钟的作用便体现出来,生活中有许多人,因为只顾工作而忘记时间,从而耽误了重要的安排或者计划,造成不可挽回的损失,使之后悔莫及。我们要养成良好的时间观念,就需要电子钟时刻提醒我们。因此,电子钟已成为人们日常生活中必不可少,它的应用非常广泛,应用于家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。现在投入生产的大多是智能时钟,它的功能很全面,但价格有点昂贵,大多数学生或者经济条件较差的人,想要
11、拥有它,都有点困难。因此,在这里设计一个较简单的电子钟,它能完成计时和校时的功能。这个时钟系统很简单,投入生产的成本很低,因此,它的价格比较便宜,对于学生很实用。1.3 设计的基本思路与主要内容设计一个电子产品,首先了解它能实现的功能,时钟系统最基本的功能就是实现计时,在这里设计的数字电子时钟,它能实现计时和校时的功能,给电子钟加上电自动计时,设计一个按键对时钟进行复位和三个按键对时间进行调整。 硬件设计很简单,主要包括:单片机主控电路、按键控制电路、驱动显示电路、蜂鸣器电路,以及LED显示器五个部分。单片机选用AT89S52芯片,它拥有灵巧的8 位CPU 和在系统可编程Flash。由于只用了
12、四个按键,所以采用独立式按键使设计更简单。显示时、分、秒,采用6位的数码管,用常用的74LS245来驱动LED数码管显示字符。 简易数字时钟可实现校时和整点报时功能,还有闹钟功能,该软件采用汇编语言来实现,主要包括主程序、键输入程序、显示程序、定时程序和中断程序等软件模块。把原程序加入原理图,做出电子钟的仿真,以秒计数并显示时、分、秒。其中秒和分为60进制,小时为24进制计数。可通过按键实现时钟复位和分、秒、时的校正。 第2章 简易数字时钟系统的整体设计2.1系统功能要求 以单片机技术为核心,充分应用各种外围电路元器件,设计一个通过显示器显示时间(时、分、秒)的电子钟。要求:1、上电时,时、分
13、、秒显示为00时、00分、00秒,并以秒为单位开始计时;2、24小时计时功能;3、整点报时功能;4、闹钟功能。5、小时/分钟调整功能。6、省电模式功能。2.2 整体方案 电子钟的电路图主要由单片机(AT89S52)主控电路、按键控制电路、驱动显示电路、蜂鸣器电路,以及LED显示器五个部分组成,它主要实现时钟的显示,以及对时、分、秒进行调整,即实现调时的功能。其数字钟系统整体结构如图2-1所示。图2-1 基于AT89S52单片机数字钟系统整体框图(1)显示方案方案一:静态显示就是当CPU将要显示的字或字段码送到输出口,显示器就可以显示出所要显示的字符,如果CPU不去改写它,它将一直保持下去;静态
14、显示硬件开销大,电路复杂,信息刷新速度慢。方案二:动态显示则是一位一位地轮流点亮显示器地各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。动态显示硬件连接简单,信息刷新速度快。由于本次设计是对时间进行显示,如采用静态显示,则所占用的I/O口较多,电路较复杂,所以在此选择的是方案二,采用动态显示。(2)键盘方案方案一:独立式键盘。独立式键盘的各个按键相互独立,每个按键独立地与一根数据输入线(单片机并行接口或其他芯片的并行接口)连接。独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根接口线,在按键数量不多时,接口线占用多。所以,独立式按键常用于
15、按键数量不多的场合。方案二:矩阵式键盘。矩阵式键盘采用的是行列式结构,按键设置在行列的交点上.(当接口线数量为8时,可以将4根接口线定义为行线,另4根接口线定义为列线,形成4*4键盘,可以配置16个按键。)由于本设计只用了四个按键,不需要采用矩阵式键盘,所以选用第一种方案,采用独立式键盘。(3)计时方案采用软件控制:利用单片机内部的定时/计数器进行定时,配合软件定时实现时、分、秒的计时。该方案能够使设计者,在设计的过程中容易实现,且节省硬件成本,因此本系统将采用软件方法实现计时。第3章 硬件设计与分析3.1 硬件设计原理 时钟电路的核心是AT89S52单片机,AT89S52 具有以下标准功能:
16、8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止.系统配备6位LED数码管显示和4个独立式按键,用P1口作为键盘接口电路,P0口和P2口作为段码和位码输出口,并在字段码输出口接74LS245芯
17、片,用该芯片来驱动LED数码管显示。利用P1.0、P1.1、P1.2和P1.3作为功能按键输入口。3.2各单元电路介绍3.2.1 AT89S52单片机介绍 AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单
18、片机一切工作停止,直到下一个中断或硬件复位为止。3.2.2 单片机最小应用系统时钟电路和复位电路是单片机最小应用系统中必不可少的。单片机时钟电路图,如图3-1所示:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。图3-1 单片机时钟电路图复位是使单片机或系统中的其他部件处于某种确定的初始状态。单片机的工作就是从复位开始的,当在单片机的RST引脚引入高电平并保持2个机器周
19、期时,单片机内部就执复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。3.2.3显示电路显示器是单片机应用系统常用的设备,包括LED、LCD等。LED显示器由若干个发光二极管组成。七段LED通常构成字型“8”,还有一个发光二极管用来显示小数点。每段LED分别引出一个电极,电极的名为a、b、c、d、e、d、g、dp,其中dp是小数点段的引出电极。当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的二极管导通,就能显示出对应字符。其中,运用到了74LS245芯片, 74LS245具有双向三态功能,既可以输出,也可以输入数据。3.2.4 键盘及其接口键盘是由若干个按键组成的,它是
20、单片机最简单的输入设备。通过键盘输入数据或命令,就可实现简单的人机对话。一、按键的抖动现象按键就是一个简单的开关。当按键按下时,相当于开关闭合;当按键松开时,相当于开关断开。按键在闭合和断开时,触点会存在抖动现象。按键抖动时间一般为5ms10ms,抖动可能造成一次按键的多次处理问题。应采取措施消除抖动的影响。消除的方法很多,本设计采用软件延时的方法来消除抖动。当单片机检测到有按键按下时先定时,然后再检测按键的状态,若仍是闭合状态则认为真的有键按下。当检测到按键释放时,亦需要做同样的处理。二、按键电路 独立式键盘的各个按键相互独立,每个按键独立地与一根数据输入线(单片机并行接口或其他芯片的并行接
21、口)连接。独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根接口线,在按键数量不多时,接口线占用多。所以,独立式按键常用于按键数量不多的场合。3.3 系统原理图 AT89S52的P1口接入四个按键,对时、分、秒进行调整。P0口输出字段码,控制要显示的字符,外接74LS245芯片,驱动LED显示。P2口输出字位码,去控制要显示的位,其原理图如图3-2所示。图3-2 基于AT89S52单片机数字钟电路原理图基于单片机数字钟电路原理图如3-2所示。按下P1.0口按键,若按下时间小于1s,则进入省电状态;否则进入调分状态,等待操作,此时计时器停止走动。当再按下P1.0口按键时,若按下时间小于0.
22、5s,则时间加1分钟;若按下时间大于0.5s,则进入小时调整状态。按下P1.1口按键时,可进行减1调整。在小时调整状态下,当按键按下的时间大于0.5s时,退出时间调整状态,时钟从0s开始计时。在正常时钟状态下,若按下P1.1口按键,则进行小时/秒显示功能的转换,秒表中断计时程序启动,显示地址改为60H,LED将显示秒表计时单元60-65H中的数据。按下P1.2口的按键开关,可实现秒表清0、秒表启动、秒表暂停功能;当按下P1.1口按键时,关闭T1秒表中断计时,显示首址又改为70H,恢复正常时间的显示功能。第4章 软件设计4.1 程序流程图(1)主程序流程如图4-1所示,其中初始化加载制作者的年月
23、日,制作者的专业、学年、学号的数据。图4-1 主程序流程图(2)秒计时程序。秒计时由定时器T0完成,其流程图如图4-2所示。(3)秒表、计时指示程序。秒表、调时由定时器T1完成,其程序流程图如图4-3所示。 图4-2 秒计时程序流程图 图4-3 秒表、调时指示程序流程图 4.2 程序清单 DISBEG EQU 30H CALB EQU P1.7 TIMCON EQU 2FH ORG0000H LJMP MAIN ORG 0003H RETI ORG000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI TAB: D
24、B 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH I_TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H STAB: DB 0AH,0AH,0AH,0AH,0AH,0AH,07H,06H,0CH,03H,0CH,06H,00H,0DH,0AH,0AH DB 04H,01H,0CH,00H,01H,0CH,08H,00H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH DLY1M: MOVR6,#14H DL_LOOP:
25、 MOV R7,#19H DL_LOOP1: DJNZ R7,DL_LOOP1 DJNZ R6,DL_LOOP RET DLY20M:CLR CALB LCALL D_II_PLAY LCALLD_II_PLAY LCALLD_II_PLAY SETB CALB RET DL_LOOPS:LCALL DL05S LCALL DL05S RET DL05S: MOV R3,#20H DL05S1: LCALL D_II_PLAY DJNZ R3,DL05S1 RET CTIME: MOV A,#10H MOV B,79H MUL AB ADD A,78H MOV TIMCON,A CLOOP:
26、LCALL DLY20M LCALL DL_LOOPS LCALL DL_LOOPS LCALL DL_LOOPS DJNZ TIMCON,CLOOP CLR 08H AJMPMLOOP1 MAIN: LCALL ST MOV R0,#00H MOV R7,#80H MLOOP: MOV R0,#00H INC R0 DJNZ R7,MLOOP MOV 20H,#00H MOV 7AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB TR0 MOV R4
27、,#14H MOV DISBEG,#70H MLOOP1: LCALL D_II_PLAY JNB P1.0,T_SETSC JNB P1.1,DLY5 JNB P1.2,FUNBT JNB P1.3,TSET JB 08H, CTIME AJMP MLOOP1 FUNBT: LJMP DLY6 TSET: LCALL DLY20M JB P1.3,MLOOP1 ; TS_LOOP: JNB P1.3,TS_LOOP JB 05H,CLRBELL MOV DISBEG,#50H MOV 50H,#0CH MOV 51H,#0AH MINCHG: SETB EA LCALL D_II_PLAY
28、JNB P1.2,DLY1 JNB P1.0,DLY3 JNB P1.3,DLY AJMPMINCHG CLRBELL: CLR 05H CLR CALB AJMP MLOOP1 DLY: LCALL DLY20M JB P1.3, MINCHG LJMP DLY8 T_SETSC: LJMP R_SETTIM DLY1: LCALL DLY20M JB P1.2, MINCHG DLY2: LCALL D_II_PLAY JNB P1.2, DLY2 CLR EA MOV R0,#53H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,ADD_M ADD_M:
29、JC MINCHG ACALLCLR_H AJMP MINCHG DLY3 : LCALL DLY20M JB P1.0, MINCHG DLY4: LCALL D_II_PLAY JNB P1.0, DLY4 CLR EA MOV R0,#53H LCALL SUB_M LJMPMINCHG DLY5: LCALL DLY20M JB P1.1,T_MLOOP1 JNB P1.1,$ CPL 03H JNB 03H,DIS_SET MOV DISBEG,#60H MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H
30、MOV 65H,#00H MOV TL1,#0F0H MOV TH1,#0D8H SETB TR1 SETB ET1 T_MLOOP1:LJMP MLOOP1 DIS_SET:MOV DISBEG,#70H CLR ET1 CLR TR1 T_MLOOP11:LJMP MLOOP1 DLY6: LCALL DLY20M JB P1.2,T_MLOOP11 T_EST11: JNB P1.2,T_EST11 CLR ET1 CLR TR1 T_EST22: JNB P1.1,DLY5 JB P1.2,T_EST21 LCALL DLY20M JB P1.2,T_EST22 T_EST55: JN
31、B P1.2,T_EST51 MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H T_EST33: JNB P1.1,DLY5 JB P1.2,T_EST31 LCALL DLY20M JB P1.2,T_EST33 T_EST44: JNB P1.2,T_EST41 SETB ET1 SETB TR1 AJMP MLOOP1 T_EST411: LCALL D_II_PLAY AJMP T_EST11 T_EST21: LCALL D_II_PLAY AJMP T_EST22 T_EST3
32、1: LCALL D_II_PLAY AJMP T_EST33 T_EST41: LCALL D_II_PLAY AJMP T_EST44 T_EST51: LCALL D_II_PLAY AJMP T_EST55 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A,#0B7H ADD A,TL0 MOV TL0,A MOV A,#3CH ADDC A,TH0 MOV TH0,A SETB TR0 DJNZ R4, I_INT0 A_DDS: MOVR4,#14H CPL 07H MOV R0,#71H ACALLADD_1 MOV A,R3 CLR
33、C CJNE A,#60H,A_DDM A_DDM: JC I_INT0 ACALLCLR_H MOVR0,#77H ACALLADD_1 MOV A,R3 CLR C CJNE A,#60H,A_DDH A_DDH: JC I_INT0 ACALL CLR_H LCALL DLY20M SETB 08H MOVR0,#79H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#24H,RSTART RSTART: JC I_INT0 ACALLCLR_H I_INT0: MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H LCAL
34、LBELL POP PSW POP ACC SETB ET0 RETI INTT1: PUSH ACC PUSH PSW JB 03H, R_ADDS MOV TL1, #0B0H MOV TH1, #3CH DJNZ R2,I_INT1 MOV R2,#06H CPL 02H JB 02H,FLASH0 MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H I_INT1: POP PSW POP ACC RETI FLASH0: JB 01H,FLASH1 MOV 72H,7AH MOV 73H,7AH MOV 74H,78H MOV 75H,79H
35、 AJMP I_INT1 FLASH1: MOV 72H,76H MOV 73H,77H MOV 74H,7AH MOV 75H,7AH AJMP I_INT1 R_ADDS : CLR TR1 MOV A,#0F7H ADD A,TL1 MOV TL1,A MOV A,#0D8H ADDC A,TH1 MOV TH1,A SETB TR1 MOV R0,#61H ACALL ADD_1 CLR C MOV A,R3 JZ R_ADDM AJMP I_INT01 R_ADDM: ACALL CLR_H MOVR0,#63H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#
36、60H,R_ADDH R_ADDH: JC I_INT01 LCALL CLR_H MOVR0,#65H ACALL ADD_1 I_INT01:POP PSW POP ACC RETI ADD_1: MOVA,R0 DECR0 SWAP A ORL A,R0 ADDA,#01H DA A MOV R3,A ANL A,#0FH MOV R0,A MOVA,R3 INC R0 SWAPA ANL A,#0FH MOVR0,A RET ;SUB_M:MOVA,R0 DECR0 SWAP A ORL A,R0 JZ SUB_M1 DECA SUB_M11: MOV 3,A ANL A,#0FH CLR C SUBB