基于单片机的智能电饭煲的控制 下载本文

分类号 编 号

华北水利水电学院

North China Institute of Water Conservancy and Hydroelectric Power

毕 业 设 计

题目: 基于单片机的电饭煲智能控制系统的设计

院 系 信息工程学院 专 业 电子信息工程 姓 名 李 玉 平 学 号 200915512 指导教师 郑 辉

2011 年 05 月 24日

华 北 水 利 水 电 学 院

毕 业 设 计 任 务 书

题目:基于单片机的电饭煲智能控制系统的设计

专 业: 电子信息工程 班级学号: 200915512 姓 名: 李 玉 平 指导教师: 郑 辉 设计期限:2011 年2 月 21日开始 2011年 5 月27日结束

院、系: 信息工程学院 2011年 2月 21 日

一、毕业设计的目的

通过本次设计掌握产品设计的流程,能熟练的使用AT89C51单片机,并根据设计要求选择合适的元器件,充分理解相关软件,对整个产品设计时的调试等必要的环节有更深刻的体会。

本设计通过选认元件、连线焊接、调试检测等过程,培养了搜集资料和调查研究的能力,方案论证选择的能力,理论分析与设计运算的能力,巩固了计算机软硬件和应用系统设计方面的能力。

二、主要设计内容及基本要求

1.本设计包含以下部分:按键电路、上电复位电路、晶振电路、电源电路、显示电路、MCU系统部分、机械控制电路等部分。 2. 基本要求:

(1)要求定时工作时间和实时时间对比达到长时间精确地定时功能。

(2)要求定时时间和实时时间相同时通过51单片机控制光耦驱动电路来控制电饭煲的工作。

三、重点研究问题

1.单片机的内部结构,显示电路的调试。

2.部分功能电路的软件设计:键盘显示电路、报警电路、工作指示电路。

四、主要技术指标或主要设计参数

根据模块电路,设计出完整的电路原理图,焊接出实物,并对产品进行调试。电源部分为单片机系统提供的电压为5V,为光耦提供的电压为12V。

五、设计成果

拟做出一个基于AT89C51单片机对电饭煲的智能控制系统的设计,设计出整体原理图,并做出实物,同时做出一份符合要求的毕业论文。

华北水利水电学院本科生毕业设计开题报告

2011年3月10日

学生姓名 题目名称 课题来源 李玉平 学号 200915512 专业 电子信息工程 基于单片机的电饭煲智能控制系统的设计 自 选 早在20世纪早期,电子智能控制技术就已经发展起来了,并最先被应用于工业生产中,其后随着控制理论、微电子技术和传感技术的发展,在操作复杂度、可控对象、稳定性、经济性等方面均得到了完善,目前电子智能控制技术在家用电器、汽车电子、智能电源保护、电力自动化和电动工具等领域得到很广泛的应用,以促进产品智能化和信息化程度的提高。例如,在空调、电磁炉、微波炉、洗衣机、电冰箱、电视机等生活家电上,电控板的身影无处不在,而一台高档汽车采用的电子智能控制装置更高达20多处。而如今随着社会的发展和现在人们生活节奏的加快,越来越多的工薪层的人们更是忙碌,除了工作,剩余的时间也越来越少,谁都想越来越多的智能家电在我们身边应用。比如:清主 要 内 容 晨6:10,全家还在熟睡中,智能系统已让电饭煲把饭煮好…... 本课题就是在这样的背景下设计的。此系统支持24小时预约煮饭,可灵活方便地安排煮饭时间,从而进一步实现智能家庭的梦想。 通过本次设计掌握产品设计的流程,能熟练的使用AT89C51单片机,并根据设计要求选择合适的元器件,通过模块框图到总体电路图再到调试,充分理解了相关软件。 本次设计的意义在于通过选认元件、连线焊接、调试检测等过程,锻炼自己的动手能力,从而综合性地巩固所学知识。通过这次设计我学会了综合的运用所学专业知识去分析、解决实际问题,较熟练地掌握了通过文献检索、资料查询从而获取新知识的方法,巩固了计算机软件、硬件和应用系统设计的基本能力。 系统的主要功能和要求 (1)实现电饭煲24小时的定时预约煮饭的功能。 (2)实现定时时间和实时时间相同时通过51单片机控制光耦驱动电路来控制

电饭煲的工作。 (3)要求在实时时钟工作下,当到达定时时间时该控制电路会完成电饭煲的自动给电功能和机械动作功能,从而在按照使用者预先设定的时间来完成规定的任务,从而达到智能实时控制的目的。 系统的功能电路 该设计主要的功能电路有:按键电路、上电复位电路、晶振电路、电源电路、显示电路、机械控制电路等。 总体设计结构图 显示电路 按键电路 上电复位电路 光耦 220V控制电路 AT89C51 晶振电路 光耦 机械控制电路 电源电路 总体设计采用的方法: 采取的主要技术路线或方法 1.硬件设计 (1)画流程框图 (2)选择元器件 (3)画出原理图 2.软件设计 (1) 画流程图,确定程序的执行方案。 (2) 程序的编写采用模块化的设计方法,使它具有易读、易改的特性。 3.设计工具

(1)Keil uVision2:编写、调试程序。 (2)Protues:设计电路原理图并调试。 4.焊接、调试 预期的成果及形式 第1、2周:熟悉毕业设计题目,搜集相关资料。 第3、4周:明确毕业设计任务,提交开题报告。 第5、6周:做有关电饭煲智能控制的前期工作,对该系统进行总体框架设计。 时间安排 第7、8周:对模块电路进行详细分析验证,从而形成系统的可行性整体方案。 第9、10周:进行protues仿真,焊接电路板,并进行实物调试。 第11、12周:外文翻译、撰写论文。 第13周: 提交论文、准备答辩,组织预答辩。 第14周: 答辩。 指导教师意见 签 名: 年 月 日 备注 通过设计能更深刻地了解硬件设计的基本流程,熟练地运用主要的设计工具完成从模块电路到整体电路等各个步骤的设计。根据原理图焊接出实物电路板,从而使该电路板能够实现预期的功能。 形式有:实物电路板、设计论文、protues仿真电路原理图。

