DZ179一个基于单片机精确计时的电源开关程序的设计与实现
DZ179一个基于单片机精确计时的电源开关程序的设计与实现,dz179,一个,基于,单片机,精确,计时,电源开关,程序,设计,实现
分类号:TP368.2 U D C:D10621-408-(2007)6094-0密 级:公 开 编 号:2003032034成 都 信 息 工 程 学 院学 位 论 文一个基于单片机精确计时的电源开关控制程序的设计与实现论文作者姓名: 田成平申请学位专业: 网络工程申请学位类别: 工学学士指 导 教 师 姓 名 ( 职 称 ): 刘云本论文提交日期: 2007 年 6 月 9 日一个基于单片机精确计时的电源开关控制程序的设计与实现摘 要由于精确计时在当前工业控制,日常生活等领域有广泛应用,本设计采用MCS51 系列单片机为核心器件,辅以相应的外围电路,设计制作出了基于单片机的精确计时控制硬件系统,并通过继电器外接被控制端,可以实现用较小的电流去控制较大电流的目的。在硬件系统的基础之上进行软件的设计,以进行精确延时。在硬件方面,除了单片机外,使用四个七段 LED 数码管来进行显示,LED 采用的是动态扫描显示,使用 74LS14 芯片进行驱动。软件方面采用汇编语言编程,使用 SLISP 软件进行在线的程序烧写,涉及了单片机的定时和中断的使用。关键词:单片机;精确计时;继电器;电路The Design and Implementation of a Power Switch Control Procedure Based on a Precise Time Control of MCUAbstractPrecise time control is widely applied in the industrial control, and some other areas of our daily life at present. This design utilizes the MCS-51 microcontroller as the core components, and some external peripheral circuits. The microcontroller has been designed based on the precise time control hardware system, and contacted the controlled device with a Relay. It can be achieved that relatively small current could control a larger current. The software is designed based on the hardware system to implement precise delay, and four LED digital tubes each of which has seven sections are used to display time information. The LED equipment is programmed by dynamic scanning and uses the 74LS14 IC chip as the driver. The system is developed in the assemble language; the procedure is programmed with the SLISP software and is concerned with the timing function of MCU and the use of interrupt. Key words: MCU;precise time control;Relay ;circuit目 录论文总页数:22 页1. 引言 .11.1. 课题背景 .11.1.1. 单片机概述 .11.1.2. 单片机的产生和发展历史 .11.1.3. 单片机的发展趋势 .11.1.4. 单片机的主要特点 .11.1.5. 单片机的应用 .11.1.6. 单片机的主要生产厂家和机型 .31.2. MCS51 系列单片机介绍 .31.2.1. 基本特性 .31.2.2. 引角功能 .51.2.3. 汇编语言简介 .72. 系统硬件设计 .82.1. 设计方案 .82.2. 硬件设计电路框图 .82.3. 机型及器件选择 .92.3.1 单片机的选择 .92.3.2 时钟电路的设计 .92.3.3 复位电路的设计 .102.3.4 LED 显示电路设计与器件选择 .102.3.5 按键电路设计与器件选择 .122.3.6 蜂鸣器电路的设计 .132.3.7 继电器电路的设计 .142.4. 硬件设计电路原理图 .142.5. 硬件的调试 .153. 软件设计 .153.1. 程序流程图 .153.2. 程序设计具体实现 .163.3. 编译软件的使用和编译过程 .183.4. 烧片 .183.5. 系统测试 .19结 论 .19参考文献 .20致 谢 .21声 明 .22第 1 页 共 22 页1. 引言1.1. 课题背景1.1.1. 单片机概述单片机也被称作“单片微型计算机” 、 “微控制器” 、 “嵌入式微控制器” 。单片机一词最初是源于“Single Chip Microcomputer”,简称 SCM。随着 SCM 在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。国际上逐渐采用“MCU”(Micro Controller Unit)来代替,形成了单片机界公认的、最终统一的名词。为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。在国内因为“单片机”一词已约定俗成,故而可继续沿用。1.1.2. 单片机的产生和发展历史单片微型计算机是随着微型计算机的发展而产生和发展的。自从 1975 年美国德克萨斯仪器公司的第一台单片微型计算机( 简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。如果将 8 位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:第一阶段(19761978):单片机的探索阶段。以 Intel 公司的 MCS-48 为代表。MCS-48 的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog 等。都取得了满意的效果。这就是 SCM 的诞生年代, “单片机”一词即由此而来。第二阶段(19781982):单片机的完善阶段。Intel 公司在 MCS-48 基础上推出了完善的、典型的单片机系列 MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。1.完善的外部总线。MCS-51 设置了经典的 8 位单片机的总线结构,包括 8位数据总线、16 位地址总线、控制总线及具有多机通信功能的串行通信接口。2.CPU 外围功能单元的集中管理模式。3.体现工控特性的地址空间及位操作方式。4.指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。第 1 页 共 22 页第三阶段(19821990):8 位单片机的巩固发展及 16 位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel 公司推出的 MCS-96 系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的 8 位/16位/32 位通用型单片机,以及小型廉价的专用型单片机。1.1.3. 单片机的发展趋势目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将是进一步向着 CMOS 化、低功耗化、低电压化、低噪声与高可靠性、大容量化、高性能化、小容量、低价格化、外围电路内装化和串行扩展技术。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小和功能将更强。1.1.4. 单片机的主要特点单片机主要有如下特点:1.有优异的性能价格比。2.集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。3.控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O 口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。4.低功耗、低电压,便于生产便携式产品。5.外部总线增加了 I2C(Inter-Integrated Circuit)及 SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。1.1.5. 单片机的应用由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现在以下几个方面:第 2 页 共 22 页1.单片机在智能仪表中的应用2.单片机在机电一体化中的应用3.单片机在实时控制中的应用4.单片机在分布式多机系统中的应用5.单片机在人类生活中的应用单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。这种用软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革命。A:由单片机组成控制器的结构和特点: 单片微型计算机是微型计算机发展中的一个重要分支,是把构成一台微型计算机的主要部件如中央处理器(CPU)、存储器(RAM/ROM)和各种功能 I/O 接口集成在一块芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片机.由于它的结构与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展了各种控制功能如 A/D、PWM 等,因此我们更多时候称其为一个单片形态的微控制器(Single Chip Micro Controller),或直接称其为微控制器(Micro Controller)。B:用单片机组成的微机控制系统具有以下特点:1.受集成度限制,片内存储器容量较小,一般片内 ROM 小于 48K 字节,片内RAM 小于 256 字节;但可在外部进行扩展,如 MCS51 系列单片机的片外可擦可编程只读存储器(EPROM)、静态随机存储器(SRAM)可分别扩展至 64K 字节。2.可靠性高。单片机芯片本身是按工业控制环境要求设计的,其抗工业噪声的能力优于一般通用 CPU;程序指令及其常数、表格固化在 ROM 中不易被破坏、常用信号通道均在一个芯片内,故可靠性高。3.易扩展。片内具有计算机正常运行所必须的部件,芯片外部有许多供扩展用的总线及并行、串行输入/输出端口,很容易构成各种规模的微机控制系统。4.控制功能强。为了满足工业控制要求,单片机的指令系统中有极丰富的条件分支转移指令、I/O 口的逻辑操作以及位处理功能。一般来说,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。第 3 页 共 22 页5.一般的单片机内无监控程序或系统管理软件,软件开发工作量大。但近年来已开始出现了片内固化有 BASIC 解释程序及 FROTH 操作系统的单片机,使单片机系统的开发提高了一个新水平。此外,单片机成本低、集成度高、控制功能多,可灵活地组装成各种智能控制装置,并能有针对性设计成专用系统,解决从简单到复杂的各种需要,实现最佳的性价比。特别是单片机与传统机械产品相结合,使原有机械产品的结构简化、控制智能化。如数控机床就是典型实例。近年来,单片机发展极快,其产量占微机产量的 70%以上。目前,至少有 50 个系列 400 余种机型,性能和结构各不相同,INTEL、MOTOROLA、ZILCG 等公司都有系列单片微型计算机。国内普及的几乎都是 INTEL 公司的产品。1.1.6. 单片机的主要生产厂家和机型(1)美国 INTEL 公司 MCS-48、MCS-51、MCS-96 系列及其增强型、扩展型系列产品; (2)美国 ATMEL 公司 AT89 系列产品,如 89C51、89C52、89C55 等 ;(3)荷兰 PHILIPS(飞利浦)公司 8C552 系列 ;(4)美国 MOTOROLA 公司的 6801、6802、6803、6805、68HC11 系列产品; (5)美国 Zilog 公司的 Z8、Super8 系列产品;上述产品既有很多共性,又各具有一定的特色,因而在国际市场上都占一席之地。根据近年来国外实地考察,INTEL 公司的单片机在市场上占有量为67%,其中 MCS51 系列产品又占 54%。在我国虽然上述公司的产品均有引进,但由于各种原因,至今我国所应用的单片机仍然是以MCS48、MCS51、MCS96 系列为主流。1.2. MCS51 系列单片机介绍1.2.1. 基本特性MCS-51 单片机采用的是冯诺伊曼提出的经典计算机体系结构框架,即一台计算机是由运算器、控制器、存储器、输入设备和输出设备共五个基本部分组成。MCS-51 单片机在一块芯片上集成了 CPU、RAM、ROM、定时器/计数器和多功能 I/O 口等。MCS-51 单片机的系统结构框图如下图所示。第 4 页 共 22 页由图 1 可以看出,单片机内部主要包含下列几个部件:一个 8 位 CPU,片内有振荡器和时钟电路,工作频率为112MHz(Atmel 89Cxx 为 024MHz) ; 一个时钟电路; 4Kbyte 程序存储器 ROM; 128byte 数据存储器 RAM; 两个 16 位定时/计数器; 64Kbyte 扩展总线控制电路; 四个 8-bit 并行 I/O 端口; 一个可编程串行接口; 五个中断源,其中包括两个优先级嵌套中断。图 1 MCS-51 单片机的系统结构框图第 5 页 共 22 页1.2.2. 引角功能2.3/0 PINT6.3/PWR3.3/1 PINT0.1P 1.1P2.1P 3.1P4.1P 5.1P6.1P 7.1PPDVRST/ 0.3/PRXD1.3/PTXD4.3/0 PT 5.3/1 PT7.3/PRD 2XTAL1XTALVss1234567891011121314151617181920Vcc0.0P1.0P 2.0P3.0P 4.0P5.0P 6.0P7.0P VppEA/PROGALE/PSEN7.2P 6.2P5.2P 4.2P3.2P 2.2P1.2P 0.2P2122232425262728293031323334353637383940803180518751VccVssPDVRST/1XTAL2XTALVppEA/PSENPROGALE/P3口第二功能P0口P1口P2口地址数据总线地址总线803180518751图 3 单片机引脚图MCS-51 是标准的 40 引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图(图表 3): P0.0P0.7 P0 口 8 位双向口线(在引脚的 3932 号端子) 。 P1.0P1.7 P1 口 8 位双向口线(在引脚的 18 号端子) 。 P2.0P2.7 P2 口 8 位双向口线(在引脚的 2128 号端子) 。 P3.0P3.7 P2 口 8 位双向口线(在引脚的 1017 号端子) 。 P0 口有三个功能: 图 2 MCS-51 系列单片机的内部结构第 6 页 共 22 页1、外部扩展存储器时,当做数据总线(如图 1 中的 D0D7 为数据总线接口)2、外部扩展存储器时,当作地址总线(如图 1 中的 A0A7 为地址总线接口)3、不扩展时,可做一般的 I/O 使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1 口只做 I/O 口使用:其内部有上拉电阻。 P2 口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般 I/O 口使用,其内部有上拉电阻; P3 口有两个功能: 除了作为 I/O 使用外(其内部有上拉电阻) ,还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有内部 EPROM 的单片机芯片(例如 8751) ,为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30 脚(ALE/PROG) 编程电压(25V):31 脚(EA/Vpp) ALE/PROG 地址锁存控制信号:在系统扩展时,ALE 用于控制把 P0 口的输出低 8 位地址送锁存器锁存起来,以实现低位地址和数据的隔离。 (在后面关于扩展的课程中我们就会看到 8051 扩展 EEPROM 电路,在图中 ALE 与 74LS373 锁存器的 G 相连接,当 CPU 对外部进行存取时,用以锁住地址的低位地址,即 P0口输出。ALE 有可能是高电平也有可能是低电平,当 ALE 是高电平时,允许地址锁存信号,当访问外部存储器时,ALE 信号负跳变(即由正变负)将 P0 口上低 8 位地址信号送入锁存器。当 ALE 是低电平时,P0 口上的内容和锁存器输出一致。在没有访问外部存储器期间,ALE 以 1/6 振荡周期频率输出(即 6 分频) ,当访问外部存储器以 1/12 振荡周期输出(12 分频) 。从这里我们可以看到,当系统没有进行扩展时 ALE 会以 1/6 振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。PORG 为编程脉冲的输入端:在第五课 单片机的内部结构及其组成中,我第 7 页 共 22 页们已知道,在 8051 单片机内部有一个 4KB 或 8KB 的程序存储器(ROM) ,ROM 的作用就是用来存放用户需要执行的程序的,那么我们是怎样把编写好的程序存入进这个 ROM 中的呢?实际上是通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是 PROG。PSEN 外部程序存储器读选通信号:在读外部 ROM 时 PSEN 低电平有效,以实现外部 ROM 单元的读操作。 1、内部 ROM 读取时,PSEN 不动作; 2、外部 ROM 读取时,在每个机器周期会动作两次; 3、外部 RAM 读取时,两个 PSEN 脉冲被跳过不会输出; 4、外接 ROM 时,与 ROM 的 OE 脚相接。 参见图 2(8051 扩展 2KB EEPROM 电路,在图中 PSEN 与扩展 ROM 的 OE 脚相接)EA/VPP 访问和序存储器控制信号 1、接高电平时: CPU 读取内部程序存储器(ROM) 扩展外部 ROM:当读取内部程序存储器超过 0FFFH(8051)1FFFH(8052)时自动读取外部 ROM。 2、接低电平时:CPU 读取外部程序存储器(ROM) 。 在前面的学习中我们已知道,8031 单片机内部是没有 ROM 的,那么在应用 8031 单片机时,这个脚是一直接低电平的。3、8751 烧写内部 EPROM 时,利用此脚输入 21V 的烧写电压。RST 复位信号:当输入的信号连续 2 个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器 PC=0000H,即复位后将从程序存储器的 0000H 单元读取第一条指令码。XTAL1 和 XTAL2 :外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V 输入 VSS:GND 接地。第 8 页 共 22 页1.2.3. 汇编语言简介汇编语言是计算机提供给用户的最快最有效的语言,也是利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的。至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。采用高级语言编写的程序,机器是不能直接执行的,需要由编译程序或解释程序将它翻译成对应的机器语言程序,机器才能接受。而这种机器语言程序往往比较冗长,占用存贮空间较大,执行起来速度慢,且无法直接利用机器硬件系统的许多特性,如寄存器,标志位等。汇编语言是介于计算机能直接理解的机器语言与使用者容易理解的高级语言之间的一种语言。它除有与代码指令一一对应的符号指令外,还增加了专用于定义变量、常量、符号、过程、分配存贮空间、定位程序起始地址等一系列称之为伪指令的符号指令。2. 系统硬件设计2.1. 设计方案1、选择 DS1307 芯片作为系统的时钟日历,当前时间可从 DS1307 芯片中读出2、系统显示采用 8 位 LED 数码管。LED 数码管的段码输入由 P0 产生、位码输入由 P2 产生3、时间调整与定时时间的输入通过接入键盘电路实现。设计 4 个键,分别定义为:(1) SET 键(时间调整设置键):其功能是当该键按下时,进入时间调整功能(2) ALM 键(定时时间设置键):其功能是当该键按下时,进入定时时间输入功能(3) 1 键:其功能是当该键按下时,被调整位加一(4) RET 键:其功能是当该键按下时,指向下一个要调整的位4、按键的接入方式:(1) SET 键:通过 P3 口 INT0 引角接入,中断工作方式(2) ALM 键:通过 P3 口 INT1 引角接入,中断工作方式(3) 1 键:通过 P3 口 P3.0 引角接入,查询工作方式(4) RET 键:通过 P3 品 P3.1 引角接入,查询工作方式5、报警声响用蜂鸣器产生,蜂鸣器接入 P1 口的 P1.6 脚第 9 页 共 22 页6、外部电源的通断用小型中功率电磁继电器 JZC_23F 来完成这个功能,继电器触点的断开与接通,通过 P1 口的 P1.7 脚控制2.2. 硬件设计电路框图根据设计方案,硬件电路设计框图如下图所示:硬件电路结构由 8 个部分组成:按键输入电路、时钟与复位电路、蜂鸣器电路、LED 显示器及驱动电路、继电器电路和时钟日历电路组成。按键输入电路时钟电路蜂鸣器电路单片机LED 显示器驱动电路8 位LED 显示器继电器电路DS1307复位电路2.3. 机型及器件选择2.3.1 单片机的选择在此选择 ATMEL 公司生产的型号为 AT89S51 的单片机。该单片机与 MCS51 系列单片机完全兼容,是 ATMEL 公司最新推出的替代AT89C51 系列的新款机型,比 AT89C51 系列又增加了 WTD、ISP 等功能,物美价廉,经济实用,并且使用起来更加方便。2.3.2 时钟电路的设计单片机工作的时间基准是由时钟电路提供的。在单片机的 XTAL0和 XTAL1 两个引角之间,接一只晶振及两只电容就构成了单片机的时钟电路。如图 5 所示:图 4 硬件设计电路框图第 10 页 共 22 页电路中,电容器 C1 和 C2 可以对晶振有微调作用,通常的取值范围是 3010pF;晶振选择 12MHz。 2.3.3 复位电路的设计 单片机的 RST 引脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效,高电平的持续时间应为 2 个机器周期以上。 复位以后,单片机内各部分恢复到初始状态,单片机从 ROM 的0000H 开始执行程序。单片机的复位方式有上电复位和手工复位两种,图 6 是 51 系列单片机常用的上电复位和手动复位组合电路,只要 VCC 上升时间不超过1ms,它们都能很好的工作。阻容器件的值如图表 6 所示,即 R1200,R 21k,C 3=22uF。 2.3.4 LED 显示电路设计与器件选择单片机的应用系统中,通常都要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。显示器、键盘电路就是用来完成人机对话的人机通道。LED 显示器的驱动是一个非常重要的问题,由系统硬件设计框图可知,显示电路由 LED 显示器、段驱动电路和位驱动电路组成。由于单片机的并行口不能直接驱动 LED 显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能够正常工作。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在图 5时钟电路图 6 复位电路第 11 页 共 22 页超负荷下运行容易损坏。因此,在实际应用中必须接入 LED 驱动电路。LED 的显示方式选择动态显示,要同时考虑位和段的驱动能力,而且段的驱动能力决定位的驱动能力。1、LED 显示器的选择在应用系统中,设计要求不同,使用的 LED 显示器的位数也不同,在本系统中,选择 4 位一体的 LED 显示器,简称“4-LED”.如图所示,是一个共阴极接法的 4 位 LED 显示器,其中 a、b、c、d、e、f、g 为 4 位 LED 各段的公共引出端。D1、D2、D3、D4 分别是每一位的共阴极输出端,dp 是小数点引出端。对于此种结构的 LED 显示器,由于 4 位 LED 阴极的各段民经在内部接在一起,因此必须采用动态扫描方式。2、LED 段驱动芯片的选择在本设计中,选择 BCD-7 段锁存译码驱动器做为段驱动电路。74LS48 具有锁存、译码、驱动的功能。即在输入端输入要显示的字型的 BCD 码,在输出端就可以得到具有一定驱动能力的 7 段显示字型码。图 7 给出了 74LS48 的引脚图。引脚图中大写字母 A、B、C、D 为BCD 码的输入端,小写字母 A、B、C、D、E、F、G 为字型码输入端,LT为灯测试输入端,BI 为消隐输入,RBO 为消隐输出。下表给出了74LS48BCD7 段锁存译码驱动器的输入与输出信号的对应关系。在使用时,将该芯片的输入端引脚 A、B、C、D 与单片机的 P1 口或者P3 口连接,该芯片的输出端 7 个引脚,与 LED 显示器的 7 个段码引脚相连接。74LS48 的作用是接收来自单片机的 BCD 码型的输入信号,经过锁存、译码和放大后,输出 7 段字型码到 LED 显示器,完成对 BCD码到 7 段字型码的锁存、译码和驱动的功能。表 174LS48BCD段译码器输入输出端信号对照表输入端电平 输出端电平 显示图 774LS48 引脚第 12 页 共 22 页D C B A g f e d c b a 字型0 0 0 0 011 1111(3FH) 00 0 0 1 000 0110(06H) 10 0 1 0 101 1011(5BH) 20 0 1 1 100 1111(4FH) 30 1 0 0 110 0110(66H) 40 1 0 1 110 1011(6DH) 50 1 1 0 111 1011(7DH) 60 1 1 1 000 0111(07H) 71 0 0 0 111 1111(7FH) 81 0 0 1 110 1111(6FH) 93、LED 位驱动芯片的选择LED 位驱动较常用的芯片有 ULN2003A 和 ULN2803A。前者是具有 7个达林顿电路的集成芯片,后都是具有 8 个达林顿电路的集成芯片.此种芯片集电极可以收集最在达 500mA 的电流,耐压为 30V,能驱动常规的 LED 显示器。图 8 和图 9 分别是 ULN2803 芯片的引脚图和电路原理图。2803 芯片的电路原理和 2003 完全相同,只是在结构上 2803 经2003 多一级驱动电路。图 8 ULN2803A 引脚 图 9ULN2803A 电路原理图图 8 中的 1B8B 引脚是输入端,1C8C 引脚是输出端。第 10 脚接有续流二级管。本设计中选用 ULN2003 作为位驱动电路,将该芯片的输入端引脚1B、2B、3B、4B、5B、5B、6B、7B、8B 与单片机的 P2 口相连,该芯片的输出端引脚 1C、2C、3C、4C、5C、6C、7C、8C 分别与两个 LED 显示器的 4 个位码引脚 D1D4 相连接。UNL2803 的作用是接收来自单片机的位码输入信号,经过反相放大后输出,送到 LED 显示器的位码引脚,完成对位码信号的反向和驱动的功能。第 13 页 共 22 页2.3.5 按键电路设计与器件选择1、 键盘结构的选择本设计中需要 4 个按键,因此选择独立式键盘。如图所示,电路由按键和 4 个电阻组成,按键分别命名为 SET、ALM、1 和 RET 键,按键采用轻触开关,电阻用阻值为 1K 的。2、键盘与单片机的接口电路设计如图 10 所示,将键盘直接与单片机的 P3 口连接。用 P3.2、P3.3引脚通过两个按键 SET、ALM 接入两个外部中断的请求信号INT0、INT1;P3.4、P3.5 引脚作为 IO 口使用,通过两个按键+1、RET 接入两个输入信号。2.3.6 蜂鸣器电路的设计本设计要求定时时间到时要有声音提醒信号产生,可以选择一只蜂鸣器来实现这一功能。压电式蜂鸣器(HA)工作时约需 10mA 的驱动电流,并设计一个相应的驱动及控制电路。电路设计如图 11 所示,蜂鸣器(HA)作为三极管 VT1的集电极负载,当 VT1 导通时,蜂鸣器发出鸣叫声音,VT1 截止时,蜂鸣器不发声。R4 是限 流电阻。图 10键盘与单片机的接口电路第 14 页 共 22 页蜂鸣器电路与单片机的接口:VT1 的基极接到单片机的 P1 口的 P1.6 引脚,P1.6 引脚作为输出口使用。当 P1.60 时,VT1 导通时,使蜂鸣器的两个引脚间获得将近 5V 的直流电压,蜂鸣器中有电流通过,而产生蜂鸣音。当 P1.61时,VT1 截止,蜂鸣器的两引脚间的直流电压将近于 0V,蜂鸣器不发声。蜂鸣器有长声和短声两种,可以根据需要进行选择。本设计选择短声蜂鸣器,蜂鸣器报警时间的长短,通过软件编程控制。2.3.7 继电器电路的设计在工业控制系统中,需要断开或接通开关量输入/输出通道。当开关接高压电路时,还需将被控对象加以隔离,以保护主控电路和人身安全。继电器是电气控制中最常用的控制元件之一。它能同时完成接通和隔离这两项任务;因此,它在工为控制系统中得到广泛应用。继电器与单片机的接口连接如图 11 所示:本设计中选择 JZC_23F 型小型中功率电磁继电器,它由控制线圈和触头组成。线圈由低压直流 5V 控制。如图 11 中 VD1 是作为续流二极管,是为配合继电器线圈放电用的。当继电器线圈断电时,线圈要放电,用续流二极管 VD1 导流。三极管 VT2 的基极接到单片机的 P1 口的 P1.7 引脚,P1.7 引脚作为输出口使用。当 P1.70 时,VT2导通时, 。当 P1.71 时,VT2 截止。图 11 蜂鸣器电路和继电器电路第 15 页 共 22 页2.4. 硬件设计电路原理图 图 12硬件设计电路原理图图 13硬件设计 PCB 图第 16 页 共 22 页2.5. 硬件的调试硬件的调试在上电后的工作是不是正常,主要进行不插单片机的调试无单片机调试主要检查电路工作是否正常,具体步骤如下:A:打开电源,将输出电压调到 5 伏,然后关闭电源。B:将电路板的火线与电源正极相连,地线与负极相连。C:打开电源,用万用表检测电路板是否有输出电压,如果有就是好的,没有就要检测是否有短路。D:电路检查完后,关闭电源,用一根导线与电源负极相连,然后打开电源,用导线的另一端逐个与 P0、P2 口的管脚接触,看数码管显示是否正确。3. 软件设计3.1. 程序流程图程序流程图是编写软件的重要前提,它是在图表上直观的体现拟设计的目的及过程。也是编译的重要依据,按照流程图一步一步编写程序,下面是我的流程图:第 17 页 共 22 页初始化定时器初始化变量继电器 OFF开中断,启动 T1 型计时断开继电器,蜂鸣器报警定时时间到?主程序设置中断服务程序的入口地址设置堆栈指针图 14程序流程图3.2. 程序设计具体实现程序的内容包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等。1. 程序的起始地址MCS-51 系列单片机复位后,(PC)=0000H,而 0003H 为外部中断 0 的入口地址,000BH 为计数器 0 中断服务程序入口地址,001BH 为计数器 1 中断服务程序入口地址,0023H 为串行中断服务程序入口地址。所以编程时应在0000H 处写一跳转指令。第 18 页 共 22 页当 CPU 接收到中断请求信号并予以响应后,CPU 会把当前的 PC 内容压入堆栈进行保护,然后转入相应的中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。2. 主程序的初始化内容所谓初始化,是对将要用到的 MCS-51 系列单片机内部部件或扩展芯片进行初始工作状态设定。MCS-51 系列单片机复位后,特殊功能寄存器IE,IP 的内容均为 00H,所以应对 IE,IP 进行初始化编程,以开放 CPU 中断,允许某些中断源中断和设置中断优先级等。在本程序中,使用了定时器 1 的中断,中断服务程序入口地址为001BH,用来产生 40ms 的单位时间。同时还要对一些存储单元进行初始化。3. T1 中断服务子程序的实现本设计中所用晶振为 12MHz,计时器 1 的计时初值为 63C0H(十进制为15536),计时为 40ms。本设计的软件中设定为 40ms 的 255 倍。程序如下所示:TIMER40ms: ;计时中断程序CLR EA ;关中断PUSH ACC ;将累加器和缓存器库存入堆栈内PUSH PSWMOV PSW,#010H ;设定缓存器库为第二个,以免改变原来的 RR7值MOV TH1,#063H ;设定定时时间 40000usMOV TL1,#0C0HCLR TF1 ;清除计时溢出位标志,以进行下一次的计时中断MOV R0,#0FFHMOV A,R0 ;判断定时时间倍数是否为零JZ LAB3DEC R0 ;不是,将定时时间倍数减LAB3:POP PSW ;恢复原来年累加器和缓存器库POP ACCRETI ;中断指令返回4. 程序计时精确度的分析第 19 页 共 22 页MCS-51 系列单片机中的定时/计数器是加法计数器,每输入一个脉冲,计数器加 1,当加到计数器为全 1 时,再输入一个脉冲时,就使计数器发生溢出,溢出时,计数器回零,并置位 TCON 听 TF0 或 TF1,以表示定时时间民到或计数值已满,向 CPU 发中断请求。本软件设计中精确计时可以精确到 1us,也就是一个脉冲产生的计数值。3.3. 编译软件的使用和编译过程编译软件的使用A: 编译软件的装载:这个软件不需要安装,只要复制到机子里就行。B:双击快捷方式,进入编辑界面,进行下一步编辑(如图 15) 。C点击 Project,新建一个工程,选择 CPU 厂商和型号后保存。D. 新建一个源文件,保存为 ASM 文件。E. 将其添加到工程中去,编写源程序。F. 在 Option for Target 中选择生成 Hex 文件,再点击编译,系统自动进行编译后提示编译中出现的问题,双击提示后系统会自动指出出问题的地方,进行编辑之后再编译,链接直到运行成功。图 15 KEIL 编译软件界面第 20 页 共 22 页3.4. 烧片本设计的电路板没有烧写程序的功能,我是用另一个试验板烧写到单片机上然后再插到自己的电路板上。烧片用的是广州天河双龙电子有限公司开发的MCU 在线系统编程软件 SL ISP,它的使用方法如下:(1)先配置软件,选择 LPT1、AT89S51, 。(2)导入预先编译好的 hex 文件。(3)擦除芯片,然后烧制。烧片时应注意的问题:(1)芯片的放置要真确,否则有可能造成芯片烧坏。(2)配置芯片时要注意选对芯片型号。(3)在烧片之前,应该先擦除芯片,防止芯片内原有遗留程序的影响。3.5. 系统测试本设计的目标是通过单板机系统接继电器,在软件系统中进行精确计时,来完成对外部电压通断的控制。测试过程如下:将程序烧入到单片机中,插到插座之上,给硬件系统外加 5V 电源,继电器的控制端外接另一电源,计时 10200000us 之后断开,蜂鸣器报警,然后程序返回重新开始执行。达到设计目标,测试成功。结 论我所做的是基于单片机的精确计时的电源开关控制程序,我开始准备比较早,但是中途由于考研的耽误,进度受到一定的影响,但最后毕业设计还是完成了,达到了预期的目的。一开始拿到这个题目的时候,真不知道从哪下手,在刘老师的指导下,自己找资料、看书,总算完成了。通过这次的毕业设计,使我对单片机有了更深的认识,从理论和实践上都得到了很大的提高,所以这次任务的完成是我学到了很多东西。首先,丰富了自己的知识面,学到了以前没能学通的东西,具体了解了怎样去完成一个电路的设计:从流程图、电路图、焊接电路板、检查电路板、仿真到烧片一整套东西。从毕业设计中,学到了单片机 AT89S51 的内部结构及其工作原理,了解了时钟电路和控制电路的工作原理,还有共阴极数码管的工作原理,巩固了汇编语言的使用能力,提高了自己动手的能力,学到了很多经验,并且提高了自己分析问题的能力和创新能力,得到了理论联系实际的机会,做出了成果。使自己在硬件设计方面树立了信心,为以后的研究生方向打好了基础,这也是这次毕业设计的最大收获。在一开始接触这个题目的时候,真的很茫然,不知道从哪开始下手,不知道单片机是干什么的?怎么才能做出来?用什么做?这些问题一个都不知道。第 21 页 共 22 页后来在刘老师的指导下,才知道我要怎么开始做。自己就开始找资料,了解单片机 89S51、数码显示管的有关知识,学习时钟电路、控制电路的设计原理,看不懂的时候就去问老师、同学。在这些都搞得比较明白后就开始画设计流程图和电路图,最后用了很长时间才画出自己的电路图,给同学看后,在同学的帮助下,改正了几处有问题的地方,定稿后就去买元器件。因为第一次设计电路,因此就多买了一些元件,这就保证了后面因为焊接错
收藏