继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
放大器:能把输入讯号的电压或功率放大的装置,由电子管或晶体管、电源变压器和其他电器元件组成。
P1.2控制继电器的工作状态,当P1.2低电平时,继电器处于常闭状态,那么相对应的运放的放大增益为25倍。而当P1.2为高电平时继电器工作,其对应的放大增益即变为2.5倍。对于一个模拟输入,现将其放大2.5倍,然后由AD输入并相应转化,如果它的输出要是小于0.5V,也就是19H,则选择此档位是不精确的,也说明此时的输入电压介于0~200mV之间。那么我们就需要让P1.2置低电平,将相应的放大倍数改成25以提高转换精度。若其满足相应的条件则直接将其转换成BCD码并直接送数显示即可。
三. 实验原理和设计思路
由ADC0832采集电压信号,电压信号经过ADC0832变成相应的数字信号进入89s51,89s51根据输入电压的大小通过继电器和放大器电路选择对应的放大倍数及量程,然后显示在数码管上。
6
最终电路图如下:
1、 系统组成框图如下
STC89C51 ADC0832 电源、时钟、复位电路 显示电路 输入电压
7
程序流程图:
开始 清除显示器 启动AD转换 AD转换完成 是 转换数据送A BCD转换调整 输出显示 8 否2、
3、 ADC0832数据读取程序流程图
开始 初始化通道选择 ADCLK清零、CS置低 产生CLK信号 输入通道控制串行循环送数 CS 、CLK初始化 将值送入指定寄存器 结束
9
四. 程序设计
ORG 0000H LJMP MAIN ORG 0600H
MAIN: MOV SP,#70H ;设堆栈起始地址
MOV R0,#40H ;将转换得到BCD码高位地址给R0 MOV R2,#0DFH ; CLR 20H.0 ;
START: LCALL TOAD ; MOV 30H,A ; JB 20H.0,READY
LCALL SWITCH ; JB 20H.0,START
READY: LCALL TRANSFER ; LCALL DISPLAY ; CLR 20H.0
SJMP START ;
;AD转换电压采集程序
TOAD: CLR P3.3 ;CS=0
MOV A,#03H ; MOV R3,#03H
LOOPB1: CLR P3.2 ;CLK=0 RRC A MOV P3.0,C NOP
SETB P3.2 ;CLK=1 DJNZ R3,LOOPB1
CLR P3.2 ; NOP
SETB P3.2 ;CLK=1 MOV R3,#08H
LOOPB2: CLR P3.2 ;CLK=0 MOV C,P3.1 ;
将高位LED数码位选择地址给R2 调用AD电压采集程序 将采集回来的数据存储到30H 调用量程判断切换程序 调用BCD码换算程序 调用显示程序 返回作循环电压测量 起始位和配置位为011 通道稳定脉冲 读入一位数据
10