1.设计背景与意义1.1设计背景在我们的生产生活中,信号的检测与控制广泛存在,并扮演着很重要的角色。在下述的设计报告中,介绍了一个基于单片机的具有A/D和D/A功能的信号测控装置。该装置能够接入典型传感器、变送器信号,同时可输出标准电压/电流信号,并满足抗干扰、通用性、安全性、性价比等原则性要求。目前,信号的检测和控制根据其特性,有很多的检测和控制装置,甚至有成套的控制原理电路。此时我们做的信号检测与控制的装置,应该说是很低端的,但是这个课程设计的目的不只在于要求我们能设计出优秀、高端的产品,而且要求锻炼我们的综合能力。1.2设计意义通过设计此测控装置,加深对控制系统理解,将所学的知识灵活穿插并运用起来。比如这次的《计算机控制技术》设计报告,它不仅运用了计算机方面的知识,而且也设计到了单片机、数电的知识。理论联系实践,从而锻炼了我们综合运用知识的能力。2.设计题目介绍设计一个基于单片机的具有A/D和D/A功能的信号测控装置。要求该信号测控装置能够接入典型的传感器、变送器信号,同时可输出标准电压/电流信号。并满足抗干扰、通用性、安全性、性价比等原则性要求。标准电压/电流信号此处定为:0~5V/4~20mA(0~20mA)。图1系统原理图键盘显示被控对象传感器变送器A/D转换器单片机D/A转换执行器存储器23.系统总体框架图2系统总体框图4.系统硬件设计4.1单片机单片机是在在芯片内集成了构成一台计算机的主要器件:CPU、运算器、存储器、I/O口及其他功能部件的一块单晶芯片。因此它的功能很强大,广泛的应用于生产中。4.1.1单片机的选择以此次设计选用AT89C51单片机作为处理核心。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,内含32根双向且分别可寻址的IO线,128字节RAM,2个16位定时计数器,全双工异步串行口,2个中断优先级,5个中断源,片内有时钟振荡器。AT89C51显示模块模数转换模块键盘模块声光报警数模转换模块模拟量输出模拟量输入上位机通信34.1.2AT89C51的功能简介AT89C51单片机的外形结构为40条引脚双排列直插式封装,其引脚排列如下图所示图3单片机引脚图下面按其引脚功能分为四部分叙述这40条引脚的功能。1)、主电源引脚VCC和VSSVCC——(40脚)接+5V电压;VSS——(20脚)接地。2)、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。3)、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当4VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。②ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。④EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。4)、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)①P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。②P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。③P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。④P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL负载。作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。作为第二功能使用时,各引脚的定义如表所示。值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。5P3各口线的第二功能定义:口线引脚第二功能P3.010RXD(串行输入口)P3.111TXD(串行输出口)P3.212INT0(外部中断0)P3.313INT1(外部中断1)P3.414T0(定时器0外部输入)P3.515T1(定时器1外部输入)P3.616WR(外部数据存储器写脉冲)P3.717RD(外部数据存储器读脉冲)4.1.3时钟电路时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。内部时钟方式AT89C51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图4是AT89C51内部时钟方式的电路。图4内部时钟电路4.1.4复位电路设计单片机的初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89C51复位。6复位时,PC初始化为0000H,程序从0000H单元开始执行。除系统的正常初始化外,当程序出错(如程序跑飞)或操作错误使系统处于死锁状态时,需按复位键使RST脚为高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动程序。外部时钟和复位电路与单片机的连接如下图所示。图5内部时钟和复位电路与单片机的连接4.2A/D转换器模拟量输入通道的任务是把在工业现场中采集到的模拟量转换成计算机可识别的数字量。模拟量输入通道一般由信号预处理、多路模拟开关、前置放大器、采样保持器、A/D转换器、接口和控制电路组成。其核心部分是A/D转换器,如8位的ADC0809,12位的ADC574、ADC674、ADC1674,24位的AD7710等。4.2.1A/D转换器的选择目前转换器的型号有很多,精度和位数的选择范围很大。对于本次设计,因为有4个被测参数,可选用8路的转换器。位数越多,精度越高,现在普遍使用的是ADC0809,它的性价比很高,而且也能满足该次设计,因此该设计报告选用的是ADC0809。4.2.2ADC0809功能简介ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式的A/D转换器,把输入的模拟量转换为数字量之后输出,可以和单片机直接接口。7(1)ADC0809的内部逻辑结构图6ADC0809内部逻辑结构图由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。(2)ADC0809的引脚结构图7ADC0809引脚图8各引脚的功能如下:IN0-IN7:8条模拟量输入通道。ADC0809对输入模拟量要求电压范围是0-5V,若信号太小,则必须进行放大;D7-D0:8条数字量输出线。数字信号通过它传给单片机。START:转换启动信号。当START上升沿时,所有内部寄存器清零;下降沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC:转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE:输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。该设计中用P1.1口来进行控制。ADDA~ADDC、ALE:地址输入和控制线。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A、B、C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进行转换。A、B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。VREF(+)、VREF(-):参考电压输入端。VREF可工作在-10~+10V范围内。CLK:时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。因为单片机在非访问外部存储器时,ALE仍以1/6振荡频率固定不变的速率输出,因此该设计中,时钟信号由单片机的ALE端提供。Vcc:电压源输入端。一般用+5V电源供电。GND:接地端。(3)ADC0809的工作方式如下图所示,传感器的输出可以接到ADC0809的IN0~IN7。ADC0809的通道选择地址A,B,C分别由89C51的P0.0~P0.2经地址锁存器74LS373输出提供。当P2.7=0时,与写信号WR共同选通ADC0809。图中ALE信号与ST信号连在一起,在WR信号的前沿写入地址信号,在其后沿启动转换。例如,输出地址7FF8H可选通通道IN0,实现对传感器输出的模拟量进行转换;输出地址7FF9H可选通通道IN1,实现模拟量的转换。图中ADC0809的转换结束状态信号EOC接到80C51的INT1引脚,当A/D转换完成后,EOC变为高电平,表示转换结束,产生中断。在中断服务程序中,将转换好的数据送到指定的存储单元。94.2.3ADC0809与单片机的连接图8ADC0809与单片机连接4.2.4触发器由于ADC0809片内无时钟,可利用AT89C51单片机提供的地址锁存允许信号ALE经D触发器74LS74二分频后获得,ALE引脚的频率是AT89C51时钟频率的1/6。.如果单片机的时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,在二分频后为500KHz,恰好符合ADC0809对时钟频率的要求。74LS74内含两个独立的D上升沿双D触发器,每个触发器有数据输入(D)、10置位输入()复位输入()、时钟输入(CP)和数据输出(Q)。、的低电平使输出预置或清除,而与其它输入端的电平无关。当、均无效(高电平式)时,符合建立时间要求的D数据在CP