华北水利水电学院毕业设计 摘要

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术的日益更新。如今随着社会的发展和现在人们生活节奏的加快,越来越多的工薪层的人们更是忙碌,除了工作,剩余的时间也越来越少,谁都想越来越多的智能家电在我们身边应用。用单片机技术设计一种电饭煲的定时控制,要求用键盘输入定时时间和实时时间对比达到长时间精确的定时功能。

本设计主要包括硬件电路的设计和系统程序的设计,硬件电路主要包括主控制器、显示电路等,主控制器主要采用单片机AT89C51、显示电路采用4位共阴极的LED。系统程序主要包括主程序、显示程序和定时程序等。本设计采用AT89C51单片机,要求定时时间和实时时间相同时通过光耦驱动电路控制电饭煲的工作。

关键词:单片机; 智能 ; 程序;光耦 ;驱动

I

华北水利水电学院毕业设计 Abstract

With the rapid development of science and technology in recent years, the application of SCM is continuously strengthening,and driving the innovation of traditional control technology . Now with the development of society and the accelerating rhythm of people's life, it's becoming a common phenomenon that more and more blue-and-white collar workers are more busy,the rest of their time is less and less after completing their regular work ,which makes everybody have a dream of using more and more smart appliances as possible as they can in their daily life.The timing control of a rice cooker designed by SCM technology,which requires timing of time and real-time time input with keyboard in order to achieve long-time timing function accurately by comparison.

This design mainly included the design of the hardware electric circuit and the design of system program .The hardware electric circuit of the design mainly included the master controller , display circuit and so on .The master controller mainly used AT89C51 SCM ,the display circuit used 4 altogether cathodes LED numerical code tube . The design adopts AT89C51 MCU,which demands Opto-coupler driver circuit to control the work of electric cooker when the timing time is equal to the real-time time .

Keyword : scm; intelligent ;procedures;opto –coupler; drivers

II

华北水利水电学院毕业设计 目录

摘要 ............................................................. I ABSTRACT ........................................................ II 第1章 概述 ...................................................... 1 1.1 研究背景 ................................................... 1 1.2 主要内容 ................................................... 1 1.2.1 研究目的和意义 ......................................... 1 1.2.2 研究内容 ............................................... 1 第2章 设计分析 .................................................. 3 2.1 设计要求 ................................................... 3 2.2 总体设计 ................................................... 3 2.3 系统方案选择 ............................................... 4 2.4 软件开发环境 ............................................... 4 第3章 电路主要器件性能 .......................................... 6 3.1 AT89C51内部结构及管脚说明 .................................. 6 3.1.1 AT89C51内部结构 ........................................ 6 3.1.2 AT89C51部分管脚说明 .................................... 7 3.2单片机芯片内并行I/O口 ...................................... 7 3.3 74LS245芯片 ................................................ 8 3.4 MOC3020芯片 ................................................ 9 第4章 电路硬件设计 ............................................. 10 4.1 电源电路 ................................................. 10 4.1.1 电源电路的工作原理 ................................... 10 4.1.2 电源电路硬件构成 ..................................... 10 4.2 显示电路 ................................................. 11 4.2.1 数码管显示电路工作原理 ............................. 11

III

华北水利水电学院毕业设计 4.2.2 数码管显示电路 ...................................... 13 4.3 功率控制电路 .............................................. 14 4.3.1 单片机控制大功率电路工作原理 ......................... 14 4.3.2 单片机控制大功率电路 ................................. 14 4.4 附属电路 .................................................. 15 4.4.1 键盘电路工作原理及构成 ............................... 15 4.4.2 讯响电路工作原理及构成 ............................... 17 4.4.3 工作指示电路工作原理及构成 ........................... 17 第5章 软件设计 ................................................. 18

5.1 程序设计流程图 ............................................. 18 5.2 系统的调试 ................................................. 19

5.2.1 单片机系统的调试 ...................................... 19 5.2.2 软件调试 .............................................. 19 结论 ............................................................ 22 致谢 ............................................................ 23 参考文献 ........................................................ 24 附录一:硬件电路原理图 .......................................... 25 附录二:源程序代码 .............................................. 26 附录三:外文资料及翻译 .......................................... 35

IV

华北水利水电学院毕业设计 第1章 概述

1.1 研究背景

早在20世纪早期,电子智能控制技术就已经发展起来了,并最先被应用于工业生产中,其后随着控制理论、微电子技术和传感技术的发展,在操作复杂度、可控对象、稳定性、经济性等方面均得到了完善,目前电子智能控制技术在家用电器、汽车电子、智能电源保护、电力自动化和电动工具等领域得到很广泛应用,以促进产品智能化和信息化程度的提高。例如,在空调、电磁炉、微波炉、洗衣机、电冰箱、电视机等生活家电上,电控板的身影无处不在,而一台高档汽车采用的电子智能控制装置更高达20多处。而如今随着社会的发展和现在人们生活节奏的加快,越来越多的工薪层的人们更是忙碌,除了工作,剩余的时间也越来越少,谁都想越来越多的智能家电在我们身边应用。比如:上午你去上班,下午下班回来的时候洗衣机已经把衣服洗好了;清晨6:10,全家还在熟睡中,智能系统已让电饭煲把饭煮好??本课题就是在这样的背景下设计的。此系统支持24小时预约煮饭,可灵活方便地安排煮饭时间,从而进一步实现智能家庭的梦想。

1.2 主要内容

1.2.1 研究目的和意义

通过本次设计掌握产品设计的流程,能熟练的使用AT89C51单片机,并根据设计要求选择合适的元器件,通过模块框图到总体电路图再到调试,充分理解相关软件的使用。 本次设计的目的在于通过设计电路图、编写程序、选认元件、连线焊接、调试检测等过程,锻炼自己的实际动手操作能力,从而综合性地巩固所学的理论知识。

通过这次设计我学会了综合的运用所学专业知识去分析、解决实际问题,较熟练地掌握了通过文献检索、资料查询从而获取新知识的方法,更重要的是提高了我的动手操作能力。

1.2.2 研究内容

本设计主要采用AT89C51、74LS245和光耦一起制作电饭煲的智能控制系统,主要分

