毕业设计(论文)基于AT89S52单片机的电子表设计.doc

上传人:仙人指路1688 文档编号:3978822 上传时间:2023-03-30 格式:DOC 页数:34 大小:1.21MB
返回 下载 相关 举报
毕业设计(论文)基于AT89S52单片机的电子表设计.doc_第1页
第1页 / 共34页
毕业设计(论文)基于AT89S52单片机的电子表设计.doc_第2页
第2页 / 共34页
毕业设计(论文)基于AT89S52单片机的电子表设计.doc_第3页
第3页 / 共34页
毕业设计(论文)基于AT89S52单片机的电子表设计.doc_第4页
第4页 / 共34页
毕业设计(论文)基于AT89S52单片机的电子表设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《毕业设计(论文)基于AT89S52单片机的电子表设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89S52单片机的电子表设计.doc(34页珍藏版)》请在三一办公上搜索。

1、目 录1 功能说明及工作原理101.1 设计课题任务101.2 功能要求101.3 方案论证与选择101.4 设计方案介绍121.5 电子表的工作原理122 硬件系统的设计142.1 电源电路142.2 复位电路142.3 时钟电路152.4 AT89S52芯片介绍152.5 键盘电路162.6 显示及显示驱动电路16 2.7 原理图、PCB图及元器件布局图17 2.8 元器件清单173 软件系统的设计193.1 硬件资源的使用情况193.2 软件模块功能介绍193.3 程序流程框图203.4 程序清单264 设计总结334.1 使用说明334.2 设计结论334.3 仿真结果334.4 误差

2、分析344.5 设计体会34参考文献36致谢37附录一 电路原理图38附录二 PCB图39附录三 元器件布局图411 功能要求及工作原理XXX1.1 设计课题任务设计一个具有特定功能的电子表。该电子表上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子表从0时0分0秒开始运行,进入时钟运行状态;再次按电子表启动/调整键,则电子表进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.2 功能要求本设计所设计的电子表具有其特定的功能,首先该电子表在功能上具有一般电子表的固有功能,即能比较准确显示时间,当显示至

3、59秒时分显示自动加一;当分、秒显示至59分59秒时,小时显示自动加一;当显示至23小时59分59秒时,电子表自动变为0时0分0秒显示;当电子表上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子表启动/调整键,电子表从0时0分0秒开始运行,进入时钟运行状态并在时、分、秒之间由“.”隔开;再次按电子表启动/调整键,则电子表进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。其按键功能分别为:A键 启动/调整键B键 调整时状态C键 调整分状态D键 调整秒状态S键 控制复位键1.3 方案论证与选择该电子表电路大体由单片机、接口扩展芯

4、片、键盘显示接口电路及时钟电路和复位电路构成,在方案设计选择时大多体现在键盘显示接口电路的不同,因此我们现在主要讨论键盘显示电路不同时的方案。在单片机应用系统中,同时需要使用键盘与显示器接口时,为了节省I/O口线,常常把键盘和显示电路做在一起,构成实用的键盘、显示电路。键盘显示接口电路的设计可采用多种方法,在此有以下几种方案可供选择。1.3.1 方案一:利用AT89S52芯片I/O口构成键盘/显示接口电路因此次电子表设计系统功能单一,要用到8051芯片的I/O端口较少,所以可以直接用AT89S52芯片的P0口、P1口、P2口以及P3口来构成键盘、显示的输入输出端口。如图1所示,采用动态显示,

