资源描述
毕业综合技能实践论文
论文题目:基于单片机的车间温控数据采集系统的设计
学 号:21123410
姓 名:杨永如
系 部:电气工程系
专 业 名 称:电气系统自动化
指 导 教 师 :王政老师
2013年12月27日
包头职业技术学院电气工程系
毕业设计任务书
(格式同正文部分)
前 言
本论文目的在提供一套低成本、多通道的通用测控模块系统。目前,采用系统集成技术和计算机控制技术构成各类控制系统已形成一种趋势,通用测控模块是系统集成的基础部件。本课题根据目前各领域对测控系统的基本需求,研制了一套通用测控模块系统,它的优点是成本低,通道数多,即可联网作为主机的接口模块又可独立使用,且由于其良好的保护和抗干扰措施可适用于工业恶劣环境。本系统主要包括通用开关量输入输出模块、通用脉冲量输入输出模块、DS18S20温控模块、热电偶温控模块及通用模拟量输入模块等的设计。每一模块的主要特色如下:
1. 设计有较多的通道数,或可以方便地对通道进行扩展。尽可能使用户选用某一种类的一块板即可满足对单台设备相应量的控制,从而降低了系统构成的成本。
2. 每一模块均自带键盘和显示,构成简单的人机界面,方便用户使用单个模块的控制。
3.设有完善的保护、隔离、以及电源的两次稳压和防反接措施,可满足工作于恶劣的工业环境的要求。
4.输入及输出通道均有一定的信号调理能力和自驱能力,在多数控制场合下,可直接实现服务端子。上述各模块的外围硬件电路的同时,还做了大量的软件工作,包括编写了各模块的可供用户选用下位机应用程序、主机与单片机的通信软件、数据处理软件各种控制算法软件等。
目 录
第一章 硬件概述 - 1 -
1 系统的组成及原理 - 1 -
1.1系统硬件 - 1 -
1.2报警电路 - 1 -
1.3按键电路 - 2 -
1.4温度检测电路 - 2 -
1.4.1技术性能描述 - 2 -
1.4.2优点描述 - 3 -
1.5 A/D转换系统 - 4 -
1.5.1 A/D转换器的选取 - 4 -
1.5.2 ADC0809简介 - 4 -
1.6 控制核心部分 - 7 -
1.7电炉控制电路 - 11 -
1.8温度显示电路 - 11 -
第二章 其他芯片介绍 - 12 -
2.1 80C51的介绍 - 12 -
2.1.1简介 - 12 -
2.1.2单片机引脚图及引脚功能介绍 - 13 -
2.1.3 80C51内部结构 - 15 -
2.2 LED数码显示管的介绍 - 16 -
2.2.1 LED数码显示管引脚图及引脚功能 - 16 -
2.3 74164的引脚图及引脚功能 - 21 -
2.4 80C31的介绍 - 22 -
2.4.1 80C31简介 - 22 -
2.4.2 芯片引脚图及其引脚功能 - 22 -
2.5 AT89C51的介绍 - 24 -
2.5.1芯片简介 - 24 -
2.5.2芯片引脚图及其特性 - 25 -
2.6芯片的比较 - 29 -
第三章 汇编语言程序设计 - 30 -
3.1原理图 - 31 -
3.2 流程图 - 33 -
3.3 编程 - 35 -
参考文献 - 40 -
毕 业 设 计 总 结 - 41 -
致谢 - 43 -
第一章 硬件概述
1 系统的组成及原理
系统由六部分组成:
① 控制核心部分
② 温度数据采集部分
③ 电炉控制部分
④ 温度显示部分
⑤ 按键部分
⑥ 报警提示部分
1.1系统硬件
80C51、8255A芯片、A/D0809、LED数码管显示、DS18S20温度传感器、74373
1.2报警电路
报警电路采用蜂鸣器作为发声装置,当温度高于设定的上限值或低于下限值,给蜂鸣器送周期为1s,占空比为50%的方波,报警的时间可以持续1分钟或等待按键解除报警,这个由P1.4控制实现。
1.3按键电路
采用2×2的小键盘组成与单片机80C51的接口电路。8255A的端口C为行扫描口,工作于输出方式;端口B工作于输入方式,用来读取列值。
1.4温度检测电路
温度检测电路采用智能传感器DS18S20/。
1.4.1技术性能描述
⑴独特的单线接口方式,DS18S20在与微处理器连接时仅需要一条接口线即可实现微处理器与DS18B20的双向通讯。
⑵测温范围-55℃~+125℃,固有测温分辨率0.5℃。
⑶支持多点组网功能,多个DS18S20可以并联在唯一的三线上,实现多点测温。
⑷工作电源:3~5V/DC
⑸在使用中不需要任何外围元件,测量结果以9~12位数字量方式串行传送
图1.1 DS18S20的引脚排列
1.4.2优点描述
⑴DS18S20采用带隙温度测试结构,是DS1820的升级产品。DS18S20内部有3个主要部件:64位激光刻制的唯一ROM序列号、温度传感器以及非易失性温度报警触发器TH和TL。DS18S20通过1-Wire总线结构,仅需一个引脚即可实现数据的发送或接收。另外,用于DS10S20的供电电源可以从数据线本身获得,无需外部电源。每个DS18S20在出场时都有唯一的一个ROM序列号,可以将多个DS18S20同时连在一根单总线上,从而实现多点分布温度测试。
⑵DS18S20可以采用两种供电方式,即外部供电方式和寄生电源供电方式。如果采用外部电源供电方式,如图1.2所示。此时DS18S20可以外接3.3V或者5V的电源,而GND引脚必须接地。
⑶如果采用寄生电源供电方式,如图1.3所示。此时,DS18S20的VDD引脚必须接地。另外为了得到足够的工作电流,应给1-Wire线提供一个强上拉,一般可以使用一个场效应管将I/O线直接拉到电源上。DS18S20从1-Wire单总线上汲取能量,在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线DQ处于低电平期间电容上的电量工作,知道高电平到来再给DS18S20内部的寄生电源充电。
图1.2 DS18S20的外部供电
图1.3 DS18S20的寄生电源供电方式
1.5 A/D转换系统
1.5.1 A/D转换器的选取
A/D转换器的种类很多,安转换原理可分为:逐次逼近式、双积分式和V/F变换式,安信号传输形式可分为并行A/D和串行A/D。
⑴逐次逼近式。
转换精度高,速度较快,价格适中,是目前种类最多、应用最广的A/D转换器,典型的8位逐次逼近式A/D芯片有ADC0809。
⑵双积分式。
优点:转换精度高
缺点:转换时间较长,一般需要40~50ms,适用于转换速度不快场合。典型芯片有MC14433和ICL7109。
1.5.2 ADC0809简介
⑴主要性能为:
① 分辨率为8位;
② 精度:ADC0809小于±1LSB(ADC0808小于±1/2LSB);
③ 单+5V供电,模拟输入电压范围为0~+5V;
④ 具有锁存控制的8路输入模拟开关;
⑤ 可锁存三态输出,输出与TTL电平兼容;
⑥ 功耗为15mW;
⑦ 不必进行零点和满度调整;
⑧ 转换速度取决于芯片外接的时钟频率。时钟频率范围:10~1280KHz。典型值为时钟频率640KHz,转换时间约为100μS。
⑵内部结构及引脚功能
图1.4 内部结构及引脚功能
① IN0~IN7,8路模拟量输入端。
② D7~D0,8位数字量输出端。
③ALE,地址锁存允许信号输入端。通常向此引脚输入一个正脉冲时,可将三位地址选择信号A、B、C锁存于地址寄存器内并进行译码,选通相应的模拟输入通道。
④START,启动A/D转换控制信号输入端。一般向此引脚输入一个正脉冲,上升沿复位内部逐次逼近寄存器,下降沿后开始A/D转换。
⑤CLK,时钟信号输入端。
⑥EOC,转换结束信号输出端。A/D转换期间EOC为低电平,A/D转换结束后EOC为高电平。
⑦OE,输出允许控制端,控制输出锁存器的三态门。当OE为高电平时,转换结果数据出现在D7~D0引脚。当OE为低电平时,D7~D0引脚对外呈高阻状态。
⑧C、B、A,8路模拟开关的地址选通信号输入端,3个输入端的信号为000~111时,接通IN0~IN7对应通道。
⑨VR(+)、(—):分别为基准电源的正、负输入端。
1.6 控制核心部分
(—)控制芯片的选取
(1) 控制芯片有8255A和8155A
① 8255A
是一个可编程并行接口芯片,它主要作为外围设备与微型计算机总线之间的I/O接口。由于8255A可以通过软件来设置芯片工作方式,因此,用8255A连接外部设备时,通常不需要再附加外部电路,给使用者带来很大方便。
② 8155A
是一种多功能可编程序外围扩展芯片,它有3个可编程I/O端口(端口A、端口B、端口C),与8255A的区别在于PC口是6位,同时还有一个可编程14位定时器/计数器和256B的RAM,能方便的进行I/O口和RAM扩展。综上所述,在本次设计中,选取芯片为8255A。
(二)8255A简介
① 8255A引脚定义
②
表1.1 8225A引脚定义
引脚名
功能
连接去向
70~DD
数据总线(双向)
CPU
RESET
复位输入
CPU
CS
片选信号
译码电路
RD
读信号
CPU
WR
写信号
CPU
10A,A
端口地址
CPU
70PA~PA
端口A
外设
70PB~PB
端口B
外设
70PC~PC
端口C
外设
VCC
电源(+5V)
/
GND
接地
/
②8255A编程模型
图1.5 8255A编程模型
③ 8255A为一可编程的通用接口芯片。它有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异:
端口A(PA0~PA7):8位数据输出锁存/缓冲器,8位数据输入锁存器;
端口B( PB0~PB7):8位数据I/O锁存/缓冲器,8位数据输入缓冲器:
端口C(PC0~PC7):8位输出锁存/缓冲器,8位输入缓冲器(输入时没有锁存);
在模式下这个端口又可以分成两个4位的端口,它们可单独用作为输出控制和状态输入。
端口A、B、C又可组成两组端口(12位):A组和B组。在每组中,端口A和端口B用作为数据端口,端口C用作为控制和状态联络线。
④8255A工作方式选择
8255A有三种基本工作方式:
方式0:基本的输入/输出
方式1:有联络信号的输入/输出;
方式2:双向传送;
A组可采用方式0~方式2,而B组只能采用方式0和方式1,这由8255A的方式控制字控制。当向A1=1、A0=1的端口寄存器(即控制寄存器)发送D7=1的控制字时,其作用为方式控制字,各个位的含义如图1.6所示
图1.6 8255A方式控制字
应该注意,当A1=1、A0=1的端口寄存器(即控制寄存器)发送D7=0的控制字时,其作用为置位控制字,各个位的含义如图1.7所示
图1.7 8255A置位控制字
1.7电炉控制电路
电炉控制电路由P1.0、P1.1、P1.2分别控制1#、2#、3#电炉,控制电路相同。74LS03起隔离缓冲作用,MOC3011为光耦合器,防止电网中的干扰信号冲击CPU。当P1.0输出高电平时,双向晶闸管导通,1#炉工作。
1.8温度显示电路
温度值采用LED数码显示,每1s刷新一次显示值。为了不再扩展并行I/O口,本设计利用串行口的移位功能,扩展为3位静态显示电路。P1.3为输出控制,当P1.3=1时,允许串行口输出数据给移位寄存器;当P1.3=0时,串行口不能输出数据,显示内容不变。LED3显示十位温度值,LED2显示个位温度值,LED1显示十分位温度值,小数点固定在LED2。
第二章 其他芯片介绍
2.1 80C51的介绍
2.1.1简介
虽然目前单片机的品种很多,但其中最具代表性的当属Intel公司的MCS-51单片机系列。MCS-51以其典型的结构、完善的总线、SFR的集中管理模式、位操作系统和面向控制功能的丰富的指令系统,位单片机的发展奠定了良好的基础。MCS-51系列的典型芯片是80C51(CHMOS型的8051)。为此,众多的厂商都介入了以80C51为代表的8位单片机的发展,如Philips、Siemens(Infineon)、Dallas、ATMEL等公司,我们把这些公司生产的与80C51兼容的单片机统称为80C51系列。特别是在近年来,80C51系列又有了许多发展,推出了一些新产品,主要是改善单片机的控制功能,如内部集成了高速I/O口、ADC、PWM、WDT等,以及低电压、微功耗、电磁兼容、串行扩展总线和控制网络总线性能等。
80C51系列单片机因其性能价格比较高、开发装置多、国内技术人员熟悉、芯片功能够用适用并可广泛选择等特点,在加上众多芯片制造厂商加盟等因素,据笔者估计,80C51系列单片机可能还有10年以上的应用寿命。
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。从广义上讲,80C51内RAM(128B)和特殊功能寄存器(128B)均属于片内RAM空间,读写指令均用MOV指令。但为加以区别,内RAM通常指0OH~7FH的低128B空间。
80C51内RAM又可分成三个物理空间:工作寄存器区、位寻址区和数据缓冲区。
80C51单片机的工作方式共分为四种:
⑴复位方式;
⑵程序执行方式
⑶低功耗方式;
⑷片内ROM编程(包括效验)方式
2.1.2单片机引脚图及引脚功能介绍
图2.1单片机引脚图及引脚功能介绍
a) 电源
⑴VCC-芯片电源,接+5V;
⑵VSS-接地端;
b) 时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
c) 控制线:控制线共有4根,
⑴ALE/PROG:地址锁存允许/片内EPROM编程脉冲
① ALE功能:用来锁存PO口送出的低8位地址
② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵PSEN:外ROM读选通信号。
⑶RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
d) I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
2.1.3 80C51内部结构
80C51单片机内部结构包含以下一些功能部件:
⑴一个8位CPU;
⑵一个片内振荡器和时钟电路;
⑶3KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内无ROM);
⑷128B内RAM;
⑸可寻址64KB的外ROM和外RAM控制电路;
⑹两个16位定时/计时器;
⑺21个特殊功能寄存器;
⑻4个8位并行I/O口,共32条可编程I/O端线;
⑼一个可编程全双工串行口;
⑽5个中断源,可设置成2个优先级。
图2.2 80C51单片机内部结构框图
2.2 LED数码显示管的介绍
2.2.1 LED数码显示管引脚图及引脚功能
LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的 2个8数码管字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
图2.3 LED数码管
led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片
图片2.4 LED数码管内部引脚图
10引脚的LED数码管 图2.3 这是一个7段两位带小数点 10引脚的LED数码管
图2.5 7段两位小数点10引脚的LED数码管
LED数码管引脚定义
每一笔划都是对应一个字母表示 DP是小数点. LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
A、静态显示驱动:
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×8=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。
B、动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。 7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,使用非常广泛。
图2.6 引脚定义
这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。
图2.7 LED数码管共阳极
图2.8 LED数码管共阴极
那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。注意,3脚和8脚是连通的,这两个都是公共脚。
还有一种比较常用的是四位数码管,内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。
图2.9 共阴的四位数码管的内部结构图
2.3 74164的引脚图及引脚功能
74164是一种串行输入、并行输出的器件,时钟高电平有效,没有时钟使能端,该器件用低电平复位
图2.10 74164的逻辑符号及引脚功能表
其中QAO、QBO、QHO为在暂稳态输入条件建立之前QA、QB和QH相应的电平;QAN、QGN为在最近的时钟上升沿转换前QA或QG的电平,表示移一位。 移位寄存器应用很广,可构成移位寄存器型计数器;属虚脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换位并行数据,或把并行数据转换位串行数据等。
2.4 80C31的介绍
2.4.1 80C31简介
80C31是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。
80C31内置中央处理单元、128字节内部数据储存器RAM、32个双向输入/输出(I/O)口、2个16位定时/计时器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序储存器,需外接ROM。
此外,80C31还可以工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。80C31有PDIP(40pin)和PLCC(44pin)两种封装形式。
2.4.2 芯片引脚图及其引脚功能
8031芯片具有40根引脚,其引脚图如图2.11所示:
图2.11 80C31引脚图
40根引脚按其功能可分为四类:
1. 电源线2根
Vcc:编程和正常操作时的电源电压,接+5V。
Vss:地电平。
2. 晶振:2根
XTAL1:振荡器的反相放大器输入。使用外部震荡器是必须接地。
XTAL2:振荡器的反相放大器输出和内部时钟发生器的输入。当使用外部振荡器时用于输入外部振荡信号。
3. I/O口共有p0、p1、p2、p3四个8位口,32根I/O线,其功能如下:
1) P0.0~P0.7 (AD0~AD7)
是I/O端口O的引脚,端口O是一个8位漏极开路的双向I/O端口。在存取外部存储器时,该端口分时地用作低8位的地址线和8位双向的数据端口。(在此时内部上拉电阻有效)
2) P1.0~P1.7
端口1的引脚,是一个带内部上拉电阻的8位双向I/O通道,专供用户使用。
3) P2.0~P2.7 (A8~A15)
端口2的引脚。端口2是一个带内部上拉电阻的8位双向I/O口,在访问外部存储器时,它输出高8位地址A8~A15
4) P3.0~P3.7
端口3的引脚。端口3是一个带内部上拉电阻的8位双向I/O端口,该口的每一位均可独立地定义第一I/O口功能或第二I/O口功能。作为第一功能使用时,口的结构与操作与P1口完全相同,第二功能如下示:
口引脚 第二功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 (外部中断)
P3.3 (外部中断)
P3.4 T0(定时器0外部输入)
P3.5 T1(定时器1外部输入)
P3.6 (外部数据存储器写选通)
P3.7 (外部数据存储器读选通)
2.5 AT89C51的介绍
2.5.1芯片简介
AT89C51是一种带4K字节闪烁可编程可擦除只读储存器(FPEROM——FalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS—51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁储存器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2.5.2芯片引脚图及其特性
图2.12 AT89C51引脚图
1主要特性:
⑴与MCS—51兼容
⑵4k字节可编程闪烁储存器
⑶寿命:1000写/擦循环
⑷数据保留时间:10年
⑸全静态工作:0Hz-24Hz
⑹三级程序储存器锁定
⑺128*8位内部RAM
⑻32可编程I/O线
⑼两个16位定时器/计数器
⑽5个中断源
⑾可编程串行通道
⑿低功耗的闲置和掉电模式
⒀片内振荡器和时钟电路
3. 管脚说明:
VCC:供电电压
GND:接地
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据储存器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行效验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的八位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉缘故。P2口当用于外部程序储存器或16位地址外部数据储存器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据储存器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
口管脚 被选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(即时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据储存器写选通)
P3.7/RD(外部数据储存器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间
ALE/PROG:当访问外部储存器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率为振荡器频率的1/6。因此它可用作对输出的脉冲或用于定时目的。然而要注意的是:每当作用外部数据储存器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被忽略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序储存器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不在出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向震动器的输出。
2.6 8255A芯片的介绍
Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
2.6.1芯片引脚
8255A的引脚及其功能如图2.13所示;
图2.13
2.6.2 8255A的内部结构
其内部结构如图2.14所示
图 2.14
2.6.3 8255A与外部硬件相连时的状态
2.3.1 和外设相连的时的引脚状态
PA7~PA0:A口数据信号线,双向,三态引脚;
PB7~PB0:B口数据信号线,双向,三态引脚;
PC7~PC0:C口数据信号线,双向,三态引脚;
工作状态如图2.15所示:
图 2.15
2. 3.2 面向系统总线和CPU相连的状态
RESET:复位信号,高电平有效。当RESET信号来到时,所有内部寄存器都被清除,同时3个数据端口被自动置 为输入端口。
D7~D0:它们是8255A的数据线,和系统总线相连,用来传送数据和控制字。
片选信号,低电平有效。即当端为低电平时,8255A被选中。只有当有效时,CPU才能对8255A进行读 写操作。
:读信号,低电平有效。当有效时,CPU可以从8255A中读取数据。
:写信号,低电平有效。当有效时,CPU可以往8255A中写入控制字或数据。
A1、A0:端口选择信号。8255A内部有3个数据端口(I/O端口)和1个控制端口,共4个端口。通过地址线A0A1寻 址。规定当A1、A0为00时,选中A端口;为01时,选中B端口;
为10时,选中C端口;为11时,选中控制口。
2.3.3 电源和地
Vcc :+5V电源
如图f 8255A与键盘连接时的状态:
GND:地线51单片机与8255A芯片组成键盘控制电路
2.6.4芯片8155A的有关知识
是一种多功能可编程序外围扩展芯片,它有三个可编程控制I/O(端口A,端口B,端口C),与8255A的区别在于PC口是六位,同时还有一个可编程14位定时器/计数器256B的RAM.能方便的进行I/O口和RAM的扩展综上所诉在本设计选用8255A.
第三章 汇编语言程序设计
3.1原理图
3.2 流程图
主程序
定时器初始化
串行口初始化
中断系统初始化
显示温度
温度设定
等待定时中断
定时中断程序
N
Is定时到?
键盘扫描
温度检测
温度显示
温度控制
中断返回
报警及事故处理
温度超出范围?
Y
N
Y
3.3 编程
ORG 0000H;
LJMP MAIN;
ORG 000BH;
LJMP LT0
ORG 0100H
MAIN:MOV TMOD, #01H;
MOV TH0, #3CH
MOV TL0,#0B0H
SETB ET0
SETB EA
SETB TRO
MOV R7,#10
SJMP $
ORG 0200H;
LT0: MOV TH0,#3CH;
MOV TL0,,0B0H;
DJNZ R7,TOR
MOV R7,,#10;
LCALL TREF;
LCALL TADC;
LCALL DTSP;
LCALL CONT;
LCALL ALARM;
TOR: REIT;
TREF: MOV DPTR,#7FFFH;
MOV A,,#92H;
MOVX @DPTR,,A;
KEY: MOV DPTR,,#7FFDH
KEYO: MOV A,,#0F0H;
MOVX @DPTR,,A;
CPL A
ANL A, #0F0H;
MOV R1,A;
JZ GRET
KEY1: MOV DPTR,#7FFEH;
MOV A,#0FH;
MOVX @DPTR,,A;
CP
展开阅读全文