1

华北水利水电学院毕业设计 为:系统的硬件设计与调试和控制软件的设计与调试。 (1) 硬件部分

硬件电路主要包括主控制器、驱动电路、键盘电路、光耦电路、显示电路等,主控制器主要采用单片机AT89C51、驱动电路采用74LS245、显示电路采用4位共阴极的LED以动态扫描法只读显示。键盘电路、驱动电路、显示电路和主控制器一起实现电饭煲24小时的定时预约煮饭的功能。 (2) 软件部分

软件主要有四大部分组成:设置当前时间程序、设置定时时间程序、中断控制程序和扫描显示程序。

2

华北水利水电学院毕业设计

2.1 设计要求

第2章 设计分析

该设计是在单片机的自动化控制理论原理和实时定时电路工作原理为基础上完成。要求用键盘输入定时时间和实时时间的对比达到长时间精确的定时功能;在实时时钟工作下,当到达定时时间时该控制电路会完成电饭煲的自动给电功能和机械动作功能,并且按照使用者预先设定的时间来完成规定的任务,从而达到智能实时控制的目的。

2.2 总体设计

本设计为电饭煲智能控制,其工作原理为以AT89C51为控制核心,带有定时功能的实时时钟为基础,和光耦进行电气隔离来完成单片机对大功率高电压进行控制。其工作原理图如图2-1所示:

显示电路 按键电路 上电复位电路 AT89C51 光耦 220V控制电路 晶振电路 光耦 机械控制电路 电源电路

图2-1系统工作原理图

3

华北水利水电学院毕业设计 2.3 系统方案选择

(1)键盘选择

独立式键盘:电路简单,易于编程,但需要的I/o口线较多,当需要多个按键时可能造成I/o线资源短缺。

行列式键盘:I/o口分为行线和列线,按键跨接在行线和列线上,列线通过上拉电阻接电源,特点是:占用的I/o口线少,但软件较为复杂。

在本设计中键盘的作用就是提供模式的选择和时间的设定,只需要五个键就可以胜任,综合考虑后选择独立式键盘。 (2) MCU的选择

第一种:8031单片机内没有ROM/EPROM/FLASH存储器,使用时需外加存储器,也就是说,程序需要烧写到另外的一个存储芯片上,这两个芯片必须同时出现才能使用。 第二种:AT89C51单片机片内有4K的ROM存储器,8051单片机比8031多了一个内部的4K ROM,他可以用编程器烧写程序,但写完之后也不能删除。

综合单片机的各部分资源及成本问题,本设计选用了后者,因为使用后者少写程序更方便。

(3) 信号显示的选择

本设计有两种数据需要显示,一种是时间信号,另一种是信号灯状态显示信号。对于前者可以选用数码管显示,也可以用液晶显示,但是液晶显示比数码管的成本高了很多,因此选用液晶并不经济。信号灯状态显示可以选用LED,LED不仅亮度高、寿命长,而且成本比较低。

2.4 软件开发环境

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要有优点是占用资源少、执行率高,但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构不能通用,因此不能直接在不同处理器体系结构之间移植。

C语言是一种结构化的高级语言。其优点是可读性好、移植容易、代码量小、开发周期短,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

4

华北水利水电学院毕业设计 对于目前的普遍使用8bitMCU来说,其内部ROM、RAM等资源都是有限的,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器,而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便,所以本设计采用汇编语言编写源程序。

5

华北水利水电学院毕业设计 第3章 电路主要器件性能

3.1 AT89C51内部结构及管脚说明

3.1.1 AT89C51内部结构

时钟电路 ROM

CPU 并行接口

P0P1P2P3

T0T1RAM定时/计数器串行接口中断系统 TXDRXDINT0INT1图3-1 AT89C51内部结构

AT89C51是标准的40引脚双列直插式集成电路芯片,引脚排列如图3-2所示:

1234567891011121314151617181920P1.0VCCP1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6RST/VPDP0.7RXD P3.0EA/VPPTXD P3.1ALE/PROGINT0 P3.2PSENINT1 P3.3P2.7T0 P3.4P2.6T1 P3.5P2.5WR P3.6P2.4P2.3RD P3.7XTAL2P2.2AT89C51 XTAL1P2.1VSSP2.040393837363534333231302928272625242322218031 8051 8751 图 3-2 AT89C51管脚图

6

华北水利水电学院毕业设计 3.1.2 AT89C51部分管脚说明

Pin9:RST/VPD 复位信号复用脚,当AT89C51通电时,时钟电路开始工作,在RST 引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC 指向0000H,P0-P3 输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RST 由高电平下降为低电平后,系统即从0000H地址开始执行程序。

AT89C51的复位方式可以是自动复位,也可以是手动复位,此外,RST/VPD 还是一复用脚,Vcc 掉电其间,此脚可接上备用电源,以保证单片机内部RAM 的数据不丢失。

Pin30:ALE/ PROG 当访问外部程序存储器时,ALE(地址锁存器)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE 端将有一个1/6 时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

Pin29: PSEN 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16 位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

Pin31:EA/Vpp 程序存储器的内外部选通线,89C51内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。若EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

3.2单片机芯片内并行I/O口

AT89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3,每个口都包含一个数据锁存器、一个输出驱动电路和两个输入缓冲器。

在访问片外扩展存储器时,低8位地址和数据由P0口传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。P1口的内部结构如图3-3所示:

7

华北水利水电学院毕业设计 读锁存器VCC 内部上拉电阻P1.X引脚

内部总线写锁存器读引脚 DQP1.X锁存器QCP图3-3 P1口内部结构 3.3 74LS245芯片

74LS245是一种三态输出的8总线收发器,74LS245 通常用于数据的双向传送、缓冲和驱动。其逻辑电路图和引脚图如图3-4所示:

图3-4 74LS245 内部结构图

从3-4图可见,该收发器有16个双向传送的数据端,即A1-A8,B1-B8,另有两个控制端-使能端口,方向控制端DIR,该芯片的功能如表3-5:

表3-5 74LS245的真值表

8

华北水利水电学院毕业设计 3.4 MOC3020芯片

