—电压表 指导教师:王建强 学院:电气工程 班级:电气0810 1
一、 实验要求
1.应用ADC0832芯片在三个LED数码管显示 2. 显示量程为:0-0.2V显示0-199(mv)
0.2V-2V显示199-1.99(v)
3.实现电压量程的切换,数据采样,电压采样等功能
二、元件分析
1、ADC0832芯片特点
8位分辨率。逐次逼近型。
5V电源供电时,基准电压为5V。输入模拟电压范围为0~5V。 输入和输出电平与TTL和CMOS兼容。 有两个可供选择的模拟输入通道。
在250KHz时钟频率时,转换时间为32 u s。
2、管脚说明
CS片选使能端,低电平有效。
CH0模拟输入通道0,差分输入时。作为IN+或IN一使用。 CH1模拟输入通道1,差分输入时,作为IN+或IN一使用。 GND电源地
DI模拟输入选择输入端。 DO模数转换数据串行输出端。 CLK芯片时钟输入。
VCC/REF芯片工作电源与基准电压输入端。
3、ADC0832工作时序
2
当把ADC0832的CS置高,内部所有寄存器清0,芯片禁止使用。当ADC0832的CS由高变低时,且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
ADC0832配置位逻辑表
输入形式 配置位 CH0 差分 0 0 单端 1 1 CH1 0 1 0 1 选择通道号 CH0 + - + + CH1 - + 在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行 输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
3
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
三、电路图
四、实验内容
1、电路的工作原理
调节滑动变阻器给运放正端输入小于2V的电压,该电压通过运放放大后接入ADC0832,ADC0832在软件设定下对放大后的电压进行AD转换,得到对应的二进制码,再通过软件判断,对该电压进行合适的档位选择(0~0.2V选用25倍档位;0~2V选用2.5倍档位)。选用合适的档
4
位得到正确的二进制码后,进行BCD转换,然后通过LED数码显示读出被测电压的值。
2、电路硬件部分剖析
硬件电路主要由四部分组成,量程选择模块、AD转换模块、数码显示模块、单片机和一些电路。
(1)量程选择模块由可调输入电源、继电器、运算放大器和限压电路组成可调电源由负载5V电压的滑动变阻器构成,调节触头即可改变输入运放“+”端的电压。继电器的作用就是通过开关的变换以改变接入运放“-”端和输出端的电阻。
(2) 档位的选择也是以此为硬件基础的。继电器的电磁铁一端接+5V
电源,另一端则接在NPN型三极管的集电极。三极管的基极则与单片机的P1.2.相连,借助软件设计,改变P1.2的电平即可控制继电器的工作状态,进而改变接入电压的放大倍数,从而达到改变档位的要求。 (3)数码显示模块由三个八段数码管、两片数码管驱动芯片74HC245和一片锁存和缓冲芯片74HC573以及单片机P0口(字形)、P1.5、P1.6、P1.7(字位)构成。
(4) 限压电路主要功能是为了防止电压超过ADC0832的正常转换电压ADC0832芯片主要起着AD转换的作用。单片机用CS52,外围电路包括:6MHZ晶振,复位电路,电源和一些为使单片机正常工作的相应连接。
5
、程序流程图
量 程 选 择
模 拟 转 单 换 片 电 机 路 总设计方框图 LED 数 码 管 显 示 6
3
开始 调用AD转换的子程序 调用转换量程子程序 调BCD码转换子程序 调数码管显示子程序 主程序程序流程图 7
主程序
AD转换子程序
开始 片选CS置低电选择模拟输入通道 八位数进行AD转换 利用Cy存串行数据 A左移一位 将Cy中数据送ACC.0 R7-1=0? A送入30H中 返回主程序 AD转换子程序流程图
8
档位选择程序
开始 N P1.2=1? Y 30H=255? N Y Cy清零 P1.2置低电平,换0~2V档 30H=25 N Cy=1? Y P1.2置高电平,换0~0.2V档 返回AD转换子程序 返回主程序 档位选择程序流程图
9
BCD码转换程序
A中数据除以127对应的AD转换就是二进制码除以2.5,得到实际电压值所对应的二进制码,然后再除以51以得到实际电压值的最高位,故总的来看,A中数据除以127(127=2.5x51)。
开始 将30H中数据送A A中数据乘以200 高字节 存R4 A中数据除以B(100) 商 N 存40H P1.2=1? Y A送 41H B送 42H 42H送 R4 返回主程序 BCD码转换程序流程图
10
显示子程序 P0口送#00H,关显示 P0口送#00H,关显示 开始 字形表首地址送DPTR 字形表首地址送DPTR 中数据送A作字形偏移量 LED_1根据A+DPTR取字形送P0口 LED_2中数据送A作字形偏移量 根据A+DPTR取字形送P0口 P1.5置低平,P1.6、P1.7显置高电平示 P1.6置低平,P1.5、P1.7显置高电平示 P1.7置低平,P1.5、P1.6显置高电平示 P0口送#00H,关显示 第一个数码管显示 第二个数码管显示 字形表首地址送DPTR LED_3中数据送A作字形偏移量 根据A+DPTR取字形送P0口
11
第三个数码管显示 返回主程序 子程序流程图 4、程序
ORG 0000H MAIN: CLR P1.2 CLR 00H SETB P1.4 L1: MOV SP,#60H ACALL DELAY ACALL CONV ACALL JUDGE ACALL DISPLAY LJMP L1
CONV: SETB P3.0 ;初始化通道选择 CLR P3.2 NOP NOP
CLR P3.3 ;拉低/CS端 NOP NOP
SETB P3.2 ;拉高CLK端 NOP NOP
CLR P3.2 ;拉低CLK端,形成下降沿 SETB P3.0 NOP NOP
SETB P3.2 ;拉高CLK端 NOP NOP
CLR P3.2;拉低CLK端,形成下降沿 CLR P3.0 ;1-0选择1通道 NOP NOP
SETB P3.2 ;拉高CLK端 NOP NOP
CLR P3.2 ;拉低CLK端,形成下降
沿
SETB P3.0 NOP NOP
MOV R7,#8 ;准备送下后8个时钟脉
冲
RECEIVE:
MOV C,P3.1 ;接收数据 MOV ACC.0,C
RL A ;左移一次 SETB P3.2 NOP NOP
CLR P3.2 ;形成一次时钟脉冲 NOP NOP
DJNZ R7,RECEIVE ;循环7次 MOV C,P3.1 ;接收数据 MOV ACC.0,C
SETB P3.3 ;拉高/CS端 CLR P3.2 ;拉低CLK端 SETB P3. ;拉高数据端,
回到初始状态
MOV 30H,A RET
JUDGE:JB 00H,LOOP
CJNE A,#0FFH,LOOP1
SETB 00H ;大量程 SETB P1.2 SJMP DONE
LOOP:CJNE A,#19H,LOOP2 CLR 00H ;小量程 CLR P1.2 SJMP DONE LOOP1:CLR 00H CLR P1.2
LCALL BCDCON SJMP DONE LOOP2:JC CLEAR
LCALL BCDCON SJMP DONE CLEAR:CLR 00H CLR P1.2 SJMP DONE DONE:RET
BCDCON: MOV A,30H MOV B,#200 MUL AB
12
MOV R4,B MOV A,R4 MOV B,#100 DIV AB MOV 40H,A MOV A,B MOV B,#10 DIV AB MOV 41H,A MOV 42H,B
DISPLAY:SETB P1.5 SETB P1.6 SETB P1.7 NUMBER1:JB P1.2,LED MOV DPTR,#TAB1 MOV A,40H
MOVC A,@A+DPTR ;
查字形表
MOV P0,A ;P0口作字形 CLR P1.4 SETB P1.4 CLR P1.5 ACALL DELAY SETB P1.5 SJMP NUMBER2
LED:MOV DPTR,#TAB2 MOV A,40H
MOVC A,@A+DPTR ;
查字形表
MOV P0,A ;P0口作字形 CLR P1.4 SETB P1.4 CLR P1.5 ACALL DELAY SETB P1.5
MOV A,41H
MOVCA,@A+DPTR ;查字形表
MOV P0,A
CLRP1.4 ;P0口作字形 SETB P1.4
CLR P1.6 ACALL DELAY SETB P1.6
NUMBER3:MOV DPTR,# TAB1 MOV A,42H
MOVC A,@A+DPTR ;查字形表
MOV P0,A
CLR P1.4 ;P0口作字形 SETB P1.4 CLR P1.7 ACALL DELAY SETB P1.7 RET TAB1:
DB
0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H ;不带小数点的字形表
TAB2:
DB
0FDH,61H,0DBH,0F3H,67H,0B7H,0BFH,0E1H,0FFH,0F7H ;带小数点的字形表
DELAY: MOV R3,#0AH ;延时程序 DELAY1:MOV R4,#0FFH DELAY2:DJNZ R4,DELAY2 DJNZ R3,DELAY1 RET
13
NUMBER2:MOV DPTR,# TAB1 五、仿真图
六、总结
这次的单片机课程设计给了我很大的收获,在做课程设计的实验前,我以为不会难做,应该很快就能将实验报告做完。直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅。我认为在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础。做这个实验的时候,你要清楚各个元件的功能。如何使用。例如ADC0832芯片的使用功能,如果你不清楚它的功能,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.通过这次单片机的课程设计,我对
14
单片机的知识有了更深的认识和了解,学习到了基本理论在实践中综合运用的初步经验,掌握了ADC0832的功能应用,电压变设计的基本方法、设计步骤,培养综合设计与编程的能力。更重要的是培养了我们的实践技能,同时提高了硬件电路的分析和解决实际问题的能力。而且使我学到了不少实用的知识。更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅。所以我们更应该学好课内的知识才能不断地应用于实践。在实践中不断提高自己的能力。
15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务