目录1、设计任务..........................................................................................11.1设计目的.......................................................................................11.2设计指标及要求..............................................................................12、设计思路与总体框图...................................................................13、系统硬件电路的设计…….........………….....…………..…………….23.1多用表主电路…….......…………….....……………………..........23.2电阻测量输入电路………………….....……………………..........23.3电压测量输入电路……........……………………………………….33.4电流输入测量电路........................................................................34、系统的软件设计..............……………..............……………………...45、系统的设计仿真............……………..............……………………...55.1仿真原理图………………………………………………………….….55.2实物图….....…………...............………………………………………65.3主要元器件功能介绍…………………………………………….….66、总结与体会…...........…………...............……………………………..206.1总结….....…………...............……………………………………….136.2体会….......………...............…………………………………..........137、参考文献....................……….....…………….…………………….141、设计任务1.1设计目的采用8位8路A/D转换器ADC0809和AT89S52单片机,设计一台数字多用表,能进行电压、电流和电阻的测量,测量结果通过LED数码管显示,通过按键进行测量功能转换。1.2设计指标及要求电压测量范围0~5V,测量误差约为0.02V,电流测量范围1~100mA,测量误差约为0.5mA,电阻测量范围0~1000Ω,测量误差约为2Ω。2、设计思路与总体框图2.1设计思路首先利用P0口数据地址复用,将地址通过P0口输入到单片机中。再利用模数转换将模拟信号转换成数字信号,再次利用P0口将其输入到单片机。最后,充分利用单片机强大的运算转化功能将其转成适当的二进制信号控制数显以确保正确的显示被测量的读数。2.2总体框图89S52振荡电路复位电路ADC0809驱动LED显示待测电阻电路阻待测电流电路待测电压电路3、系统硬件电路的设计3.1数字多用表的主电路数字多表仪表主电路如图1所示。89S52单片机通过线选方式扩展了A/D转换器ADC0809和4位LED数码管,单片机的P2.7引脚作为ADC0809的片选信号,因此A/D转换器的端口地址为7FFFH.片选信号和WR信号一起经或非门产生ADC0809的启动信号START和地址锁存信号ALE。片选信号和RD信号一起经或非门产生输出允许信号OE,OE=1时选通三态门使输出锁存器中的转换结果送入数据总路线。ADC0809的EOC信号经反相后接到89S52的1INT引脚,用于产生A/D转换完成中断请求信号。ADC0809芯片的3位模拟量输入通道地址输入端A、B、C分别接到89S52的P0.0、P0.1和P0.2,故只要向端口地址0C000H分别写入00H~07H,即可启动模拟量输入通道0~7进行A/D转换。ADC0809参考正电压为5V,参考负电压为0V,时钟输入为2MHz。图1数字多用表的主电路图单片机的P1.0~P1.2引脚通过一个转换开关接地,通过判断P1.0~P1..2引脚电平的高低,决定是否进行电阻测量、电压测量或电流测量。3.2数字多用表的电阻测量输入电路图2所示为数字多用表的电阻测量输入电路。运算放大器的反馈电阻Rx作为待测量电阻,通过1000Ω电阻R19接到电源-5V。假定运算放大器理想,那么放大器的输出电压RV=195RRx,将RV送给ADC0809,转换后得到数字量为DV=5255RV。单片机读取A/D转换数据,再经过逆向运算可得Rx=25519RDV,注意此时得到的Rx为二进制数,需要转化为十进制数后才能送给数码管显示。程序中采用4字节专利号除法,连续进行4次除以10的除法,依1000Ω范围内不超过2Ω,如果测量其他范围的电阻,需要修改19R的数值,或者采用其他电路。3.3电压测量输入电路图3所示为数字多用表的电压测量输入电路。待测电压经过低通滤波器滤除高频干扰,再通过同相放大器送给ADC0809,电压测量范围为0~5V,ADC0809的分辨率为8位,测量误差为5/2550.02V.3.4电流输入测量电路图4所示为数字多用表的电流输入电路。电流测量范围为1~100mA,因为ADC0809是电压转换器件,必须交电流转换为电压才能进行测量,这可以通过串接电阻RL来实现,注意RL必须很小(例如00.1Ω),否则影响电流数值。由于待测电流和RL都很小,RL两端的电压也很小,必须将其放大到ADC0809能够分辨的范围之内。假设待测电流大小为I,RL两端节点电压分别为VA和VB,VA经过反向缓冲电路之后VC=-VA。VA和VB经过差分放大电路得:VD=-(VB-VA)2729RR(VB-VA)27292729RRRIRRL再经过同相放大电路得:AV=VD3521.0)1()1(303227293032IRRRRRIRRL将AV送给ADC0809转换后得到数字量为:DAV=5897601.052553521.05255IIAV单片机读取A/D转换数据,再经过逆向运算可得I=897601.05DAV有两个问题值得注意,首先,由于电流的单位是mA,不能直接计算I的值应先变换为I=8976050000DAV再进行计算;其次,这么算出来的电流值误差比较大,原因是LM324不是精密理想运算放大器,当输入信号很小时误差比较大。因此需要对计算数值进行修正,方法是先计算DAV*50000,然后将结果减去102000这个数值是通过反复测试并经过曲线拟合得到的。4、系统的软件设计数字多用表的软件程序(略)5、系统的设计仿真5.1仿真原理图ABCDEFGH1234ABCDEFGH231U4:A74LS02564U4:B74LS02P1XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U18051+5VOUT121ADDB24ADDA25ADDC23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC08088910U4:C74LS02C110uR110kC322pX1CRYSTALC222pD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1CLK11U374LS374待测电压+5V10kVVAV1234测电阻测电压测电流CV+5V500CA-5V待测电阻709R1910001098411U6:CLM324待测电流测量转换111213U4:D74LS02RDP2.7WR12U5:A74LS04P2.7WRRDVCVDAVVAVBR2030RL0.1321411U7:ALM324567411U7:BLM324R25100kR26100kR27100kR28100kR292.2M+5V-5V121314411U6:DLM324R24100kR30100kR321.5M待测电流反相缓冲电路差分放大电路R210321411U6:ALM324567411U6:BLM324R1340kR1410kR1540kR1640kR1710kC50.1uFC60.1uFC70.33uFC80.1uF-15V+15V低通滤波器同相放大电路VVCVR1240kCA5.2实物图5.3主要元器件功能介绍1、AT89S52芯片功能特性描述AT89S52引脚框图:图2.12AT89S52芯片引脚图AT89S52主要性能:1、与MCS-51单片机产品兼容2、8K字节在系统可编程Flash存储器3、1000次擦写周期4、全静态操作:0Hz~33Hz5、三级加密程序存储器6、32个可编程I/O口线7、三个16位定时器/计数器8、八个中断源9、全双工UART串行通道10、低功耗空闲和掉电模式l1、掉电后中断可唤醒l2、看门狗定时器13、双数据指针l4、掉电标识符功能特性描述:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。VCC:电源GND:地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器