光电耦合器是以光为媒介传输电信号的一种电一光一电转换器件。它由发光源和受光器两部分组成,把发光源和受光器组装在同一密闭的壳体内,此间用透明绝缘体隔离。发光源的引脚为输入端,受光器的引脚为输出端常见的发光源为发光二极管,受光器为光敏二极管、光敏三极管等。光电耦合器的种类较多,常见有光电二极管型、光电三极管型、光敏电阻型、光晶闸管型等。在光电耦合器输入端加电信号使发光源发光,光的强度取决激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产了光电流,由受光器输出端引出,这样就实现了电一光一电的转换。

MOC3020为光电耦合器,通过对其引脚控制可以实现对大电压和大功率功率管进行触发控制。MOC3020为dip6脚封装。1、2为单片机控制端,当有电流时内部发光管导通发光而受控管导通来触发外部双向可控硅进行工作。其内部结构图如图3-6所示:

图 3-6 Moc3020内部结构图

9

华北水利水电学院毕业设计 第4章 电路硬件设计

4.1 电源电路

4.1.1 电源电路的工作原理

电子设备对电源电路的要求就是能够提供持续稳定、满足负载要求的电能,所以一般需要单独设计电源电路,单片机要求电源中应尽量减少纹波,电压要恒定,且单片机复位电路要稳定、可靠,因此需要设计一个直流稳压电源给单片机和光耦供电,其工作原理是先将市电电网电压经变压器转为交流电,再通过桥堆对输入的交流电进行整流,然后通过电容滤波,稳压器进行稳压,使后续电路的电压稳定为+5V,电路板能通电,说明该模块能正常工作。

这里采用了线性稳压电源芯片LM7805和LM7812作为电源的核心器件。LM7805和LM7812是LM78系列三端稳压IC中的两种,用它来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。如图4-1 为7805和7905工作电路图:

5 LM780+ 1 IN C 1 2 OUT

3 C 2 + Vo _ Vi _ LM7812_ Vi 2 IN(TAB) C 1 1 OUT 3 _ C 2 Vo + + 图4-1 三端稳压电路的应用电路 4.1.2 电源电路硬件构成

该设计电源电路由变压器JP、桥式整流器D1、滤波电容、集成稳压块7805和7812两个稳压管组成,其工作原理为220v交流电经过变压器降压后由次级线圈输出的电压为24v的交流电,然后经过桥式整流后成为波动的直流电压,再经过滤波电路,输入集成电压稳压器,最后输出+5V

和+12V直流电压,提供给整个电路。+5V为单片机、光耦

10

华北水利水电学院毕业设计 器和74LS245等提供工作电压,+12V为隔离电路提供工作电压,其电源电路如图4-2所示:

图4-2 系统工作电源电路

4.2 显示电路

4.2.1 数码管显示电路工作原理

1. 7段LED数码显示器俗称“数码管”,其工作原理是将要显示的十进制数码分成7段,

每段为一个发光二极管,利用不同发光段组合来显示不同的数字。图4-3(a)所示为数码管的外形结构。

图4-3 7段显示器LED的外形图及二极管的连接方式

数码管中的7个发光二极管有共阴极和共阳极两种接法,分别如图4-3(a)、(b)所示,图

11

华北水利水电学院毕业设计 中的发光二极管a~g用于显示十进制码的10个数字0~9,h用于显示小数点。从图中可以看出,对于共阴极的显示器,某一段接高电平时发光;对于共阳极的显示器,某一段接低电平时发光,使用时每个二极管要串联一个约100Ω的限流电阻。

7段数码管是利用不同发光段组合来显示不同的数字。以共阴极显示器为例,若a、b、c、d、g各段接高电平,则对应的各段发光,显示出十进制数字3;若b、c、f、g各段接高电平,则显示十进制数字4。a~g组合成为7位代码,要显示的数字一般首先转换成为7段码,然后驱动7段数码管显示。

LED显示器的特点是:清晰悦目、工作电压低(1.5~3V),BS202每段最大驱动电流约为10mA,体积小、寿命长(大于100KH)、响应速度快(1~100ns)、颜色丰富(有红、绿、黄等色)、工作可靠。

2. LED数码显示器的接口方法与电路 (1)LED数码显示的接口方法

单片机与LED数码显示器有以硬件为主和以软件为主的两种接口方法,以硬件为主的接口方法,这种接口方法的电路如图4-4所示:

单 片机 51 驱动电路

图 4-4 LED数码管常用驱动电路

(2)LED数码显示器的接口电路 实际使用的LED数码显示器位数较多。为降低成本,大部分以软件为主的接口方法。对于多位LED数码管显示器,通常采用动态扫描显示方法,即逐个循环点亮各位显示器,这样虽然在任一时期只有一位显示器被点亮,但是由于人眼有视觉残留效应,看起来与全部显示持续点亮的效果基本一样(在亮度上要有差别)。

12

华北水利水电学院毕业设计 (3)驱动器 LED显示是单片机控制产品中常见的应用。使用LED模块,这种模块中带有LED显示管和LED驱动电路,用起来比较方便。 一般用户直接采用单片机LED驱动器和LED显示管的方式, 现在本设计使用的LED驱动74LS245,它作为共阴极数码管的驱动器,用单片机端口直接进行片选,它是集成电路组件。

4.2.2 数码管显示电路

该系统显示电路由四个共阴数码管和驱动芯片74LS245构成,所要显示的数据由P0口送出,经74LS245提高驱动能力之后直接接在数码管的a到dp端口线上,四个数码管的片选有P2口低电平进行片选,从而完成显示电路的工作,使系统更具有可视化操作。其电路如图4-5所示:

图4-5 数码管显示电路

13

华北水利水电学院毕业设计 4.3功率控制电路

4.3.1单片机控制大功率电路工作原理

单片机控制输出电压和电流都很小,不能驱动高电压和大功率用电器,机械性开关不便于集成和自动化智能控制。为了避免机械接触开关的缺点,本系统选用可控硅为主体的完全光电隔离的中间驱动电路。可控硅是大功率开关型半导体器件,能在高电压、大电流条件下工作,具有无器械接触、体积小、便于安装等优点,广泛应用于电力电子设备中。光电隔离保证了系统的安全性和外界电压波动对系统的影响。系统工作电路如图4-6所示:

单片机 光耦驱动器 高电压大功率负载 图4-6功率控制电路 4.3.2 单片机控制大功率电路

单片机的P2.0和P2.1各控制一个光耦器,当单片机内部完成预定的时间时此两个端口会产生两个低电压使MOC1和MOC2两个光耦工作,MOC1控制220V电压的导通,当光耦1工作时4、6脚成低阻状态时,内部的过零检测电路使光耦输出一个高电压来触发双向可控硅使其导通,在一直保持高电平的同时双向可控硅一直工作来完成对电饭煲的电源打开。Rk3和ck为滤波电路,减少高压对双向可控硅影响。另一个光耦控制机械部分的工作,使电饭煲的工作开关打开,从而来控制电饭煲的实时控制。功率控制部分由如图4-7所示:

14

华北水利水电学院毕业设计

图4-7功率控制电路

4.4附属电路

4.4.1 键盘电路工作原理及构成

1.键盘分类

按照结构原理按键可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。 2.按键结构与特点

微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。

机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图4-8所示,抖动时间的长短与开关的

机械特性有关,一般为5~10ms。

15

华北水利水电学院毕业设计 键按下

前沿抖动后沿抖动闭合稳定图4-8 抖动过程

在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。由于本设计所用的按键数较少,所以采用硬件去抖。

单片机工作时有外接键盘输入信号,当检测到有哪一个键被按下时,单片机内部执行相应的工作程序。该系统的键盘由5个独立键盘构成,包括一个中断键盘单元,来完成智能电饭煲的手动控制。键盘的一脚接在单片机的P1.1至P1.4脚上,另外一脚接在电源地上,当有键盘按下时对应的键盘就会有一低电平送进单片机内部,由单片机内部程序进行消抖处理然后确定哪一个键盘被按下后来执行程序完成该系统的指定工作。该系统键盘接口电路如图4-9所示:

图4-9 系统按键开关电路

16

华北水利水电学院毕业设计 4.4.2 讯响电路工作原理及构成

正常情况下单片机P1.7脚是低电平,蜂鸣器不工作,当单片机开始工作时会由于P1.7脚为高电平而发声,而输出端P1.7处于低电平时,无电流通过蜂鸣器,蜂鸣器则不发声;当预定时间到达需要蜂鸣器响时,P1.7端口电压由低电平变为高电平,蜂鸣器通电,从而发出报警声,R1为限流电阻。 其工作电路为如图4-10所示:

图4-10 系统讯响电路

4.4.3 工作指示电路工作原理及构成

电路正常工作时,单片机内部程序会执行,所以本设计采用内部程序执行与否来判断电路是否工作,弥补了在电源处加指示灯亮而程序不工作的错误弊端。

该电路指示为每当程序执行一秒时灯就会闪动一下,来指示电源电路和程序执行工作。每当P1.0的高低电平变化一次,指示灯就会闪动一下,其电路图为图4-11所示:

图4-11工作指示电路

17

华北水利水电学院毕业设计 第5章 软件设计

5.1 程序设计流程图

整个系统输入包括5个按键;输出包括4位七段数码管、3个发光二极管、光耦控制器等。根据系统控制功能,程序主流程图见图5-1所示:

程序开始 相关变量初始化 是否有中断 中断服务程序 检查闹铃时间 闹铃执行程序 显示程序 K1是否按下 K1键处理程序 K2是否按下 K2键处理程序 K3是否按下 K4是否按下 K4键处理程序 图5-1 主程序流程图

18

华北水利水电学院毕业设计 5.2 系统的调试

5.2.1单片机系统的调试

单片机系统是指单片机能正常工作所必需的外围元件,主要分为时钟电路和复位电路。本设计采用的是AT89C51芯片,它内部自带4KB的FLASH程序存储器,一般情况下,这4KB的存储空间足够我们使用,所以本设计将AT89C51芯片的第31脚固定接高电平,所以我们只用芯片内部的4KB程序存储器。单片机的时钟电路有一个12MHz的晶振和两个30pF的小电容组成,它决定了单片机的工作时间精度为1微妙。复位电路有22uF的电容和1kΩ的的电阻(实际经验),其好处是在满足单片机可靠复位的前提下降低了复位引脚对地的阻抗,可以显著增强单片机复位电路的抗干扰能力。

判断单片机芯片及时钟系统是否正常工作:用万用表测量单片机晶振引脚(18、19)的对地电压。以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V连一下,模拟一下上电复位,如果单片机正常工作了,说明复位有问题。

5.2.2 软件调试

第一步,原程序代码在Keil uVision2进行编译,编译成功以后生成.hex文件。 第二步,把.hex文件加载在AT89C51芯片里,最后在protues里调试。当电路上电后,定时标志清零,蜂鸣器响之后指示灯闪烁。当按下Key1键时设置当前时间,设置完按下Key4键,然后蜂鸣器响之后指示灯闪烁。当按下Key2键时设置定时时间,设置完按下Key4键,然后指示灯闪烁,最后再按下Key4键后蜂鸣器响时,表明现在已经开通定时功能,当定时时间和当前时间相等时,蜂鸣器响,电饭煲的指示灯亮,这时该控制电路会完成电饭煲的自动给电功能和机械动作功能,从而在按照使用者预先设定的时间来完成规定的任务。其仿真结果如5-1,2,3图所示:

19

华北水利水电学院毕业设计

图5-2 设置当前时间

图5-3 设置定时时间

20

华北水利水电学院毕业设计

图 5-4 定时到达时的状态

21

华北水利水电学院毕业设计 结论

这次毕业设计经历了将近半年的时间,其中遇到了许多的麻烦和困难,但是几乎都解决了,通过发现问题、分析问题、解决问题,我又学到了许多新的知识,并在一定程度上加强了理论学习和工程实践相融合、巩固基础知识与培养创新意识相结合等方面的能力。在这次毕业设计遇到最大的问题是在仿真的时候,蜂鸣器不响,最后在马斌老师的帮助下,问题解决了。从设计前期的系统开发方案制定,到中间具体单元电路的制作,再到后期软硬件的联合调试,都需要我们亲自参与。对于设计中所遇到的难点和不明白的地方,需要自己主动地去解决,不再是像以前一样老师将大部分的工作做好,然后由学生完成剩下的任务。