5、AT89S52的P0口和P2口外接由六个LED数码管(LED5LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。原理框图如图1.1所示:图1.1 方案一原理方框图1.3.2 方案二:8255扩展I/O口的键盘、显示接口8255在MCS-51单片机应用系统中广泛用于连接外部设备,如打印机、键盘、显示器,以及作为控制信息的输入、输出口。使用8255扩展的I/O口和使用8255扩展的I/O口,其状态设置及地址选择方式完全不同。原理图如图1. 2所示: 图1.2 方案二原理方框图1.3.3 方案三:采用8155芯片

6、扩展键盘 /显示器接口电路本设计利用Intel 8155芯片为AT89S52扩展并行口,通过Intel 8155外接74LS244和74LS08来驱动六个LED数码管(LED5LED0)构成的显示器和由四个按键A1、B1、C1、D1构成的键盘。Intel公司研制的8155为通用接口芯片,与8255(专用芯片)相比较,8155具有更强的功能。不仅具有两个8位的I/O端口(A口和B口)和一个6位的I/O端口(C口),而且还可以提供256B的静态RAM存储器和一个14 位的定时/计数器,它和单片机的接口非常简单。此方案对于I/O的资源比较紧张的电路合适,数据线控制线单片机经8155扩展后多了22个I

7、/O口,且这些I/O具有寄存器功能,只有新的数据才能将其替换,跟P0不同,所以还可以用来跟其它类型的芯片会传送数据。 采用该方案的优点在于此电路为普遍型、通用型电子钟电路,在电路设计等方面方便。但此方案还存在不少缺点,如耗材多、PCB布线困难、安装测试点繁多、编程比较繁琐(键盘和显示程序得重新编写)等。对于智能化应用非常广的今天,这些可以交给专用键盘显示芯片完成。原理框图如图1. 3所示:图1. 3 方案三原理框图1.3.4 最终方案选择经过上面得论证比较,我们选定设计方案一,即利用AT89S52芯片I/O口构成键盘/显示接口电路来设计电子表。1.4 设计方案介绍该电子表电路大体由单片机、接口

8、扩展芯片、键盘显示接口电路及时钟电路和复位电路构成。因此次电子表设计系统功能单一,要用到8051芯片的I/O端口较少,所以可以直接用AT89S52芯片的P0口、P1口、P2口以及P3口来构成键盘、显示的输入输出端口。如图1.1所示,采用动态显示, AT89S52的P0口和P2口外接由六个LED数码管(LED5LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。原理框图如图1.4所示: 图1.4 原理方框图1.5 电子表的工作原理电子表的运行主要是利用单片机定时/计数器的工作和中断服务的作用完成计时功能的。首先

9、时钟电路产生单片机工作时所需要的时钟信号,这是单片机能够正常工作的前提,而单片机有无定时的基础以及定多长的时间,这些还需要我们人为的确定。钟表的时钟要运行,首先要有“秒”的计时,而单片机内部是没有规定的“秒”的概念。同时它工作在不同的工作方式时,它的计数初值也是不同的。这就要我们人为首先计算出计数的初值了,这就可以实现所谓的定时了。如果单片机的定时时间到了的话,那么单片机会自动地产生中断使程序转向中断服务程序执行,中断服务程序执行完了就会返回原程序,等待下一次定时时间的到来再产生中断。在此基础上,单片机就会按照人为设定的程序执行下去。使单片机能计算其它时间量。当然,单片机如果要执行多种不同的计

10、时功能的话,还需要选择多种不同的工作方式,这样才不会使单片机产生混乱。因为不同的计时功能它的基本计时单位是不同的。我们知道,时钟的基本计时单位是秒,而秒表的基本计时单位却是毫秒了,因而我们把定时器的初始时间设计为50ms,将其乘以20便可得到我们的时间秒单位。这样还可以省下一个定时器,节省了单片机的硬件资源。将单片机内部的“时间”输出来,让我们看得到,那就得有显示电路。而要进行时间的调整,键盘部分也是必不可少的了。这就构成单片机的人机接口。2硬件系统的设计2.1 电源电路电源的稳压电路根据调整元件类型可分为电子管稳压电路、三极管稳压电路、可控硅稳压电路,集成稳压电路等;根据调整元件与向载连接方

11、法,可分为并联型和串联型;根据调整元件工作状态不同,可分为线性和开关稳压电路。该设计中采用了线性工作状态的线性集成稳压电源。此电源电路采用桥式整流电路,它三用变压器(12V)将市电220V电压转换为此整流电路所需要的12V交流底电压,然后通过桥堆D1将交流电转换成直流电,再通过滤波电路和稳压电路进行滤波稳压后由J2输出稳定的5V直流电。其电流转换流程图如图2.1所示:图2.1电流转换流程图2.2 复位电路复位是单片机的初始操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,

12、也需安装复位键以重新启动。复位电路如图2.2所示:RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即2个机器周期)以上,本设计使用频率为12MHz的晶振,所以复位信号持续时间应超过2s才能完成复位操作。复位操作有上电自动复位和按键手动复位图2.2复位电路两种方式。在本设计中采用的是按键手动复位中的电平复位。电平复位是通过使复位端经电阻与Vcc电源而实现的。2.3 时钟电路图2.3 时钟电路路时钟电路用来产生单片机工作所需要的时钟信号, 单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟号控制下严格地按时序进行工作。通过在

13、芯片的外部XTAL1和XTAL2两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡电路。时钟电路为单片机产生时钟脉冲序列,本设计中采用的晶振频率为12MHz,如图2.3所示。 2.4 AT89S52芯片介绍AT89S52 是一种低功耗、高性能的CDMOS 8位单片机。它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和89S52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。AT89S52提供了8K字节Flash ,256字节RAM,32线

14、I/O口,3个16位定时器/计数器,6向量两极中断,一个双工串行口,片内根据振荡器和始终电路等标准功能。此外,AT89C52设有静态逻辑,并支持软件选择的两种节电运行方式、空闲方式使CPU停止工作,而允许RAM、定时器/计数器、串行口和中断系统继续工作。掉电方式下,片内振荡器停止工作,由于之中被冻结,切能都停止,只有片内RAM的内容被保存,直到硬件复位才恢复正常工作。图2.4 AT89S52芯片配置(1)AT89S52的结构框图AT89S52结构框图如图2.4所示:(2) AT89S52单片机的特点与MCS-51产品相兼容;具有8KB可改写的Flash 内部;程序存储器,可写/擦1000次;全

15、静态操作:0HZ-24MHZ;三级程序存储器加密;256字节内部PAM;32根可编程I/O口;3个16位定时器/计数器; 图3.3.13 AT898个中断源;可编程中串行口;低功耗空闲和掉电方式。(3) 引脚信号介绍AT89S52单片机为40引脚芯片如图2.4所示:P00P07 P0口8位双向口线P10P17 P0口8位双向口线P20P27 P0口8位双向口线P30P37 P0口8位双向口线2.5 键盘电路 在单片机控制电路中,可把单片机使用的键盘分为独立式和矩阵式两种。独立式实际上就是一组独立的按键,这些按键可直接与单片机的I/O口连接,即每个按键独占一条口线,这种接法简单。矩阵式键盘也称行

16、列式键盘,因为键的数目较多,所以键按行列组成矩阵。本设计中键盘数目较少,且为安装方便,因此在本设计中采用独立式接法,即A、B、C、D键分别接了P1口的P1.0P1.3。如图2.5所示:图2.5 键盘控制电路以上这些内容通常是以软硬件结合的方式来完成的,即在软件的配合下由接口电路来完成。但具体哪些由硬件哪些由软件完成,要看接口电路的情况。总的原则是,硬件复杂软件就简单,硬件简单软件就得复杂一些。2.6 显示及显示驱动电路由于七段数码显示器在显示字形代码时需要有足够的功率,所以需在显示器前加显示驱动器,以提高其输出功率,满足显示器的需求。在本设计中,我采用三极管(NPN型)作为显示电路的8路正向驱

17、动器。 LED显示器俗称数码管,在其内部是由8个发光二极管加限流电阻组成,其连接方式有共阴和共阳两种,而在本设计中采用的是共阳极接法,公共端接+5V电源,在某一段上加低电平,该段就会亮。在本次设计中,为了使硬件电路更简单化,我们采用四位一体的LED,显示原理与单个LED的显示原理完全相同。但在它的内部把四个数码管的段控端对应的连在了一起与单个的数码管相比其外部电路连接更加简单,故它只有8个段控端和4个位控端, 4个位控端分别对四个数码管进行控制。2.7 原理图、PCB图及元器件布局图2.7.1 电路原理图电路原理图见附录一所示。2.7.2 电路PCB图PCB图见附录二所示。2.7.3 元器件布

18、局图元器件布局图见附录三所示。2.8 元器件清单表2.1电子钟元器件清单名称规格数量电阻2001电阻2208电阻1K2电阻6.2K9电阻4.7K4电阻4.2K2排阻1K-81电解电容22F1陶瓷电容33pF2电解电容2200F1晶振12MHz1单片机AT89S5219口插座CON918口插座CON842口插座CON21下载插座DB251按键开关SW-PB2按钮SW SPST4三极管NPN9四位一体共阳七段数码显示器HS-3461AS12发光二极管普通发光二极管3二极管普通二极管1蜂鸣器13 软件系统的设计3.1 硬件资源使用说明 采用定时/计数器T0 P1.0P1.3为键盘输入端 P0口用作地

19、址/数据总线 P2口用作地址/数据总线 P3口用做第二功能 采用了定时/计数器T0中断既在AT89S52的P0口和P2口外接由八个LED数码管(LED7LED0)构成的显示器,用P1口作LED的段码输出口(P0.0P0.7对应于LED的adp),P0口作LED的位控输出线(P1.7P1.0对应于LED的18),其中在P2的串行口外接8个三极管作为显示驱动,显示为八个数码管(LED0LED7)进行动态显示。P1口外接四个按键A、B、C、D(对应于P1.0P1.3)用于调整显示接口电路。如下表3.1所示:表3.1 RAM单元分配表地址功能初始化值30H 中断次数存放单元00H78H7FH显示缓冲区

20、00H40H47H记时单元00H3.2 软件模块功能介绍在定时器T0中选择了工作方式1,定时时间为50ms,晶振频率为12MHz,所以定时初值根据(216-X)*1/12*10-6*12=0.5s求解得X=15536D=0011110010110000B所以TH0=3CH,TL0=0B0H.主程序模块的主要任务是程序的初始化及复位后显示P.,以及当A键按下并松开后开始计时。其中在时间显示的过程中判断是否有A键按下,如果有则去执行相应的程序段。显示模块包括送缓冲区模块,BCD码转换和送显示等,通过这些模块完成了显示的功能,并能按照我们所熟悉的时钟时间进行显示。定时器T0中断模块的功能主要是完成计

21、时,每50ms执行中断程序一次。在次模块内完成了秒到分,分到时的进位。校时程序的功能是完成校时。当在主程序中判断有A键按下时,就会跳转到校时子程序,校时时先关闭了定时器,然后通过键扫子程序来达到我们控制时间显示的目的。3.3 程序流程框图图3.1主程序流程框图3.图3.2中断服务程序流程图 图3.3 校时子程序流程框图图3.4 B键功能程序流程框图图3.5 C键功能才程序流程框图图3.6 D键功能程序流程框图 图3.7 加一子程序流程图3.4 程序清单数字电子钟源程序如下:SECGE EQU 40H ;秒个位存储单元SECSH EQU 41H ;秒十位存储单元MINGE EQU 43H ;分个

22、位存储单元MINSH EQU 44H ;分十位存储单元HOURGE EQU 46H ;时个位存储单元HOURSH EQU 47H ;时十位存储单元ORG 0000H ;起始地址AJMP MAINORG 000BH ;定时器中断人口地址LJMP PINT0-主程序-ORG 0030HMAIN: MOV SP, #50H ;设置堆栈地址 MOV TMOD, #01H ;设置定时器0工作方式1 MOV IE, #82H MOV 30H, #20 ;设置循环次数 MOV TH0, #0B0H ;对定时置初始值 MOV TL0, #3CH MOV R0, #SECGE ;将SECGE送给R0 MOV R

23、7, #08HTTTT: MOV R0, #0AH ;显示P.程序 INC R0 DJNZ R7, TTTTTM0: LCALL DISP LCALL DIR JB P1.0, TM0 ;判A键是否按下 LCALL DISP LCALL DIR JB P1.0, TM0 ;A键没有按下,则显示P. TM1: MOV R0, #SECGE ;A键按下 MOV R7, #08HTTT1: MOV R0, #00H ;清显示缓冲区 INC R0 DJNZ R7, TTT1TT1: LCALL DISP LCALL DIRJNB P1.0, TT1 ;A键按下后松开开计时TM4: SETB TR0 ;

24、打开定时器TM: LCALL DISP ;调数据传送子程序 LCALL DIR ;调显示TM2: JB P1.0, TM ;判A键是否按下,没键按下,调续显示 LCALL DISP LCALL DIR JB P1.0, TMTT: CLR TR0 ;A键第二次按下,关定时TM3: LCALL DISP LCALL DIRJNB P1.0, TM3 ;调键扫判A键是否第二次按下 LCALL KEY ;调处理功能程序 SJMP TM4 ;A键按下,启动定时-显示程序-DIR: MOV 7AH, #0BH MOV 7DH, #0BH MOV R4, #08H MOV R0, #78H ;显示数据缓冲

25、区首址送R0 MOV R3, #80H ;使显示器最右边位亮 MOV A, RLD0: MOV P0, A ;将位控送至P0 MOV A, R0 ;送扫描值 MOV DPTR, #DSE MOVC A, A+DPTR ;取字型 MOV P2, A ;将数据送至段控口 ACALL DL1 ;调延时1MS程序 INC R0 MOV A, R3 RR A ;未扫描,则扫描码左移一位 MOV R3, A DJNZ R4, LD0 ;是否扫描到第8个显示器LD1: RETDSE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,0CH,0BFH,0F

26、FH-延时1MS程序-DL1: MOV R7, #19H ;延时1MS程序DL: MOV R6, #14HDL6: DJNZ R6, DL6 DJNZ R7, DL RET-显示缓冲存入程序-DISP: MOV R0, #78H ;数据传送程序 MOV R0, SECGE ;将秒个位送入79H单元 INC R0 MOV R0, SECSH ;将秒十位送人7AH单元 INC R0 INC R0 MOV R0, MINGE ;将分个位送人7BH单元 INC R0 MOV R0, MINSH ;将分十位送人7CH单元 INC R0 INC R0 MOV R0, HOURGE ;将时个位送人7DH单元

27、 INC R0 MOV R0, HOURSH ;将时十位送人7EH单元 RET-加一程序- DAAD1: MOV A, R0 ;加一子程序 DEC R0 ;得低位地址 SWAP A ORL A, R0 ADD A, #01H DA A ;十进制调整 MOV R2, A ;和送R2保存 ANL A, #0FH ;屏蔽高4位 MOV R0, MOV A, R2 INC R0 ANL A, #0F0H ;屏蔽低4位 SWAP A MOV R0, A RET-定时器中断程序-PINT0: PUSH PSW ;现场保护 PUSH ACC MOV TH0, #0B0H ;重新置初始值 MOV TL0, #

28、3CH MOV A, 30H DEC A ;循环次数减1 MOV 30H, A JNZ RET0 ;判是否满20次 MOV 30H, #20 ;置循环次数 MOV R0, #SECSH ;秒显示缓冲单元地址 LCALL DAAD1 ;调加1程序 MOV A, R2 CJNE A, #60H, RET0 ;判是否满60不到则返回 LCALL CLR1 ;满60,则清零 MOV R0, #MINSH LCALL DAAD1 ;调加1程序 MOV A, R2SETB P1.6 CJNE A, #60H, RET0 ;判断是否满60 CLR P1.6 LCALL CLR1 MOV R0, #HOURS

29、H LCALL DAAD1 ;调加1程序 MOV A, R2 CJNE A, #24H, RET0 ;判断是否满24 LCALL CLR1RET0: POP ACC ;现场保护 POP PSW RETI-清零程序-ORG 02B0HCLR1: CLR A ;清缓冲单元子程序 MOV R0, A ;十位缓冲单元清零 DEC R0 MOV R0, A ;个位缓冲单元清零 RET-校时程序- ORG 0300HKEY: LCALL DISP LCALL DIR JB P1.0, K1 LCALL DISP LCALL DIR JB P1.0, K1 ;是否A键按下K0: LCALL DIR JNB

30、P1.0, K0AJMP FHK1: LCALL DISP LCALL DIR JB P1.1, K2 ;是否B键按下LCALL DISP LCALL DIRJB P1.1, K2AJMP KEYBK2: LCALL DISP LCALL DIR JB P1.2, K3 ;是否C键按下LCALL DIS LCALL DIRJB P1.2, K3AJMP KEYCK3: LCALL DISP LCALL DIR JB P1.3, KEY ;是否D键按LCALL DISP LCALL DIRJB P1.3, KEYAJMP KEYDFH: RET ;无键按下返回 -B键功能程序-KEYB: LCALL DY1 LCALL DISP LCALL DIR ;B键功能程序 LCALL DY1LCALL DY1TB2: MOV R0, #HOURSH LCALL DAAD1 ;调加1子程序 MOV A, R2 CJNE A, #24H, BH ;判是否满24 LCALL CLR1 ;满24清零BH: LJMP KEY ;转键处理程序-C键功能程序-KEYC: LCALL DY1 LCALL DISP LCALL DIR ;C键功能程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号