作息时间控制器机电硬件与软件设计_第1页
作息时间控制器机电硬件与软件设计_第2页
作息时间控制器机电硬件与软件设计_第3页
作息时间控制器机电硬件与软件设计_第4页
作息时间控制器机电硬件与软件设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目目 录录 0 1 1 5 6 7 摘要摘要 学校时间方面,由于时间多,时间乱等原因,不得不去改善其时间方面的 设备。单片机作息时间控制实现了对时间控制的智能化,摆脱了传统由人来控 制时间长短的不便,是现代学校必不可少的设备。在整个设计中,我们主要用 的是单片机的自动控制原理,包括硬件和软件。在硬件部分,包括继电器,存 储器和显示器接口芯片;软件部分,主要是主程序设计。软硬件结合在一起, 先调试子程序,然后逐级叠加调试,最后系统调试通过。 在本论文中我是利用单片机把自动复位电路,显示电路,电源电路,继电 器电路,电铃电路连接起来,再通过单片机的编程实现设计要求。单片机作息 时间控制系统是利用定时器计时处理来做秒计数,当所设置的时间到了,则发 出一阵声响,启动继电器,由继电器可以控制放音机开启或关闭。时,分,秒 数据是存在变量内并写入七段显示器的缓冲区内,由显示器扫描程序中定时扫 描而显示出时间。 关键词:关键词:单片机;定时;显示 1 1 概述概述 科技的进步需要技术不断的提升。一块大而复杂的模拟电路花费了您巨大 的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单 片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌 握了单片机技术后,不管在您今后开发或是工作上, 一定会带来意想不到的惊 喜。 单片机应用系统是以单片机为核心,配以输入、输出、显示、控制等外围 部件和软件,能实现一种或多种功能的实用系统。硬件是应用系统的基础,软 件则在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求 的任务,二者相互依赖,却一不可。软件和硬件总体包括,电源电路、显示电 路、复位电路、扩展存储器、电铃电路等,通过以上几部分的组合,最终达到 一定的效果。 设计系统图如图 1.1 所示: 图 1-1 系统连接图 2 2 硬件设计硬件设计 2.12.1 单片机部分单片机部分 .1 单片机的选择单片机的选择 当今单片机厂商琳琅满目,产品性能各异。常用的单片机有很多种: Intel8051 系列、Motorola 和 M68HC 系列、Atmel 的 AT89 系列、台湾 Winbond(华邦)W78 系列、荷兰 Pilips 的 PCF80C51 系列、Microchip 公司的 PIC 系列、Zilog 的 Z86 系列、Atmel 的 AT90S 系列、韩国三星公司的 KS57C 系 列 4 位单片机、台湾义隆的 EM-78 系列等。我们最终选用了 ATMEL 公司的 AT89C51 单片机。AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单 片机,片内含 8Kbytes 的可反复擦写的只读程序存储器(PEROM)和 256bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储 技术生产,与标准 MCS-51 指令系统及 8051 产品引脚兼容,片内置通用 8 位中 央处理器(CPU)和 FLASH 存储单元,功能强大 AT89C51 单片机适用于许多较为 复杂控制应用场合。所以我们最终选用 AT89C51 单片机。 .2 AT89C5AT89C51 1 的功能概述的功能概述 (1) 、特点: 1.与 MCS-51 产品指令和引脚完全兼容。 2.8K 字节可重擦写 FLASH 闪存。 3.1000 次擦写周期。 4.全静态操作:0Hz-24MHz。 5.三级加密程序存储器。 6.256X8 字节内部 RAM。 7.32 个可编程 I/O 口线。 8.2 个 16 位定时/计数器。 9.5 个中断源。 10.可编程串行 UART 通道。 11.低功耗空闲和掉电模式。 (2) 、功能特性概述: AT89C51 提供以下标准功能:8K 字节 FLASH 闪存,256 字节内部 RAM,32 个 I/O 口线,2 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工 串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑 操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的 内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。 AT89C51 的芯片管脚图如图: 图 2-1 AT89C51 引脚图 引脚功能说明: VCC电源电压 GND接地 P0 口P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复 用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对 端口 P0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位) 和数据总线复用,在访问期间激活内部上拉电阻。 在 FLASH 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节, 校验时,要求外接上拉电阻。 P1 口P1 口是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲 级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部 的上拉电阻把端口拉到高电平,此时可作输出口。作输入口使用时,因为内部 存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 与 AT89C52 不同之处是,P1.0 和 P1.1 不可以分别作为定时/计数器 2 的外 部计数输入(P1.0/T2)和输入(P1.1/T2EX) ,参见表 2-1.1。FLASH 编程和程 序校验期间,P1 接收低 8 位地址。 表 2-1 P1.0 和 P1.1 的第二功能 引脚号功能特性 P1.0 T2(定时/计数器 2 外部计数脉冲输入) ,时钟输出 P1.1 T2EX(定时/计数 2 捕获/重装载触发和方向控制) P2 口P2 是一个带内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级 可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1” ,通过内部 的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部 存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据 存储器(如执行 MOVXRI 指令)时,P2 口输出 P2 锁存器的内容。 P3 口P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓 冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时, 它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上 拉电阻输出电流。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如下表 所示: 表 2-2.2 P3 口的第二功能 端口引脚第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1) P3.4 TO(定时/计数器 0) P3.5 T1(定时/计数器 1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电 平将是单片机复位。 ALE/PROG当访问外部程存储器或数据存储器时,ALE(地址锁存允许) 输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的 是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 FLASH 存储器编程期间,该引脚还用于输入编程脉冲(PROG) 。 如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位, 可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效, 即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) 。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器的指令。 FLASH 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须 是该器件是使用 12V 编程电压 Vpp。 .3 单片机硬件资源分配单片机硬件资源分配 P2.4 连接按键 P2.5 连接按键 P2.6 连接按键 P2.7 连接按键 P3.4 连接蜂鸣器 P3.5 接继电器 P1.4 连接 X5045 的 SO 端 P1.5 连接 X5045 的/CS 端 P1.6 连接 X5045 的 SCK 端 P1.7 连接 X5045 的 SI 端 2.22.2 存储器部分存储器部分 .1 存储器的选择存储器的选择 中的看门狗对系统提供了保护功能。当系统发生故障而超过设置时间时, 电路中的看门狗将通过 RESET 信号向 CPU 作出反应。X5045 提供了三个时间值 供用户选择使用。它所具有的电压监控功能还可以保护系统免受低电压的影响, 当电源电压降到允许范围以下时,系统将复位,直到电源电压返回到稳定值为 止。X5045 的存储器与 CPU 可通过串行通信方式接口,共有 4096 个位,可以按 512 x 8 个字节来放置数据。 为了改善主 CPU 的资源与时序的分配,我们对 AT89C51 进行串行数据存储 器的扩展。常用的存储芯片有很多,如 AT93C46/56/66,X5045。经过比较选择, 最终选用了 XICOR 公司的 X5045。 X5045 把三种常用的功能:看门狗定时器,电压控制和 EEPROM 组合在单个 封装之内。这种组合降低了系统的成本并减少了对电路板空间的要求。看门狗 定时器对微控制器提供了独立的保护系统。低 VCC 检测电路可以保护系统免受 低电压的影响,同时 X5045 是串行 EEPROM 具有简单的三总线工作的串行外设 接口,是一种有独特功能的高性能价格比存储器件。 AT93C46/56/66 是 ATMEL 公司推出的低功耗、低电压电可擦除的可编程只 读存储器。它采用 CMOS 技术和 Fairchild Semiconductor 公司的 Mi-croWire 工业标准 3 线串行接口,具有 1Kb/2kB/4kB 的容量,并可通过 ORG 管脚配置成 128*8/256*8/512*8 或 64*16/128*16256*16 等结构。该系列存储器可靠性高, 能够重复写 100 万次,数据可以保存 100 年不丢失;采用 8 脚 PDIP/SOIC 封装 和 14 脚 SOI 封装(SOI 封装为 JEDEC 和 EIAJ 标准) ,与并行的 EEPROM 相比, AT93C46/56/66 可大大节省印制板空间,且接线简单,因而在多功能的精密测 试仪中具有广阔的前途。 .2 X5045X5045 的功能概述的功能概述 (1) 、特点: 1 可编程的看门狗定时器。 2.上电复位及低 VCC 检测,即在上电和 VCC 低于检测门限时,输出复位信 号。输出复位高电平有效,直至 VCC=1V 复位信号仍有效。 3.SPI 接口方式,最高可达 1MHZ 的串行时钟频率。 4.512*8 位串行 EEPROM。 5.低功耗 CMOS,3mA 工作电流,10uA 备用电流。 6.电源电压:2.7V-5.5V。 7.分块锁定,可保护 1/4,1/2 或所有 EEPORM 列。 8.偶然性写保护。 9.高可靠性,数据可保存 100 年,每字节可擦除次数可达到 10 万次。 10.可编程的复位门限。需要加高电压(15-18V 加在 WP 引脚)及一个专门 的时序。 11.8 引脚小型 DIP 封装。 (2) 、功能特性概述 X5045 引脚图如图 2-2 所示: 图 2-2 X5045 引脚图 1串行输出(SO) SO 是一个推/拉串行数据输出引脚,在读周期时间内,数据从这个引脚输 出,串行时钟脉冲下降沿时数据输出。 2串行输入(SI) SI 是串行数据输入引脚,所有的操作码,字节,地址及数据都通过这个引 脚写入存储器,串行时钟脉冲上升沿时,数据被锁存。 3串行时钟(SCK) 串行时钟控制串行总线为数据的输入和输出计时,SI 引脚的操作码,地址 或数据在时钟输入上升沿时被锁存,SO 引脚的数据在时钟输入上升沿时被改写。 4片选(/CS) 当/CS 为高电平时,X5043/45 被检测,SO 输出引脚处于高阻抗状态,除非内 部写操作在进行中的时候,X5045 将处于后备电源模式。/CS 为低电平时,可以 使 X5943/45 处于工作电源模式,应特别注意,在电源上电以后,需要在开始任 何操作以前完成/CS 引脚上高电平到低电平的转换。 5写保护(/WP) 当/WP 为低电平时,对于 X5045 不能完成非易失性写操作,但是在其他方 面工作正常。当/WP 被拉成高电平时,所有的功能,包括非易失性写操作都能 正常工作。当/WP 变成高电平,/CS 仍然是低电平时,将中断对 X5045 的写操作, 如果内部写周期已经开始,/WP 变成低电平将对写操作没有影响。 6复位(RESET) X5045 的 RESET 分别工作在高电平/低电平,对外输出一直工作到 VCC 降至 最小电压以下,将一直工作 200ms 直到 VCC 升高大于最小电压。如果看门狗定 时时间已定,/CS 保持高电平或低电平的时间超过看门狗的定时时间, RESET 也同样有效。当/CS 下降沿时可使看门狗定时器复位。 (3) 、工作原理 X5045 是设计成直接与许多微控制器系列的同步串行外设接口(SPI)相接 的 512*8EEPROM。X5045 包括一个 8 位指令寄存器,可以通过 SI 输入来访问, 数据在 SCK 上升延由时钟同步输入,在整个工作期间内,/CS 必须低电平且/WP 输入必须是高电平。 2.3 显示部分 2.3.1 显示器接口芯片的选择 LED 显示器接口芯片的选择常用的显示器接口芯片有 CD4511,CD4513,MC14499,8279,MAX7219,74HC164 等,它们的功能有: (1)CPU 接受来自键盘的输入数据,并作预处理;(2)数据显示的管理和数 据显示器的控制 CD4511 是 BCD 锁存,7 段译码,驱动器,但在显示 6 和 9 时, 显示为 b 和 q,不是很好看。CD4513 是 BCD 锁存,7 段译码,驱动器(消隐) , 但在市面上不容易购买。MC14499 为串行输入 BCD 码十进制译码驱动器, 用它来构成单片机应用系统的显示器接口,可以大大减少 I/O 口线的占用数量。 但是,由片内震荡器经过四分频的信号,经位译码后只能提供 4 个位控信号, 使信号的采集受到限制;并且,MC14499 的价格偏高,也不经济。同样,8279 为 INTEL 公司生产的通用键盘/显示器接口芯片,其内部设有 16*8 显示数据 RAM,若采用 8279 管理键盘和显示器,可以减少软件程序,从而减轻主机的负 担,但我们同时也发现,由于其功能比较强大,不可避免将会使外围设备与操 作过程复杂化,同时价格比较贵。对比一下 MAX7219 和 74HC164 其占用资源少, 且不需复杂的驱动电路。但 MAX7219 虽然比较好用,且一片能驱动四个数码管, 但对于我们设计的系统来说,不需要很多数码管,此外 MAX7219 相对的价格也 比较贵,所以我们最终选用 74HC164。 本次设计用 89C51 单片机串行口和廉价的 74HC164 集成块实现多个 LED 显 示的一种简单方法,利用该方法设计的多路 LED 显示系统具有硬件结构简单、 软件编程容易和价格低廉的特点。下面简单的介绍一下 74HC164。 .3 74HC16474HC164 的功能概述的功能概述 (1) 、特点: 1.与门串行输入。 2.完全的缓冲时钟脉冲和串行输入。 3.直接清除。 (2) 、功能特性概述 引脚图如图 2-3 所示: 图 2-3 74HC164 引脚图 这些 8 位移位寄存器的特点是具有与门串行输入和不同步的清除输入 (CLR) 。门电路串行输入(A 和 B)允许对输入数据的完全控制;低电平加在输入 端可以抑制新数据的进入;高电平输入能使输入有效。串行输入的数据当 CLK 是高电平或低电平时可以改变。 89C51 单片机串行口方式 0 为移位寄存器方式,外接 3 片 74HC164 作为 3 位 LED 显示器的静态显示接口,把 RXD 作为数据输出线,TXD 作为移位时钟脉 冲。74HC164 为 TTL 单向 8 位移位寄存器,可实现串行输入,并行输出。其中 A、B(第 1、2 脚)为串行数据输入端,2 个引脚按逻辑与运算规律输入信号, 共一个输入信号时可并接。T(第 8 脚)为时钟输入端,可连接到串行口的 TXD 端。每一个时钟信号的上升沿加到 T 端时,移位寄存器移一位,8 个时钟脉冲 过后,8 位二进制数全部移入 74HC164 中。R(第 9 脚)为复位端,当 R=0 时, 移位寄存器各位复 0,只有当 R=1 时,时钟脉冲才起作用。Q1Q8(第 3-6 和 10-13 引脚)并行输出端分别接 LED 显示器的各段对应的引脚上。在给出了 8 个脉冲后,最先进入 74HC164 的第一个数据到达了最高位,然后再来一个脉冲, 第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,6 片 7HC164 首尾相串,而时钟端则接在一起,这样,当输入 8 个脉冲时,从单片机 RXD 端输出的数据就进入到了第一片 74HC164 中了,而当第二个 8 个脉冲到来 后,这个数据就进入了第二片 74HC164,而新的数据则进入了第一片 74HC164, 这样,当第六个 8 个脉冲完成后,首次送出的数据被送到了最左面的 164 中, 其他数据依次出现在第一、二、三片 74HC164 中。 2.42.4 电源与复位电路部分电源与复位电路部分 .1 电源部分电源部分 本次设计应用的电压有+5V、+9V。220V 交流电源经变压器,整流,滤波后 分别进入芯片,产生+5V 电压,这些电源的具体应用情况如下: +5V 电源:单片机及外围电路所用电源。 +9V 电源:压电喇叭所用电源。 .2 复位电路复位电路 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关 复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如图 2.4(a)中左图所示。图中电容 C1 和电阻 R1 对电源+5V 来说构成微分电路。上 电后,保持 RST 一段高电平时间,由于单片机内的等效电阻的作用,不用图中 电阻 R1,也能达到上电复位的操作功能,如图 2-4(a)中右图所示。 图 2-4 上电复位(a)和上电或开关复位电路(b) 要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作 也能使单片机复位。常用的上电或开关复位电路如图 2-4(b)所示。上电后,由 于电容 C3 的充电和反相门的作用,使 RST 持续一段时间的高电平。当单片机已 在运行当中时,按下复位键 K 后松开,也能使 RST 为一段时间的高电平,从而 实现上电或开关复位的操作。根据实际操作的经验,下面给出这两种复位电路 的电容、电阻参考值。 图 2-4(a)中:Cl10-30uF,R11k 图 2-4(b)中:C21uF,Rllk,R210k 本系统的复位电路采用上电复位。 2.52.5 电铃和继电器部分电铃和继电器部分 继电器是我们生活中常用的一种控制设备,通俗的意义上来说就是开关, 在条件满足的情况下关闭或者开启。继电器的开关特性在很多的控制系统尤其 是离散的控制系统中得到广泛的应用。从另一个角度来说,由于为某一个用途 设计使用的电子电路,最终或多或少都需要和某一些机械设备相交互,所以继 电器也起到电子设备和机械设备的接口作用。 最常见的继电器要数热继电器,通常使用的热继电器适用于交流 50Hz、60Hz、额定电压至 660V、额定电流至 80A 的电路中,供交流电动机的过 载保护用。它具有差动机构和温度补偿环节,可与特定的交流接触器插接安装。 时间继电器也是很常用的一种继电器,它的作用是作延时元件,通常它可 在交流 50Hz、60Hz、电压至 380V、直流至 220V 的控制电路中作延时元件,按 预定的时间接通或分断电路。可广泛应用于电力拖动系统,自动程序控制系统 及在各种生产工艺过程的自动控制系统中起时间控制作用,它具有定时精度高、 延时时间长、调节方便等优点,通常还带有数码输入、数字显示等功能,应用 范围广。 在控制中常用的中间继电器通常用作继电控制,信号传输和隔离放大等用 途。此外还有电流继电器用来限制电流、电压继电器用来控制电压、静态电压 继电器、相序电压继电器、相序电压差继电器、频率继电器、功率方向继电器、 差动继电器、接地继电器、电动机保护继电器等等。正是有了这些不同类型的 继电器,我们才有可能对不同的物理量作出控制,完成一个完整的控制系统。 除了传统的继电器之外,继电器的技术还应用在其他的方面,比如说电机 智能保护器是根据三相交流电动机的工作原理,分析导致电动机损坏的主要原 因研制的,它是一种设计独特,工作可靠的多功能保护器,在故障出现时,能 及时切断电源,便于实现电机的检修与维护,该产品具有缺相保护,短路、过 载保护功能,适用于各类交流电动机,开关柜,配电箱等电器设备的安全保护 和限电控制,是各类电器设备设计安装的优选配套产品。 当定时时间到了,压电喇叭则发出一阵声响,时间到时发出一阵声响,按 下 K4 键可以停止声响。也可以启动继电器,由继电器可以控制放音机。 2.62.6 按键部分按键部分 按键设定部分比较简单,因为本系统按键少,所以在设计上采用了独立按 键方式,程序的编制上也采用了简单的扫描方式。 程序执行后工作指示灯 LED 闪动,表示程序开始执行,七段显示器显示 “0000”,按下操作键 K1-K4 动作如下: 1.操作键 K1:设置现在的时间。 2.操作键 K2:显示闹铃设置时间。 3.操作键 K3:设置闹铃时间。 4.操作键 K4:闹铃 ON/OFF 设置,设为 ON 时连续 3 次发出哔的一声,设为 OFF 时发出哔的一声。 设置现在的时间或是闹铃时间设置如下: 1.操作键 K1:设整时。 2.操作键 K2:设整分。 3.操作键 K3:设置完成。 3 3 软件设计软件设计 单片机作息时间控制的动作利用时间计时处理来做秒计数,当所设置的时 间到了,则发出一阵声响,启动继电器,由继电器可以控制放音机开启或关闭。 单片机定时器负责定时的计数,不会因为按键处理而中断时间秒数的增加。时, 分,秒数据是存在变量内并写入七段显示器的缓冲区内,而由显示器扫描程序 中定时扫描而显示出时间。 3.13.1 主程序设计主程序设计 在主控程序循环中主要工作为扫描是否有按键,若有按键则应做相应的功 能处理,同时也扫描显示器显示时间数据,并检查所设置的时间是否到了,图 3.1 为主程序控制的工作流程。时间计时处理程序是等过了 1S 后,则更新时间 数据,将最新的时,分,秒的数据转换为数字数据并显示在七段显示器上。 程序中是这样判断是否过了 1S 的:设置一个变量是 1S,当新的变量和设 置的变量不一样时,则表示已过了 1S,要做相关程序时间处理了。 主程序开始 初始化定时器 初始化变量 继电器 OFF,消除电铃标志 LED 闪动,表示程序开始执行 扫描显示器更新时间数据,定 时时间到 K1:设置现在的时间 K2:显示定时设置时间 K3:设置定时时间 K4:电铃 ON/OFF 是否按 K1、K2、K3、K4 键? 图 3-1 主程序控制的工作流程 3.23.2 子程序设计子程序设计 主要控制子程序说明如下: (1) T0_INT:定时器 0 计时中断程序每隔 5ms 中断一次。 (2) DELAY:延时子程序。 (3) DELAY1:控制七段显示器延时时间。 (4) LED_BL:工作 LED 闪动控制。 (5) SCAN1:七段显示器扫描一遍。 (6) LOAD_DATA:加载七段显示器显示数据“0”。 (7) INIT:初始化控制变量。 (8) INIT_TIMER:初始化定时器接口,使用定时器 0 模式 0 计时。 (9) TIME_PRO:更新时分秒数据。 (10) CONV1:将分及秒的数据转化为七段显示器显示数据并写入显示内 存内。 (11) CONV:将时及分的数据转换为七段显示器显示数据并写入显示内存 内。 (12) SET_TIME:设置现在的时间包括小时及分钟。 (13) TIME_OUT:过了 1S 后则更新时间并检查定时时间是否到了。 (14) LOOK_ATIME:查看已设置的定时时间。 (15) CONVA:转换定时时间时分数据为七段显示器显示数据并写入显示 内存。 (16) SET_ATIME:设置定时时间。 子程序流程图如下: 子程序入口 N Y 图 3-2 子程序流程图 设置 SCON 读取数据 查表 送数显示 数据传送结束了吗 送下一串数据 子程序返回 .1 时间作息程序时间作息程序 程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP CTCO MAIN:MOV TMOD,#11H MOV TH0,#30H MOV TL0,#0B0H MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 47H,#00H MOV P3,#00H MOV R7,#20 ORL IE,#82H SETB PT0 SETB TR0 W1:LCALL TIME LCALL PTDS LCALL DISPLAY LCALL ANJIAN LJMP W1 显示子程序: DISPLAY:MOV R0,#30H MOV R3,#01H MOV DPTR,#TAB N1:MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV P1,R3 LCALL DEALY MOV A,R3 JB ACC.5,BACK1 RL A MOV R3,A INC R0 LJMP N1 BACK1:RET 送数子程序: PTDS:MOV R0,#30H MOV R1,#50H MOV R2,#03H NEXT:MOV A,R1 ANL A,#0FH MOV R0,A INC R0 MOV A,R1 SWAP A ANL A,#0FH MOV R0,A INC R1 INC R0 DJNZ R2,NEXT RET 延时子程序: DEALY:MOV R5,#05 LOOP2: MOV R6,#00H DJNZ R6,$ DJNZ R5,LOOP2 RET TAB:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH 中断服务程序: CTCO:PUSH ACC PUSH PSW DJNZ R7,BACK MOV R7,#20 LCALL DSH MOV R1,#50H NEXT1:MOV A,R1 ADD A,#01H DA A MOV R1,A CJNE R1,#52H,NEXT2 CJNE A,#24H,BACK MOV R1,#00H LJMP BACK NEXT2:CJNE A,#60H,BACK MOV R1,#00H INC R1 LJMP NEXT1 BACK:MOV TH0,#3CH MOV TL0,#0B0H POP PSW POP ACC RETI 查定时子程序: DSH: MOV 45H,#02H MOV 46H,#00H MOV R4,#00H MOV A,R4 MOV A,50H JNZ L6 MOV 47H,#00H L6:MOV A,47H CJNE A,#14H,L3 LJMP L4 L3:MOV 60H,A(R4) MOV R1,#51H L2:MOV A,R4 MOV 40H,R1 ADD A,#113H MOVC A,A+PC CJNE A,40H,L1 INC R1 INC R4 DJNZ 45H,L2 INC 47H LJMP L4 L1:MOV 45H,#02H MOV A,60H ADD A,#02H MOV R4,A DJNZ 46H,L3 L4:RET DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH TIME:MOV A,47H JZ BACK2 CJNE A,#14H,L5 CLR P3.0 LJMP BACK2 L5:MOV TH1,#0EEH MOV TL1,#0EEH SETB TR1 JNB TF1,$ CLR TF1 CPL P3.0 BACK2:RET 按键程序: ANJIAN:JB P3.1,LL2 LCALL DEALY JB P3.1,ANJIAN WWW: JNB P3.1,WWW CPL TR0 LJMP ANJIAN LL2: JB P3.2,LL3 LCALL DEALY JB P3.2,LL2 NNN: JNB P3.2,NNN INC 51H MOV A,51H CJNE A,#60H,ANJIAN MOV 51H,#00H LL3: JB P3.3,LL1 LCALL DEALY JB P3.2,LL2 NNN1:JNB P3.2,NNN1 INC 52 MOV A,52 CJNE A,#24ANJIAN MOV 52,#00H LL1:RET .2 程序框图程序框图 开 始 1S 到没? R2 重赋初值 地址指针初始化 调查时子程序 取 数 调整时间 十进制调整 送回计数单元 计数单元清 0 是否到小时单元 单元内容等于 24? 重装初值恢复现场 中断返回 单元内容是 否等于 60H 计数单元内容 清 0 调整地址指针 N N 图 3-3 定时及中断 中断初始化 启动定时器 调报时子程序 调显示缓冲区送 数子程序 调显示子程序 调按键子程序 开 始 定时器初始化 计数单元初始化 软件计数器 R7 47H 单元初始化 图图 3-4 地址指针初始地址指针初始 地址指针初始化 软件计数器初 始化 取 数 低四位送入显 示缓冲 缓冲区地址指 针加1 高四位送入显 示缓冲 取 数 缓冲区地址指 针加1 R2 是否 为 0? 子程序返 回 图 3-5 送数显式 4 4 调试部分调试部分 调试是一项很复杂而庞大的工程,它占了整个设计的大部分时间。调试的 整体过程是分别对设计的各功能模块进行调试,然后再进行组装后的整体调试。 调试过程包括:电源部分、显示部分、单片机控制部分。 4.14.1 电源部分的调试电源部分的调试 初期,由于前端滤波电容未加,导致输出纹波过大,补上 100 微法,50V 的滤波电容,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论