本设计以AT89C51单片机为基础,主要包括了按键电路、上电复位电路、晶振电路、LED显示电路、机械控制电路等,先在Keil uVision2软件中进行编程,然后在Proteus中进行软硬件仿真。相比较市场上的这些仪器主要简化了操作,降低了成本,有利于普及。因此,该设计投放市场后,将会有较好的市场发展前景,将产生较好的经济效益和社会效益。

另外,通过毕业设计我们对四年来的所学知识进行了一个系统的总结。一方面,从理论上再一次对以前的知识进行了复习,并根据我们的需要在某些方面进行了深入的研究;另一方面紧密结合实际设计的需要将我们的理论知识融入实践的设计当中,并结合当前最新的技术,使我们的设计能紧跟科技的前沿。因此,我们的设计不仅仅是一个重新学习的过程,而且也是对我们科研能力的培养。通过在设计中和同学的紧密协调工作,进一步培养了自己的合作精神,为以后走向社会参与社会竞争奠定了基础。

22

华北水利水电学院毕业设计 致谢

时光如梭,转眼间本科学习生涯即将结束。时间虽短,我却从中学到了很多的东西。我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、朋友。

特别感谢我的导师郑辉老师,在本次毕业设计过程中,郑老师对该论文从选题,构思到最后定稿的各个环节给予细心指引与教导。在学习中,郑老师以其严谨求实的治学态度、丰富渊博的知识、精益求精的工作态度以及侮人不倦的师者风范和大胆创新的进取精神对我产生很大影响,是我终生学习的楷模,将会永远激励着我。

其次,感谢那些给予我帮助的同学,感谢他们,特别是王燕和魏现宾同学在设计的过程中也给予了莫大的帮助,在此,对他们表示衷心的谢意!

再次,感谢那些关心此次毕业设计的领导们,在他们的英明领导下,学校越办越好,为社会不断输送高素质的人才!

最后,我要向百忙之中抽时间对我的设计进行审阅、评议和参与本人论文答辩的各位老师表示感谢。

23

华北水利水电学院毕业设计 参考文献

[1]边海龙,孙永奎.单片机开发与典型工程项目实例详解[J].电子工业出版社,2008,(10):143-160 .

[2]王文青,邱文勋.51单片机开发案例精选[J].人民邮电出版社,2001,(5):45-47 . [3]睢丙东.单片机应用技术与实例. 电子工业出版社,1998,7

[4]张鑫,华臻,陈书谦.单片机原理及应用[J].电子工业出版社,2008,(5) . [5]张洪润,张亚凡.单片机原理及应用[J].清华大学出版社,2005, (4) . [6]李广弟.单片机基础[M].北京:北京航空航天大学出版社,2004

[7]李华. MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,1993,5 [8]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].机械工业出版社,2009 .

[9]张毅坤.单片微型计算机原理及应用[M].西安电子科技大学出版社,1998 . [10]雷丽文等.微机原理与接口技术[M].北京电子工业出版社,1997.2 [11]张毅刚.单片机原理及应用. 北京:高等教育出版社,2004

[12]辛顺友.胡永生. 单片机应用系统设计与实现.福建:福建科学技术出版社,2005,3 [13]余锡存,曹国华.单片机原理及接口技术[M].西安电子科技大学出版社,2000.7 [14]梅丽凤,王艳秋,汪毓铎. 单片机原理及接口技术.北京:清华大学出版社,2003,5 [15]黄智伟.凌阳单片机课程设计指导[J].北京航空航天大学出版社,2007, (6) .

24

华北水利水电学院毕业设计 附录一:硬件电路原理图

硬件电路图

25

华北水利水电学院毕业设计 附录二:源程序代码

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;文件名称:电饭煲智能控制核心程序 ;该系统能完成24小时电饭煲预约工作 ;及其可视化操作且进行电气隔离控制

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;~~~~~~~~ 程序初始化 ~~~~~~

;定义存放计时单元的地址

ALB EQU 20H.0 ;定时设置标志

BUF EQU 30H ;30~33H存放连续4个字节显示器数据

HOUR EQU 34H ;存放小时变量

MIN EQU 35H ;分钟变量 SEC EQU 36H ;秒钟变量

DEDA EQU 37H ;存放5ms计数值 HH EQU 38H ; 定时设置小时变量

MM EQU 39H ;定时设置分钟变量

;按键输入引脚定义

K1 EQU P1.4 K2 EQU P1.3 K3 EQU P1.2 K4 EQU P1.1 K5 EQU P3.2

;蜂鸣器和指示灯引脚定义

SPK EQU P1.7 WLED EQU P1.0 ;程序开始执行地址 ORG 0H JMP MAIN ORG 03H

LJMP TO_INT0 ORG 0BH JMP TO_SRV

~~~~~~~~~~~~主程序~~~~~~~~~

MAIN:

SETB EA SETB IT0 SETB EX0

CLR ALB ;清除定时标志 ACALL BZ ;蜂鸣器连续响两声 ACALL BZ

ACALL LED_BL ; led闪动 表示程序开始执行

26

华北水利水电学院毕业设计

ACALL INIT ;初始化变量 ACALL INIT_TIME ;设置定时器

~~~~~~~~~~~~加载显示器初始数据~~~~~~~~~~~~ MOV A,#03FH MOV P0,A

LOOP: ;无穷循环

ACALL CONV ACALL TIME_PRO ;检查定时时间 ACALL DISP ;扫描显示 M2: M3: M31: M4: INIT_TIME:

JB K1,M1 ;未按下k1键 ACALL LED_BL ; led闪动 ACALL SET_TIME ;设置目前时间 JMP LOOP ;跳转到loop处执行

M1:JB K2, M2 ;未按下k2键继续扫描

ACALL LED_BL ACALL SET_ATIME ;设置定时时间 JMP LOOP ;跳转到loop处执行

JB K3, M3

JMP LOOP

JB K4, M4 ;未按下k4将,则继续扫描

