山东大学威海分校2009暑期课程设计1自动测试系统及接口技术课程设计报告褚路路[20068002051]山东大学威海分校信息工程学院电子信息科学与技术山东大学威海分校2009暑期课程设计11课程设计任务简介此课程设计的主要任务是利用传感器采集温度、湿度等自然量,通过所学的信息处理方法,将这些自然的模拟量转化为便于现代计算机等数字电路系统进行处理的数字的离散的信息量。其中涉及传感器信息采集,A/D转换及其接口技术,信号的变换及调理等方面的内容。2测温系统总体设计系统总体框图如下:对于温度的采集使用Pt100建立电桥进行精确信号采集。采集到的初始信号经过信号调理电路的初步处理后,再传递给A/D转换电路进行模拟到数字的转换,得到的数字信号则接下来送给单片机处理,最后,单片机控制信息的显示输出。3测温系统具体硬件设计3.1信号采集及调理信号采集、调理电路见下图:Pt100温度采集信号调理电路A/D转换单片机信息处理结果显示山东大学威海分校2009暑期课程设计2热电阻Pt100的变换方式采用桥式电路,滑变电阻W1、W2是用来对温度进行校正的。R1、R2、R3与Pt100组成电桥,W1是电桥灵敏度调节电阻,W2是调零电阻。Pt100的两端并联了一个电容C2,其目的是平稳干扰或信息本身产生的跳变,尽量不让系统产生数字的大的跳变。信号调理电路使用的是高精度单运放OP07。由上图可以看出其运放增益G=R8/R5=1。其主要作用是将电桥输出的双端信号转变成为单端信号。该电路的测温灵敏度是1mv/℃。注意:在本课程前期的电路实际搭建中,经常有同学出现显示的结果为负值的现象,此时需要把高精度单运放OP07的两个与电桥的接点对调一下便可解决。3.2A/D转换电路考虑到A/D转换的精度、速度以及和微处理器的接口连接方便性,A/D转换电路采用了四位半的双积分式A/D转换器ICL7135,其连接电路图如下:山东大学威海分校2009暑期课程设计3下图则为ICL7135的外围配置电路,如参考电压Vref获取电路、时钟CLK产生电路:山东大学威海分校2009暑期课程设计4本系统中,ICL7135的时钟信号CLK由8051的石英晶体振荡器的引脚X1引出,经过两片双D触发器74LS74进行24=16分频后加到ICL7135的时钟输入端。而单片机的石英晶体振荡器为12MHz,,其经过16分频后得到f=12×106/16=750KHz。故可以得知,ICL7135的输入时钟周期为T=1/f=1.333uS。从而可以得到完成一次A/D转换的总时间=转换时间+数据输出时间=54.65mS。ICL7135的时钟频率典型值为200KHz,最高允许值为1200KHz,故f=750KHz符合要求。3.3单片机处理单元单片机使用8051单片机,其电路连接如下图:为了使用更多的I/O端口,单片机的P0口连接了10K的上拉电阻。且P0口用于段码信息的传送。图中与P0口直接相连接的8个510Ω的电阻为7段数码管的段限流电阻。P2.0~P2.4用于5个7段数码管的位选通。P1.0~P1.3用于显示BCD码的输入。P3.2连接ICL7135的数据输出允许端STB,即8051采用中断的方式读取ICL7135输出结果。P3.3连接ICL7135的信号极性输出端POL。为高电平时,则ICL7135输出的结果为正,为低电平则为负。P3.4连接ICL7135的超量程信号输出端OVR。为高电平时,则ICL7135输出的结果超出量程范围。P3.5连接ICL7135的欠量程信号输出端UNR。为高电平时,则ICL7135的A/D转换山东大学威海分校2009暑期课程设计5的结果不足满量程的9%。P3.6连接ICL7135的忙碌信号输出端BUSY。为高电平时,则ICL7135仍然处于积分过程中,A/D转换正在进行,为低电平则A/D转换完毕。P3.7连接ICL7135的运行保持控制端R/H。为高电平时,则ICL7135自动进行A/D转换,为低电平时,ICL7135的输出结果将保持不变,直到为高电平时才能改变读数,但是此时的A/D转换仍旧进行。3.4信息显示电路由于A/D转换器使用了ICL7135,它是BCD码结果的输出,四位半双积分式,故信息的显示电路采用5个LED7段数码管,其电路连接如下图:7段数码管为共阳数码管,使用PNP三极管8550作为驱动。根据该电路图可知,当三极管8550的基极为低电平时三极管才导通,也就是当P2.0~P2.4的输出为低电平时,对应的数码管才会被点亮。4测温系统软件设计软件主要实现的功能有三大块:控制ICL7135的A/D转换读取ICL7135的结果信息显示信息4.1控制ICL7135的A/D转换ICL7135A/D转换的控制十分容易,只要通过把P3.7置为高电平就可以启动ICL7135的A/D转换。山东大学威海分校2009暑期课程设计64.2读取ICL7135的结果信息由于P3.2连接ICL7135的数据输出允许端STB,则使用8051采用外部中断0的方式读取ICL7135输出结果。相应地,与中断有关的寄存器是配置分别如下:IE=81H;从产生第一次中断起就开始计数,计数周期为5。且每次中断后都读入BCD数据,接着把读入的BCD数据转换成十进制数据,存储在单片机内存中。该中断的程序流程图如下:4.3显示结果信息本系统采用5个7段共阳数码管,故在显示的时候需要采用动态扫描方式。即每隔一定的时间点亮一个数码管。可以采用定时器0产生3ms的定时中断,每中断一次就顺序点亮一个数码管。对应定时器0的设置:定时器0工作在方式1状态,则定时器方式寄存器TMOD=01H。由于中断周期为3ms,故定时器0的计数器初始值=216-(3ms×12MHz)/12=62536。则TH0=62536/256,TL0=62536%256。每次产生中断时计数,计数周期也为5。每次中断产生后,把对应的数据(即由BCD码转换而来的十进制信息)再转换为对应的段码信息,输出该段码信息。选通对应的数码管。中断入口读入一次BCD码数据计数值=5?计数值+1计数值=0NOYBCD码转换为十进制存储中断返回山东大学威海分校2009暑期课程设计7该中断的程序流程图如下:中断入口重装计数初值计数+1计数值=5?数据转换成段码信息并输出选通对应的数码管打开定时器0中断中断返回计数值=0NY