1题目背景与意义本课程设计以《计算机控制系统》课程理论为基础,以其他电子类、计算机及接口类相关课程内容为辅助,在实践中锻炼学生的系统设计能力、理论应用能力、总结归纳能力以及自我学习能力,提高其实践能力、创新意识与创业精神。2设计内容设计一个基于单片机的具有A/D和D/A功能的信号测控装置。要求该信号测控装置能够接入典型传感器、变送器信号,同时可输出标准电压/电流信号。并满足抗干扰、通用性、安全性、性价比等原则性要求。标准电压/电流信号此处定为:0~5V/4~20mA(0~20mA3系统总体框架计算机控制系统由计算机、外部设备、操作台、输入通道、输出通道、检测装置、执行机构、被控对象以及相应的软件组成,如图1所示。图1计算机控制系统的组成4系统硬件设计系统的整体结构如图2所示,系统由单片机系统和输入通道,输出通道组成。输入通道包括信号处理和A/D转换,输出通道则由D/A转换器组成。图2系统的整体结构图4.1单片机最小系统设计单片机是在一个尺寸有限的芯片上把运算器电路、控制器电路、一定容量的存储器,以及输入输出的接口电路集成为一体的微型计算机。它在制作上既要求高性能、结构简单灵活,又要求工作稳定可靠。尽管单片机种类繁多,但无论从世界范围还是从国内范围来看,使用最为广泛的应该数MCS51单片机。MCS-51是intel公司生产的一个单片机系列名称。在本次设计中我采用的单片机就是intel公司生产的MCS51系列单片机中的8051单片机,它的引脚图如下图38051单片机引脚图表面上看它很简单,但它仍由运算器、控制器、存储器、输入设备和输出设备五部分组成。单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。电源:(1)VCC-芯片电源,接+5V;(2)VSS-接地端;时钟:外接晶振或外部振荡器引脚XTAL1-(19脚):当采用芯片内部时钟信号时,接外部晶振的一个引脚;当采用外部时钟信号时,此脚应接地。XTAL1-(18脚):当采用芯片内部时钟信号时,接外部晶振的一个引脚;当采用外部时钟信号时,外部信号由此脚输入。控制线:控制线共有4根,ALE/PROG:地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址。PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。PSEN:访问外部程序存储器选通信号,低电平有效,用于实现外部程序存储器的读操作RST/VPD:复位/备用电源。RST(Reset)功能:复位信号输入端。VPD功能:在Vcc掉电情况下,接备用电源。EA/Vpp:内外ROM选择/片内EPROM编程电源。①EA功能:内外ROM选择端。②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。多功能I/O引脚P0口-(32~39脚):P0数据/地址复用总线端口。P1口-(1~8脚):P1静态通用端口。P2口-(21~28脚):P2动态端口。P3口-(10~17脚):P3双功能静态端口。除作I/O端口外,它还提供特殊的第二功能,其具体含义为:P3.0-(10脚)RXD:串行数据接收端。P3.1-(11脚)TXD:串行数据发送端。P3.2-(12脚)INT0:外部中断0请求端,低电平有效。P3.3-(13脚)INT1:外部中断1请求端,低电平有效。P3.4-(14脚)T0:定时器/计数器0计数输入端。P3.5-(15脚)T1:定时器/计数器1计数输入端。P3.6-(16脚)WR:外部数据存储器写选通,低电平有效。P3.7-(17脚)RD:外部数据存储器读选通,低电平有效。4.2A/D转换电路本次设计采用的是ADC0809是Nsc公司生产的CMOS逐次比较式A/D转换器。ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。通过P2.7来控制A/D是否开始工作。图4A/D转换电路A/D转换内部结构ADC0809的内部结构框图如图5所示。通过引脚IN0~IN7可输入8路模拟电压,但每次只能转换一路,其通道号由地址信号ADDA、ADDB、ADDC译码后选定,如表10-4所示,片内有地址锁存和译码器。转换结果送入三态输出锁存缓冲器,当输出允许信号OE有效时才输出到数据总线上。图5ADC0809内部结构图ADC0809引脚信号及功能如下所示。ADC0809为28引脚。其主要引脚信号如下:图6ADC0809引脚及引脚功能ST为启动模/数转换引脚,当该引脚收到高电平时,开始启动A/D转换。EOC为模/数转换结束输出引脚,转换结束时,该引脚输出高电平。在启动A/D转换后,可以通过对该引脚状态查询(读入)得知模/数转换是否完成OE为输出允许控制,该引脚用于控制选通三态门。A/D转换完成得到的数字量存在芯片内。当OE=1时,三态门打开,A/D转换后得到的数字量才可通过三态门到达数据总线,进而被读入CPU。CLK为外加时钟输入引脚。其频率为50~800kHz,使用时常接500~600KhALE为模拟通道锁存信号。当此引脚由低电平到高电平跳变时,将加到ADDC、ADDB、ADDA引脚的数据锁存并选通相应的模拟通道。4.ADC0809的转换控制。ADC0809的转换时序如下图。首先给出ADC通道地址A、B和C,它们在ALE的上升沿被锁存;然后在ST(StartConversion)的下降沿开始转换且EOC变低;EOC变高时表示转换结束,这时令OE有效,即可读到转换结果。图7ADC0809时序图4.2D/A转换电路4.2.1D/A转换的工作原理D/A转换有多种方法,如权电阻网络法、T形电阻网络法和开关树法,但最常见的是T形电阻网络法。4.2.2D/A转换器的主要性能指标(1)分辨率分辨率指D/A转换器所能分辨的最小量化信号的能力。这是对微小输入量变化的敏感程度的描述,一般用转换器的数字量的位数来表示。对于一个分辨率为n位的DAC,它能对满刻度的2-n倍的输入变换量做出反应。常见的分辨率有8位、10位、12位等。(2)建立时间建立时间是DAC转换速度快慢的一个重要参数,指DAC的数字输入有满刻度值的变化时,输出模拟信号电压(或电流)达到满刻度值1/2LSB时所需要的时间。对电流输出形式的DAC,建立时间是很短的;而对电压输出形式的DAC,建立时间主要是其输出运放所需的响应时间。一般DAC的建立时间为几个纳秒至几个微秒。本次设计选用8位DAC芯片———DAC0832图8DAC0832引脚图1.技术参数内部采用R-2R梯形电阻网络,片外为20引脚双列直插式封装。分辨率:8位。建立时间:1μs,电流型输出。单电源:+5~+15V。低功耗:200mW。精度:+1LSB。线性误差:+0.1%。基准电压范围:-15~+15V。2.内部结构和引脚DAC0832由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成,内部逻辑结构如图8所示图9内部逻辑结构4.2.3DAC0832的工作方式根据对DAC0832的输入锁存器和DAC寄存器的不同的控制方法,DAC0832有如下三种工作方式。(1)单缓冲方式此方式控制输入寄存器和DAC寄存器同时跟随或锁存数据,或只控制这两个寄存器之一,而另一个接成直通方式。此方式适用于只有一路模拟量输出或几路模拟量非同步输出的情形。参考电路如下图10所示图100832单缓冲方式接口(2)双缓冲方式此方式分别控制输入寄存器和DAC寄存器,适用于多路D/A同时输出的情形。它使各路数据分别锁存于各输入寄存器,然后同时(相同控制信号)打开各DAC寄存器,实现同步转换。参考线路如下图11所示,程序片段如下:图110832双缓冲方式接口4.2.4锁存器本设计采用74LS373锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74LS373芯片。74LS373引脚图如下图所示图1274LS373引脚图图1374LS373内部逻辑图(1).1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态);(2).当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态.74ls373与单片机接口:1D~8D为8个输入端。1Q~8Q为8个输出端。G是数据锁存控制端;当G=1时,锁存器输出端同输入端;当G由“1”变为“0”时,数据输入锁存器中。OE为输出允许端;当OE=“0”时,三态门打开;当OE=“1”时,三态门关闭,输出呈高阻状态。在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如上图所示。其中输入端1D~8D接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。输出允许端OE接地,表示输出三态门一直打开。4.38051扩展I/O接口设计选择8255A与8051单片机的接口电路。4.3.1选择8255芯片依据8051单片机是Intel公司的产品,而Intel公司的配套可编程I/O接口芯片的种类齐全,这就为MCS-51单片机扩展I/O接口提供了很大的方便。Intel公司常用的外围I/O接口芯片有:⑴8255A:可编程的通用并行接口电路(3个8位I/O口)⑵8155H:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/O口,256个RAM字节单元,1个14位减法定时器/计数器)由于本次设计不用到定时器/计数器,而且8051单片机本身的定时器/计数器就已经足够,前边又已经设计了扩展静态RAM,数据存储器的容量也已足够,因此,选择较为简单的8255A接口芯片就可以了。4.3.28255芯片说明8255A是Intel公司生产的可编程并行I/O接口芯片,它具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路,8255A的引脚及内部结构如图14、15所示。①8255A引脚说明8255A共有40只引脚,采用双列直插式封装,其引脚说明如下:⑴D7-D0:三态双向数据线⑵CS:片选信号线,低电平有效,表示本芯片被选中⑶RD:读出信号线,低电平有效,控制8255A中数据的写入⑷WR:写入信号线,低电平有效,控制向8255A数据的写入⑸Vcc:+5V电源⑹PA0-PA7:A口输入/输出线⑺PB0-PB7:B口输入/输出线⑻PC0-PC7:C口输入/输出线⑼A0-A1:地址线,用来选择8255A内部的4个端口图148255A引脚图②8255A内部结构说明8255A内部结构包括3个并行数据输入/输出端口,2个工作方式的控制电路、1个读/写控制逻辑电路和8位数据总线缓冲器。其各部件功能如下:⑴端口A、B、CPA口:1个8位数据输出锁存器和缓冲器,1个8位数据输入锁存器PB口:1个8位数据输出锁存器和缓冲器,1个8位数据输入缓冲器PC口:1个8位输出锁存器,1个8位数据输入缓冲器通常PA口、PB口作为输入/输出口,PC口可作为输入/输出口,也可在软件的控制下,分为2个4位端口,作为端口A、B选通方式操作时的状态控制信号。⑵A组和B组控制电路这是2组根据CPU写入的命令字控制8255A工作方式的控制电路。A组控制PA口和PC口的上半部(PC4-PC7);B组控制PB口和PC口的下半部(PC0-PC3),并根据命令字对端口的每一位实现按位置位或复位。⑶数据总线缓冲器数据总线缓冲器是1个三态双向8位缓冲器,作为8255A与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。⑷读