JNB K4,$ CPL ALB

JNB ALB, M31

ACALL BZ ;定时确定三次发出响声 ACALL BZ ACALL BZ SETB P2.0 SETB P2.1

JMP LOOP ;跳转到loop处执行

ACALL BZ ;定时取消,发出一声响 JMP LOOP ;跳转到loop处执行

JMP LOOP ;跳转到loop处执行

~~~~~~~~~~实现走时功能的子程序~~~~~~~~~

MOV TMOD,#00000001B ;设置定时器T0工作模式1

MOV IE, #10000010B ;启用定时器T0中断产生

SETB ET0

MOV TL0,#78H ;加载初始值 MOV TH0,#0ECH SETB TR0 ;启动定时器T0开始计时 RET 27

华北水利水电学院毕业设计 ~~~~~~~~ 中断服务程序~~~~~~~

TO_SRV: ;定时器T0计时中断程序每隔5秒中断一次

PUSH ACC ;将a压入堆栈 MOV TL0,#78H ;重加载初始值 MOV TH0,#0ECH INC DEDA ;加1

;秒述出

MOV A,DEDA

CJNE A,#200,TT1 ;是否1秒到了 TT1:

CONV :

MOV DEDA,#0 ;计数器清零 CPL WLED ; LED灯亮灭变化 INC SEC ; 秒计数加1 MOV A,SEC

CJNE A,#60,TT1 ;是否1分钟到了 ;分输出 INC MIN ;分加1 MOV SEC,#0 ;秒清零 MOV A,MIN

CJNE A,#60,TT1 ;是否1h到了

INC HOUR ;时加1

MOV MIN,#0 ;分清零 MOV A,HOUR

CJNE A,#24,TT1 ;是否24h到了 MOV SEC, #0 ;时分秒全部清零

MOV MIN ,#0

MOV HOUR,#0

POP ACC ;将a由堆栈取出 RETI

~~~~~~~实现显示功能子程序~~~~~~~

;转化小时数据 MOV A,HOUR MOV B,#10 DIV AB

MOV DPTR,#TABLE ;查表转换 MOVC A,@A+DPTR MOV BUF,A MOV A, B

MOVC A, @A+DPTR MOV BUF+1,A MOV A,MIN MOV B,#10 DIV AB

MOV DPTR,#TABLE ;查表转换

28

华北水利水电学院毕业设计 MOVC A,@A+DPTR MOV BUF+2,A MOV A, B

MOVC A, @A+DPTR MOV BUF+3,A RET

TABLE: ;字符型数据编码表 DB 3FH,06H,5BH,4FH DISP:

SET_TIME:

DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H

~~~~~~~~扫描显示~~~~~~~~

MOV A,33H MOV P0 ,A CLR P2.7 MOV R5,#2 ACALL DELAY SETB P2.7 MOV A,32H MOV P0 ,A CLR P2.6 MOV R5, #2 ACALL DELAY SETB P2.6 MOV A,31H MOV P0 ,A CLR P2.5 MOV R5 ,#2 ACALL DELAY SETB P2.5 MOV A,30H MOV P0 ,A CLR P2.4 MOV R5 ,#2 ACALL DELAY SETB P2.4 RET

~~~~~~~~实现调时功能的子程序~~~~~~~~

;设置目前时间 CLR TR0 ;定时器工作暂停 MOV SEC,#0 ;秒钟变量清楚为0

29

华北水利水电学院毕业设计 L0:

ACALL DISP ;扫描显示

JB K2, L1 ;未按下k2键,则继续扫描 JNB K2,$ ;按下则等待放开 K2小时调整

INC HOUR ;小时加1 MOV A, HOUR

CJNE A,#24,L11 ;是否到了24h MOV HOUR,#0 ;小时变量清零

L11:

L1:

K3分调整

L21:

L2:

INIT: BZ: B1:

ACALL CONV ;转换小时数据 ACALL DISP ;扫描显示 JMP L0 ;继续程序执行

JB K3,L2 JNB K3,$ INC MIN MOV A,MIN CJNE A,#60,L21 MOV MIN,#0

ACALL CONV ACALL DISP JMP L0 ;跳转到L0处执行

JB K4,L0 ;未按下k4,则继续扫描 JNB K4,$ ;按下则等待放开 ACALL BZ ;蜂鸣器响一声 ACALL LED_BL ;LED闪动 SETB TR0 ;启动定时器 RET

~~~~~~~~蜂鸣器和指示灯等其它程序~~~~~~~~

;计时单元清0 MOV DEDA, #0 ;5ms计时器清零 MOV SEC, #0 ;秒分小时清零 MOV MIN, #0 MOV HOUR, #0 RET

~~~~~~~~蜂鸣器~~~~~~~~

;蜂鸣器响一声 MOV R6,#250 ACALL DEX

30

华北水利水电学院毕业设计 CPL SPK

DJNZ R6,B1 MOV R5,#50 ACALL DELAY RET

~~~~~~~~工作指示~~~~~~~~

LED_BL: ;工作指示灯闪烁 MOV R4,#6 LE1:

DELAY: D1:

DEX:

DE1:

SET_ATIME: N0:

K2调整小时

N11:

CPL WLED ;位反向 MOV R5,#25 ACALL DELAY DJNZ R4,LE1 ;延时50ms RET

~~~~~~~~延时子程序~~~~~~~~

;总延时时间2ms×R5 MOV R6,#10 MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET

~~~~~~~~蜂鸣器短暂延时子程序~~~~~~~~

MOV R7,#180 ;短暂延时 NOP DJNZ R7,DE1 RET

~~~~~~~~增加定时时间控制程序部分~~~~~~~~

;设置定时时间 ACALL CONVA ;加载定时时间数据

ACALL DISP

JB K2,N1 ;未按下k2键。则继续扫描

JNB K2,$ ;按下则等待放开 INC HH ;小时数加1 MOV A, HH

CJNE A,#24,N11 ;是否到24小时 MOV HH,#0 ;小时变量清零 ACALL CONVA ;加载定时时间数据

31

华北水利水电学院毕业设计 ACALL DISP ;扫描显示

