1、 目录第1章 绪论11.1 单片机发展背景及意义11.1 单片机国内外研究概况2 1.2本论文主要研究内容4第2章 51单片机基本原理62.1 MCS-51单片机的组成原理72.2 MCS-51单片机的引脚功能72.3 中断112.4 定时器与计数器152.5本章小结17第3章 系统总体设计方案183.1 采用STC89C52为核心的单片机控制方案183.2方案图183.3 数码管183.4 硬件电路设计203.5 数码管显示电路203.6 设定时间电路设计223.7 继电器控制电源电路233.8 本章小结25第4章 软件设计264.1 定时控制软件总体设计254.2 键盘输入程序设计254.
2、3 显示子程序设计254.4中断程序设计25第5章 系统调试分析305.1 系统调试305.2 系统调试结果305.3 本章小结30结论32参考文献33致谢34附录1 软件设计程序35附录2 设计原理图40附录3 系统设计PCB图41第1章 绪论1.1单片机发展背景及意义1、 单片机与单片机系统1.2 单片机国内外研究概况(1)、单片机的产生(2)、单片机的发展第一阶段(19711974年)1第二阶段(19741978年):初级单片机阶段第三阶段(19781983年):高性能单片机阶段第四阶段(1983年):8位单片机巩固发展及16位单片机推出阶段 单片机应用领域1、在智能仪器仪表的应用2、在
3、家用电器中的应用当3、在工业控制中的应用4、在计算机网络和通信领域中的应用5、单片机在医用设备、军用领域中的应用6、单片机在汽车设备领域中的应用 单片机的生产厂家和机型1.2论文主要研究内容定时控制电源开关的主要过程是数码管显示时间倒计时,通过键盘可以修改定时时间,在倒计时时间到时,继电器闭合,连接继电器的LED亮,蜂鸣器响。时间可以设置分秒级别。由于采用3个按键来完成时间的修改,那么其中一个按键为功能选择按键键,另外两个为时间加与时间减按键。第2章 51单片机基本原理2.1 MCS-51单片机的组成原理通过内部总线连接,构成完整的微型计算机。2.1.1 80C51芯片介绍 128kB内RAM
4、; 可寻址64KB的外ROM和外RAM控制电路; 两个16位定时/计数器; 21个特许功能寄存器; 4个8位并行I/O口,共32条可编程I/O端线; 一个可编程全双工串行口; 5个中断源,可设置成2个优先级。振荡器及时序 OSC8051CPU程序存储器4KB ROM数据存储器256kB2个16位定时器/计数器64K总线扩展控制器可编程I/O可编程全双工串行口图2-1 80C51单片机功能结构框图2.1.2 8051 与 80C51 80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。8051单片机与80C51单片机从外形看是完全一样
5、的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在80C51下开发的软件也可以在8051上应用3。这两种单片机是完全可移植的。8051与80C51单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。8051系列单片机采用的是HMOS工艺:高速度、高密度;80C51系列单片机采用的是CHMOS工艺:高速度、高密度、低功耗;也就是说80C51单片机是一种低功耗单片机。此外,在80C51系列芯片中,内部程序存储器除了 ROM 型和 EPROM型之外,还有 EEPROM 型,例如 89C51
6、就是 4KB EEPROM,并且随着集成技术的提高,80C51系列片内程序存储器的容量也越来越大,目前已有 64KB 的芯片了。另外,许多80C51芯片的还具有程序存储器保密机制,以防止应用程序泄露或被复制。2.2 MCS-51单片机的引脚功能 MCS-51单片机采用40引脚的双列直插封装(DIP)方式。图2.2左边为其引脚图,右边为为其逻辑符号图。在40条引脚中,有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制引脚,3条I/O引脚2。图2-2 左边为MCS-51引脚图,右边为MCS-51单片机逻辑符号图2.2.1主电源引脚Vss和VccVcc芯片电源,正常操作时接+电源;Vss接地端。
7、2.2.2外接晶体引脚XTAL1和XTAL2XTAL1、XTAL2晶体振荡电路反相输入端和输出端。当外接晶体振荡器时,XTAL1和XTAL2分别接在外接晶体两端。当采用外部时钟方式时,XTAL1接地,XTAL2接外来振荡信号。2.2.3控制引脚RST/VPD、ALE/PROG、PSEN、EA/Vpp1、RST/Vpd(9)复位/备用电源正常工作时,RST(Reset)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。Vpd功能:在Vcc掉电情况下,该引脚可接上备用电源,由Vpd向片内供电,以保持片
8、内RAM中的数据不丢失。2、ALE/PROG(30)地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址。80C51在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。当CPU不执行访问外部数据存储器时,ALE以时钟振荡频率的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。ALE端可驱
9、动8个LSTTL门电路。PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚用于输入编程脉冲。3、PSEN(29)外ROM读选通信号。80C51读外ROM时,没个机器周期内PSEN两次有效输出。PSEN可作为外ROM芯片输出允许OE的选通信号。在读内ROM或读外RAM时,PSEN无效。外部数据存储器是靠及信号控制的。PSEN可驱动8个LSTTL门电路。4、EA/Vpp 内外ROM选择/片内EPROM编程电源EA功能:正常工作时,EA为内外ROM选择端。80C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外(80C31芯片无内ROM,全部在片外)。当EA保持高电
10、平时,先访问内ROM,但当PC(程序计数器)值超过4KB(0FFFH)时,将自动转向执行外ROM中的程序。当EA保持低电平时,则只访问外ROM,不管芯片内有否内ROM。对80C31芯片,片内无ROM,因此EA必须接地。Vpp:片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源Vpp。2.2.4输出输入引脚80C51共有4个8位并行I/O端口,共32个引脚。所有4个端口都是双向口,每个口都包含一个锁存器,即专用寄存器P0P3,一个输出驱动器和输入缓冲器。1、P0口8位双向I/O口在不并行扩展外存储器(包括并行扩展I/O口)时,P0口可用作双向I/O口。在并行扩展外存储器(包括并
11、行扩展I/O口)时,P0口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。位结构如图2.3所示。P0口能驱动8个LSTTL门。 地址/数据VCC控制锁存器DCPQQMUXV1V2P0.X引脚读锁存器写锁存器内部总线读引脚&1图2-3 P0口位结构2、P1口8位双向I/O口8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。P1口既可以作为8位并行输入输出口,又可以作为8位输入/输出端。CPU既可以对P1口进行字操作,又可以进行位操作。位结构如图2.4所示。 P1口能驱动为4个LSTTL门。VCC锁存器P1.XDCPQQP1.X引脚读锁存器写锁存器内部总线读引脚内部上拉
12、电阻图 2-4 P1口位结构3、P2口8位准双向I/O口在不并行扩展外存储器(包括并行扩展I/O口)时,P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时,P2口可用于传送高8位地址(属地址总线) ,P2口能驱动4个LSTTL门。P2口的位结构如图2.5所示,引脚上拉电阻同P1口。锁存器P2.XDCPQQ读锁存器写锁存器内部总线读引脚VCCP2.X引脚内部上拉电阻1地址控制MUX图 2-5 P2口位结构4、P3口8位准双向I/O口P3口具有多种功能。一方面与P1口一样作为一般准双向输入/输出接口,具有字节操作和位操作二种工作方式;另一方面8条输入/输出线可以独立地作为串行输
13、入/输出口和其它控制信号线。P3口驱动能力为4个LSTTL门。图 2-6 P3口位结构P3口各口线与专用功能: P3.0RXD:串行口输入端; P3.1TXD:串行口输出端; P3.2INT0:外部中断0请求输入端; P3.3INT1:外部中断1请求输入端 P3.4T0:定时/计数器0外部信号输入端; P3.5T1:定时/计数器1外部信号输入端; P3.6WR:外RAM写选通信号输出端; P3.7RD:外RAM读选通信号输出端。上述4个I/O口,各有各的用途。在不并行扩展外存储器(包括并行扩展I/O口)时, 4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O口)时,P0
14、口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端线。2.3 中断2.3.1中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生),CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务),待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断,如下图2.7。图2-7 中断流程引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B,对事
15、件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。见下图2.8。图2-8 中断系统2.3.2 8051中断系统结构80C51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。4个用于中断控制的寄存器IE、IP、TCON和SCON用于控制中断的类型、中断的开/关和各种中断源的优先级别。5个中断源有两个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序的嵌套。8051单片机中断系统的结构如图2.9所示。图2-9 中断系统结构2.3.3 中断源8051单片机的5个中断源包括:、引
16、脚输入的外部中断源,三个内部中断源(定时器T0、T1的一处中断源和串行口的发送/接受中断源)。 (1)、IT0(TCON.0)外部中断0()触发方式控制位。IT0=0时,外部中断0程控为电平触发方式;IT0=1时外部中断0为边沿触发方式。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。(2)、IT1(TCON.2)外部中断1()请求类型控制位。IT1=0时,外部中断1程控为电平触发方式;IT1=1时外部中断1为边沿触发方式。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。(3)、TF
17、0(TCON.5)片内定时/计数器T0溢出中断申请位,TF0实际上是T0中断触发器的一个输出端。T0被允许计数以后,从初值开始加1计数,当产生溢出时置TF0=1,向CPU请求中断,直到CPU响应该中断时才由硬件清0。(4)、TF1(TCON.7)片内定时/计数器T1溢出中断申请位。定时器T1被允许计数后,从初值开始加1计数,当产生溢出时置TF1=1,向CPU请求中断,直到CPU响应该中断时才由硬件清0。 (5)、RI(SCON.0)或TI(SCON.1)串行口中断请求标志位。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。2.3.4中断控制(1)、
18、中断允许控制寄存器IE特殊功能寄存器IE为中断允许寄存器,控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽(禁止),以及每个中断源是否允许中断。其格式为:表2-1 中断控制寄存器IE位76543210字节地址 A8HEAESET1EX1ET0EX0IE EX0(IE.0):外部中断0允许位;ET0(IE.1):定时/计数器T0中断允许位; EX1(IE.2):外部中断0允许位;ET1(IE.3):定时/计数器T1中断允许位;ES(IE.4):串行口中断允许位;EA (IE.7):CPU中断允许(总允许)位。(2)、中断源优先级设定寄存器IP80C51单片机有两个中断优先级,即可实现二级中
19、断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。表2-2 中断优先级位76543210字节地址 B8HPT2PSPT1PX1PT0PX0IP PX0(IP.0):外部中断0优先级设定位;PT0(IP.1):定时/计数器T0优先级设定位;PX1(IP.2):外部中断0优先级设定位;PT1(IP.3):定时/计数器T1优先级设定位;PS (IP.4):串行口优先级设定位;PT2 (IP.5) :定时/计数器T2优先级设定位。同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如表2.
20、3所示:表2-3 同优先级中断源等级序号 序号中断源中断标志优先级顺序0外部中断0IE0最高级最低级1定时器T0中断TF02外部中断1IE13定时器T1中断TF14串行口中断RI或TI2.3.5中断响应条件中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。2.4 定时器与计数器2.4.1定时器概述加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器
21、中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值4。2.4.2定时器控制字1、工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:表2-4 工作方式寄存器TMOD位76543210字节地址 89HGATEM1M0GATEM1M0TMOD各位功能如下:(1) GATE:门控位。GATE0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断
22、引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。(2) :定时/计数模式选择位。0为定时模式;=1为计数模式。(3) M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。如下表2.5所示:表2-5 定时/计数器工作方式设置表M1M0工作方式说 明00方式013位定时/计数器01方式116位定时/计数器10方式28位自动重装定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数2.4.3控制寄存器TCONTCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:表2-6
23、 控制寄存器TCON位76543210字节地址 88HTF1TR1TF0TR0TCON TOCN各位功能如下:TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
24、TR0(TCON.4):T0运行控制位,其功能与TR1类同。2.4.4初始化程序对TMOD赋值,以确定T0和T1的工作方式9。计算初值,并将其写入TH0、TL0或TH1、TL1。中断方式时,则对IE(ET0/ET1)赋值,开放中断。使TR0或TR1置位(TCON),启动定时/计数器定时或计数。2.5 本章小结本章主要介绍了本次设计需要用到的MCS-51单片机的部分基本原理。第一,单片机的概述,介绍了单片机的定义和历史;第二,以80C51为例,大致的介绍了单片机的基本组成原理;第三,介绍了单片机的40条引脚功能,特别对输入输出接口进行了详细的介绍;第四,介绍了单片机的一个重要部分:中断。首先对中
25、断进行了阐述,然后对中断系统结构和中断响应条件进行了介绍。第五,比较简单的介绍了定时器。在对单片机的基本原理介绍的基础上,接下来就是对系统总体方案的设计,以完成本次设计。第3章 系统总体设计方案3.1 采用STC89C52为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的定时控制电源开关功能,还能添加时间设定,蜂鸣器报警提示等功能。3.2方案图对于硬件部分的设计,本着简单可靠的思想。本次设计的对象是针对一个应用系统,本电子定时器能定时给电器供电或断电,其系统构图如图1所示。系统中主要用到:AT89C52单片机与晶振时钟电路;继电器;按键与LED
26、显示等。89C52单片机数码管显示时间设定电路继电器控制电路系统复位电路图3-1系统结构图3.3 数码管数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码
27、管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则
28、需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管
29、就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3.4 硬件电路设计图3-2 总体电路图图3-2 总体电路图具体的说明如下:数码管为分钟,秒计时三个按键分别为选择,计数加,计数减1 通电,默认为15秒倒计时,如果不按按键,15秒倒计时结束,继电器闭合,LED亮,蜂鸣器响2 通电,
30、按选择按键,可以选择分钟,秒计时设置,再按加,减,即可实现定时时间设置3.5数码管显示电路使用四位一体的共阳数码管,也能减少数码管与单片机接口时所占用的I/O线的数目,在数码管较多的情况下,通常采用这样方法。其原理如图图3-3 数码管显示电路四位数码管实物图如下: 图3-4 数码管实物图四位数码管,内部的4个数码管共用adp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上adp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为112脚,下图中的数字与之一一对应。图3-5
31、 引脚排列3.6 设定时间电路设计按键使用方法有很多,因为系统按键较少,所以采用独立按键。如图图3-6 键盘电路3.7 继电器控制电源电路图3-7 继电器控制电源电路继电器采用松乐继电器SRD5V系列,具体参数如下触点形式:1C(SPDT)触点负载: 3A 220V AC/30V DC阻 抗: 100m额定电流: 3A电气寿命:10万次机械寿命:1000万次线圈参数:阻值(士10%): 120 线圈功耗:0.2W 额定电压:DC 5V 吸合电压:DC 3.75V 释放电压:DC 0.5V 工作温度:-25+70 绝缘电阻:100M 线圈与触点间耐压:4000VAC/1分钟 触点与触点间耐压:7
32、50VAC/1分钟从上面的继电器线圈参数得知,继电器工作吸合电流为0.2W/5V=40mA或5V/12040mA。三极管的选择:功率PCM:大于5V*继电器电流 (5*40 mA = 0.2W)的两倍;最大集电极电流(ICM):大于继电器吸合电流的两倍以上;耐压BV(CEO):大于继电器工作电压5V,可选10V以上;直流放大倍数:取100。三极管可选:PCM(0.4W),ICM(80mA),BV (10V)三极管基极输入电流:继电器的吸合电流/放大倍数=基极电流(40mA/100 =4mA),为工作稳定,实际基极电流应为计算值的2倍以上。 基极电阻:(5V-0.7V)/基极电流=电阻值(4.7
33、V/8mA =3.3K)。 电路中各元器件的参数这里单片机IO口输出高电平触发三极管导通。经过以上的分析计算得出:三极管可用极性是NPN的9014或8050,电阻选3.3K。三极管的放大倍数要求不高,一般买的都可以,100500 (放大倍数分段可选),随便买的都可以用。电阻R1选3.3K/0.25W就可以了,保证基极为MA级电流就可以开关三极管了 。当三极管由导通变为截止时,继电器绕组感生出一个较大的自感电压。它与电源电压叠加后加到控制继电器线圈的三极管的e、c两极上,使发射结(ec)有可能被击穿。为了消除这个感生电动势的有害影响,在继电器线圈两端反向并联抑制二极管,以吸收该电动势。自感电压与
34、电源电压之和对二极管来说却是正向偏压,使二极管导通形成环流。感应的高电压就会通过回路释放掉,保证了三极管的安全。3.8 本章小结 本章介绍了此电源开关的定时控制的设计过程,主要讲述硬件电路设计,首先,介绍了系统总体方案的设计方案图,电源开关的定时控制系统的设计主要会用到单片机STC89C-52、键盘扫描模块、LED数码显示器等硬件模块,然后硬件电路设计部分对每一个模块的功能和使用进行了详细的介绍,弄清楚各部分之间的工作方式及其联系,设计出系统的总体电路图,焊接,安装,等待软件程序的输入。 第4章 软件设计4.1 定时控制软件总体设计定时控制电源开关的主要过程是数码管显示时间倒计时,通过键盘可以
35、修改定时时间,在倒计时时间到时,继电器闭合,连接继电器的LED亮,蜂鸣器响。时间可以设置分秒级别。由于采用3个按键来完成时间的修改,那么其中一个按键为功能选择按键键,另外两个为时间加与时间减按键。主程序流程图如下图。 开始 初始化 图4-1键盘中断流程图4.2 键盘输入程序设计键盘输入程序的设计,首先入栈保护,然后键盘扫描是否有键盘按下,如果有则有低电平输入,如果没有则相反,所以读取键值,检测到有在延时20ms,再检验是否有键按下,如果没有,则返回现场,有责处理按键程序的内容,然后返回现场,下面是流程图。图4-2键盘中断流程图入栈保护有键按下?调延时20ms子程序有键闭合?转各键处理子程序恢复
36、现场返回NNYY读键值键盘扫描4.3 显示子程序设计显示子程序的设计,用的是数码管显示,首先考试,掉用DispNum()函数,点亮第一个数码管,延时n毫秒,点亮第二个数码管,延时n毫秒,点亮第三个数码管,延时n毫秒,点亮第四个数码管,延时n毫秒,结束,第二个正是调用函数的流程图,开始,判断哪个数码的选通,结束,下面是两个流程图。开始X=num选通第num个数码管结束开始调用显示子函数DispNum()点亮第1个数码管点亮第2个数码管延时n毫秒点亮第4个数码管延时n毫秒延时n毫秒点亮第3个数码管延时n毫秒结束图4-3 数码管显示流程图4.4 中断程序设计此程序的中断流程图首先入栈保护,然后同步修
37、正,判断是否到了0.5秒,否的话则恢复现场,否则则LED取反,调用BCD子程序,下一步则回复现场。下面则是流程图。入栈保护中断同步修正恢复计时判断是否到0.5sLED取反调用BCD子程序恢复现场中断返回图4-4 中断流程图第5章 系统调试分析5.1系统调试为了安全,首先进行断电调试,用万用表检测系统是否有短路现象,再检查严原理是否正确。经检测,原理正确也没有短路现象 在电路板上按照原理图将控制电路部分连接,先确定电路板,及导线是否能正常使用,测量各个电阻的阻值是否符合设计的要求。测试所有晶体管和二极管的导通性。在确定所有器件正常时根据电路原理图连接,在连接完电路后,用万用表测与地相接的部分是否
38、导通,还有各部分电路的连接是否正常,在确定后连接正常后,打开电源开关。 将已编好的程序下载到单片机中,逐句调试语句,再根据实验现象调试此程序并改正,最终得到符合实验要求的程序。 本次设计的电源采用的是电池盒电源,放入四节五号电池,插头插入电路板中的插座,系统自动复位 ,数码管自动计时为15秒倒计时开始,调节三个按键以调节需要倒计时的时间,已完成系统的调试工作。5.2系统调试的结果接通电源,系统自动复位,数码管显示15秒倒计时工作,首先让其自动倒计时工作,系统15面倒计时结束后,开关自动闭合,嗡鸣器报警,二极管亮, 键盘以10秒的时间递增或递减,在调试完成后,等待倒计时,倒计时结束后,开关闭合,
39、嗡鸣器报警,二极管亮, 断电后数码管灭,再通电后系统自动复位,初始值仍以15秒的时间倒计时,嗡鸣器响,二极管亮,调试完毕。5.3 本章小结硬件和软件的调试完成后,对此实物进行现场的演示实验,检查硬件是否按照预期的要求工作,各项技术指标是否达到设计的要求。一般而言,在软件和硬件经过检测后都能正常工作的情况下,此实物的调试就能正常工作,在调试此实物时,要注意环境及电压的变化,一切正常后,此实物演示成功,一切按照计划进行。结论经过四个多月的设计时间,本次毕业设计:基于单片机的电源开关的定时控制已经基本完成了。通过这次毕业设计,我掌握了一些实践性质的设计的基本步骤:首先,明确设计任务,并且要对市场上的电源开关的定时控制要有初步了解,还要知道前人做了哪些工作,本