答案研究院标准资料研究所5985771848路温度巡检仪设计任务:8路温度巡检仪可以测量0-300oC范围内的8路输入温度值,并能在5位LED数码管上轮流显示,最高位显示通道数。测量最大分辨率为0.05oC。方案确定:8路温度巡检仪电路由A/D转换,多路数据选择,数据处理及显示控制组成。电路原理图如图所示。A/D采集由集成电路AD7705组成,数据选择开关由CD4051组成,地址线决定对哪一路进行数据转换.扩展的外围芯片采用串行接口芯片,使整个系统体积小,功耗低,有极好的可维护性和较强的抗干扰性能。单片机晶振为12M,AD7705的时钟线接单片机的LAE端,它将产生2M的时钟。单片机P0口为数码管的段码,P2口为位选。P3.0为A/D数据输入端,采用串行通信的方式0进行数据的读入。系统硬件设计:1、A/D采样模块:在这一部分电路中,AD7705是用于低频测量系统的前端器件,它分辨率高,且有节电模式,能够满足高精度和低功耗的要求。此外,AD7705片内还有数字滤波电路、校准电路和补偿电路,因而能更好地保证高精度的实现温度测量。AD7705使用5V单电源,它有两个模拟差分输入通道,在电源为5V、参考电压为3.3V.AD7705可直接接收传感器产生的小信号以进行A/D转换并输出串行数字信号。它采用Σ-Δ技术来实现16位A/D转换。采样速率由MCLKIN端的主时钟和放大器的可变增益来决定。实际上,AD7705同时可以对输入信号进行片内放大、调制转换和数字滤波处理。其数字滤波器的阻带可编程控制,以便调节滤波器的截止频率和输出数据更新速率。关于AD7705基准电压的选择中,为了测量的精度,没有直接将电源电压作为基准电压,而是选用专门的稳压集成芯片ASM1117.并且要进行去耦处理。该模块的电路图如右图所示。2、数据选择模块:该系统选用的CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定。“INH”是禁止端,当“INH”=1时,各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰-峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=+5V,VSS=0V,当VEE=-5V时,只要对此模拟开关施加0~5V的数字控制信号,就SCLK1MCLKIN2MCLKOUT3CS4RESET5AIN2(+)6AIN1(+)7AIN1(-)8REFIN(+)9REFIN(-)10DRDY12DOUT13DIN14VDD15GND16AIN2(-)11U1AD7705VCC10KR6DRDYVCCVCC_3P3GNDGND1OUT2IN3U2BASM11173.3VCC10μFC4103C5104C6VCC_3P3P3.1ALEP3.0答案研究院标准资料研究所598577184可控制幅度范围为-5V~+5V的模拟信号。该系统选用两快CD4051,作为8路通道的选择,因为A/D7705的模拟输入是以差分信号的方式输入,所以将两块CD4051的地址线(A.B.C)分别连到一起,使输入的差分信号同时选通。U3与U4的第3管脚分别接AD7705的模拟输入端。该模块的具体电路图如下图所示,在实际应用中,为了使得它们的导通特性相同,要选择同一型号的CD4051.3、数码管显示模块:该系统用动态扫描的方式进行显示。在硬件设计中将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。动态扫描显示的原理是轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。该方案与静态显示相比,硬件电路比较复杂,成本较高。动态显示模块电路图如下图所示.在该电路中选用限流电阻为330Ω,但一定要加上它,因为每一个段码的发光二极管所能承受的最大电流为10mA-20mA。在电源电压为5V时,如果不加限流电阻,则流过发光二极管的电流会有几百毫安,这样很快会烧坏发光二极管。还需要说明的一点是,该系统选用共阳极数码管,这样在段码控制端口(P0口)为低电平时数码管导通点亮。为什么选用共阳极数码管呢?因为51单片机中或者是其它的一些集成电路中,它的灌电流要大于其输出电流,所以要选用共阳极数码管,让P0口以灌电流的方式提供驱动电流,以提高驱动能力。还需要特别说明的一点是,用端口不能直接去驱动每个数码管的位选端口,因为51单片机的每个端口只能提供20mA的电流,如果去驱动的话,会很快烧坏单片机的端口。A1f2g3e4d5A6c8DP7b9a10D1A1f2g3e4d5A6c8DP7b9a10D2A1f2g3e4d5A6c8DP7b9a10D3A1f2g3e4d5A6c8DP7b9a10D4abcdefgdpabcdefgdpabcdefgdpabcdefgdpabcdefgdp1KR21KR31KR41KR5T19012T29012T39012T49012VCC330ΩR31330ΩR38P2.0P2.1P2.2P2.3X62X41X3X74VCC16X55EN6X013VEE7GND8X312C9B10A11X215X114U3CD4051BMX62X41X3X74VCC16X55EN6X013VEE7GND8X312C9B10A11X215X114U4CD4051BMABCVCCx00x01x02x03x04x05x06x07x10x11x12x13x14x15x16x17AIN1AIN2答案研究院标准资料研究所598577184系统硬件电路图33pFC133pFC24.7μFC3S0SW-PB1212M10KR1VCCVCCA1f2g3e4d5A6c8DP7b9a10D1A1f2g3e4d5A6c8DP7b9a10D2A1f2g3e4d5A6c8DP7b9a10D3A1f2g3e4d5A6c8DP7b9a10D4abcdefgdpabcdefgdpabcdefgdpabcdefgdpabcdefgdp1KR21KR31KR41KR5T19012T29012T39012T49012VCCSCLK1MCLKIN2MCLKOUT3CS4RESET5AIN2(+)6AIN1(+)7AIN1(-)8REFIN(+)9REFIN(-)10DRDY12DOUT13DIN14VDD15GND16AIN2(-)11U1AD7705VCC10KR6VCCDRDYDRDYVCCX62X41X3X74VCC16X55EN6X013VEE7GND8X312C9B10A11X215X114U3CD4051BMX62X41X3X74VCC16X55EN6X013VEE7GND8X312C9B10A11X215X114U4CD4051BM10KR710KR8200RR9tRT1PT100VCC10KR1010KR11200RR12tRT2PT10010KR1310KR14200RR15tRT3PT10010KR1610KR17200RR18tRT4PT100ABCCBA10KR3010KR19200RR20tRT5PT10010KR2110KR22200RR23tRT6PT10010KR2410KR25200RR26tRT7PT10010KR2710KR28200RR29tRT8PT100VCCVCCVCCVCCVCCVCCVCCVCCx00x01x02x03x04x05x06x07x00x01x02x03x04x05x06x07x10x11x12x13x14x15x16x17x10x11x12x13x14x15x16x17VCCVCC_3P3GNDGND1OUT2IN3U2BASM11173.3VCC10μFC4103C5104C6VCC_3P3330ΩR31330ΩR38EA/VPP31XTAL119XTAL218RST9P3.7(RD)17P3.6(WR)16P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78(AD0)P0.039(AD1)P0.138(AD2)P0.237(AD3)P0.336(AD4)P0.435(AD5)P0.534(AD6)P0.633(AD7)P0.732(A8)P2.021(A9)P2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(A15)P2.728PSEN29ALE/PROG30(TXD)P3.111(RXD)P3.010GND20VCC40U1AT89C51答案研究院标准资料研究所598577184系统软件设计:程序设计思想是首先上电/复位AD7705,配置AT89C51单片机的串行接口,然后将AD7705的通道1原始化,留心读写数据之前必须调用重新排序子程序。查询DRDY引脚,如果为低电平,则读通道数据寄存器,把数据转化为温度值,再调显示子程序,调延时,返回,继续采集数据,查询DRDY,显示,直到结束。主函数系统上电后,对AD7705进行初始化。然后调用显示子函数和A/D转换测量子函数进入循环,系统默认依次循环显示8个通道的电压值,每个通道的数据显示时间在0.5s左右,温度测量的周期为4s。主函数执行流程图如图()所示。主程序流程图显示子函数显示功能采用动态扫描法实现5为数码管的数值显示。测量所得的A/D转换数据放在8个定义的ad_data[8]内存单元中,测量所得的A/D数据在在显示时需经过转换变成十进制BCD码。列扫描采用扫描字代码,每位LED显示时间为1ms,每路温度数据显示时间为0.5秒。模/数转换测量子函数模/数(A/D)转换测量子函数用来控制对AD7705和CD4051的八路模拟输入的微小信号进行A/D转换并将对应的数值移入内存单元。程序流程图如图所示。开始初始化调用A/D转换子函数调用显示子函数开始启动一次转换CD4051地址加一地址小于8?答案研究院标准资料研究所598577184YNA/D转换测量子函数流程图程序清单:#includereg51.h#defineAddr_channelP1//八路通道地址端口typedefunsignedcharuchar;//用关键字宏定义,其效率高typedefunsignedintuint;sbitDRDY=P3^2;sbitDP=P0^7;/***********内存单元定义*************///code以节省内存单元ucharcodeseg7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9段码译码数组ucharcodescan_con[5]={0xef,0xf7,0xfb,0xfd,0xfe};//4位列扫描控制字0xfe,0xfd,0xfb,0xf7,0xefuintdataad_data[8]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};//8个通道AD数据内存单元uint_dataad_data_buff[3]={0x0000,0x0000,0x0000};uchardatadis[5]={0x00,0x00,0x00,0x00,0x00};//4个显示单元和1个数据存储单元/************延时1ms函数*******************///减运算以节省代码存储空间voiddelay1ms(uintt){uinti,j;for(i=t;i0;i--)for(j=120;j0;j--);}/*******对八位数据进行倒序处理函数*******/ucharreverse_order(ucharo