JMP N0 ;跳转到N0处执行

N1:

JB K3, N2 JNB K3,$ K3调整分钟

INC MM MOV A,MM CJNE A,#60,N21 MOV MM,#0 N21:

ACALL CONVA ACALL DISP JMP N0

N2:

JB K4,N0 JNB K4,$

ACALL LED_BL ;K4设置完成 ACALL CONVA RET

~~~~~~~~加载定时时间数据~~~~~~~~

CONVA: ;转换小时数据 MOV A, HH MOV B, #10 DIV AB

;~~~~~~~~~~~~~~~

MOV DPTR,#TABLE ;查表转换 MOVC A,@A+DPTR MOV BUF,A

;~~~~~~~~~~~~~~

MOV A,B MOVC A, @A+DPTR MOV BUF+1,A

;转换分钟数据

MOV A, MM MOV B, #10 DIV AB

;~~~~~~~~~~~~~~~

MOV DPTR,#TABLE ;查表转换 MOVC A,@A+DPTR MOV BUF+2,A

;~~~~~~~~~~~~~~

MOV A,B MOVC A,@A+DPTR

32

华北水利水电学院毕业设计

MOV BUF+3,A RET

~~~~~~~~检查定时时间处理程序~~~~~~~~

TIME_PRO: ;检查是否启动定时控制 JB ALB, TI3 RET

TI3: ;检查定时时间是否到了 MOV A,HOUR MOV B, HH CJNE A,B, BK

;~~~~~~~~~~~~~~~~~~~~

MOV A,MIN MOV B, MM CJNE A,B, BK ;检查定时分钟时间

;~~~~~~~~~~~~~~~~~~~~

ACALL TIME_OUT: ;检查定时时间,到了进行时间处理

BK:

RET

~~~~~~~~ 执行定时时间处理~~~~~~~~

TIME_OUT: ;所设置的时间到了 ACALL LED_BL NOP

ACALL BZ NOP

ACALL TO_INTO_CHULI JB K4,$ SETB P2.0 CLR ALB ;清除定时位 RET

~~~~~~~~ 中断服务程序~~~~~~~~

TO_INT0: PUSH ACC PUSH PSW ;保护 CLR P2.0 NOP NOP CLR P2.1

DELAY2S: MOV R3, #10 ;电磁铁延时1.5s D13: MOV R2, #200 D12: MOV R1, #250 DJNZ R1,$ DJNZ R2,D12 DJNZ R3,D13 SETB P2.1

33

华北水利水电学院毕业设计 POP PSW

POP ACC RETI ;中断返回

TO_INTO_CHULI: ;控制处理子程序 PUSH ACC PUSH PSW CLR P2.0 NOP NOP DELAY1S : D3: D2:

CLR P2.1

MOV R3, #10 MOV R2, #200 MOV R1, #250 DJNZ R1,$ DJNZ R2,D2 DJNZ R3,D3 SETB P2.1 POP PSW POP ACC RET END

34

华北水利水电学院毕业设计 附录三:外文资料及翻译

AT89C51(8-bit Micro controller with 4K Bytes Flash)

The AT89C51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of In-System Programmable Flash memory. The device is manufactured using Atmel's high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with In-System Programmable Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications. Features:

.Compatible with MCS.-51 Products

4K Bytes of In-System Programmable (ISP) Flash Memory 一Endurance: 1000 Write/Erase Cycles 4.0V to 5.5V Operating Range Fully Static Operation:0 Hz to 33 MHz Three-level Program Memory Lock 128 x 8-bit Internal RAM 32 Programmable I/O Lines Two 16-bit Timer/Counters

35

华北水利水电学院毕业设计 Six Interrupt Sources

Full Duplex UART Serial Channel Low-power Idle and Power-down Modes Interrupt Recovery from Power-down Mode Watchdog Timer Dual Data Pointer Power-off Flag Fast Programming Time

Flexible ISP Programming (Byte and Page Mode)

The AT89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuit. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset. VCC:

Supply voltage (all packages except 42-PDIP). GND:

Ground (all packages except 42一PDIP; for 42-PDIP GND connects only the

36

华北水利水电学院毕业设计 logic core and the embedded program memory). Port 0:

Port 0 is an 8-bit open drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high一impedance inputs.

Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pull-ups.

Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pull-ups are required during program verification. Port 1:

Port 1 is an 8一bit bi-directional I/O port with internal pull一ups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pull一ups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (lip) because of the internal pull一ups. Port 2:

Port 2 is an 8一bit bi-directional I/O port with internal pull一ups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pull一ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (lip) because of

37

华北水利水电学院毕业设计 the internal pull一ups.

Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that uses 16-bit addresses (MOVX @DPTR). In this application, Port 2 uses strong internal pull一ups when emitting 1s. During accesses to external data memory that uses 8-bit addresses (MOVX @RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3:

Port 3 is an 8一bit bi-directional I/O port with internal pull一ups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pull一ups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (lip) because of the pull-ups.

Port 3 receives some control signals for Flash programming and verification. Port 3 also serves the functions of various special features of the AT89C51,as shown in the following table. RST:

Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. This pin drives High for 98 oscillator periods after the Watchdog times out. The DISRTO bit in SFR AUXR (address 8EH) can be used to disable this feature. In the default state of bit DISRTO, the RESET HIGH out

38

华北水利水电学院毕业设计 feature is enabled. ALE/PROG:

Address Latch Enable (ALE) is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.

If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode. PSEN:

Program Store Enable (PSEN) is the read strobe to external program memory. When the AT89C51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. EA/VPP:

External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.

39

华北水利水电学院毕业设计 EA should be strapped to Vcc for internal program executions.

This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming. XTAL1:

Input to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2:

Output from the inverting oscillator amplifier Special Function Registers:

Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect.

User software should not write 1 s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0. Interrupt Registers:

The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the five interrupt sources in the IP register. Dual Data Pointer Registers:

To facilitate accessing both internal and external data memory, two banks of 16-bit Data Pointer Registers are provided: DP0 at SFR address locations 82H-83H and DP1 at 84H-85H.Bit DPS=0 in SFR AUXR1 selects DP0 and DPS=1 selects DP1.

40