APP下载

基于ADC0804、TC7107模/数转换器的仿真设计

2021-10-13印健健

电子制作 2021年19期
关键词:数码管量程模拟量

印健健

(江苏商贸职业学院,江苏南通,226000)

0 引言

A/D(模/数)转换器的功能就是将模拟量量化,用N位二进制数或BCD码表达出来。实际上,用数字表示模拟量的大小就是对模拟量进行了量化。例如电池电压为1.5V,温度为28℃等。由于模拟量是连续变化的,具有无穷多个状态,而数字量是有限的,不可能将模拟量的所有状态都表达出来,因此A/D转换器输出的数字量并不代表模拟量的一个点,而是一个区间。例如人们测量气温只保留整数部分,而小数部分四舍五入。当气温为28℃时并不是说气温就是28℃,而是在27.5~28.4℃范围内。这个范围的大小称为量化误差,使用整数表示温度,小数四舍五入时这个范围的大小为±0.5℃。如果测量人体体温时需要保留一位小数,如正常体温为37.0℃,量化误差就为±0.05℃。例如某A/D转换器将0~5V电压转换为3位二进制数,其转换关系如图1所示。

图1 5V量程三位A/D转换器的转换关系

1 A/D转换器的主要技术指标

1.1 量程

模拟量输入范围,分为单极性输入(如0~+5V)和双极性输入(如-5V~+5V),大部分A/D转换器输入电压范围可由用户提供的参考电压Uref设定。

1.2 位数

转换结果的位数,有二进制位数(如4位、8位、12位、16位)和十进制位数(如3 1/2位、4 1/2位)二种,十进制位数3 1/2表示有4位十进制数输出,分数1/2中的分母“2”表示最高位只有二个状态,分子“1”表示最高位的最大数值为“1”。3 1/2位最大输出数为“1999”,同理4 1/2位最大输出数为“19999”。

1.3 量化区间

将“量程”划分为若干个小区间,每个小区间对应一个输出数据,就实现了A/D转换,这个小区间称为“量化区间”,记为LSB。量化区间(LSB)=2×量程/(2N+1-1),式中N为A/D转换器的位数。

1.4 分辨率

是指A/D转换器所能分辨的模拟输入信号的最小变化量。即量化区间的大小LSB。例如8位单极性0~+5V输入的A/D转换器,能分辨的最小输入信号是1LSB=2×5/(28+1-1)=0.0196V=19.6mV。又如12位双极性-5~+5V输入的A/D转换器,能分辨的最小输入信号是1LSB=2×10/(212+1-1)=0.00244V=2.44 mV。

1.5 量化误差

量化误差=±1LSB/2。如上述8位单极性0~+5V输入的A/D转换器的LSB=19.6mV,则量化误差=±9.8mV。

除以上技术指标外,还有一些技术指标如绝对精度、转换时间、输出接口、工作温度等技术指标,读者可以查阅有关资料,这里不再赘述。

2 输入电压与输出数据的对应关系

如0~+5V量程的3位A/D转换器量化区间为1LSB=2×5/(23+1-1)=0.667V(见图1、表1)。输入电压的中间值=LSB×输出数值(10进制)。如输出的10进制数值为2,则输入电压中间值=0.667×2=1.333V。这个电压中间值1.333V并不代表一个固定的值,而是一个输入的电压范围1~1.667V,其对应区间为2LSB±1/2LSB。输入电压与输出数据的对应关系见表1。

表1 输入电压与输出数据的对应关系

2 1.667~2.333 3LSB±1/2LSB 011 3 2.667 2.333~3 4LSB±1/2LSB 100 4 3.333 3~3.667 5LSB±1/2LSB 101 5 4 3.667~4.333 6LSB±1/2LSB 110 6 4.667 4.333~5 7LSB±1/2LSB 111 7

3 A/D转换器件

3.1 ADC0804引脚功能(见图2)

图2 ADC0804仿真设计

:芯片选择信号。当=0时芯片才能工作。: 外部读取转换结果的控制输出信号。=1时输出为高阻态不输出转换结果,当=0时才输出转换结果。WR: 用来启动转换的控制输入,=0时清除上一次转换的结果,=1时开始对当前的输入电压进行转换,故可看作是转换启动控制。CLK IN、CLKR:外部时钟输入或接振荡元件(R、C),频率在100~1460kHz左右,一般RC电路振荡频率为1/(1.1RC)。振荡频率f=1/1.1R8C1=1/1.1×10×103×150×10-12≈600kHz。:中断请求信号输出,转换完成后输出低电位。VIN(+)、VIN(-):差动模拟电压输入。输入单端正电压时,VIN(-)接地;而差动输入时,直接加入VIN(+)、VIN(-)。AGND、DGND:模拟信号以及数字信号的接地。Uref/2:接辅助参考电压。注意参考电压为此端连接的电压的2倍。D0~D7:8位转换结果的数字输出。VCC:电源电压。

3.2 ADC0804仿真方法

图2中ADC0804是5V输入量程8位输出的A/D转换器,如前所述,5V输入量程8位输出的A/D转换器的量化区间1LSB=2×5/(28+1-1)=0.0196V=19.6mV,量化误差=±1LSB/2=±0.0196V/2=±0.01V,假如在输出的二进制数00000000~11111111之间取任一数,如取00000100,其对应的十进制数是“4”,则其对应的输入电压的中间值=0.0196V×4=0.08V。这个电压中间值0.08V并不代表一个固定的值,而是=0.08V±0.01V,也即0.07~0.09V之间,如果在0.07~0.09V之间选择任一电压作为输入电压,图2的仿真输出都将输出“00000100”,“D7、D6、D5、D4、D3、D2、D1、D0”八个发光二极管的发光顺序依次为“亮、亮、亮、亮、亮、灭、亮、亮”,如取0.078V作为输入电压,则只要将图2 ADC0804 6脚对地间的电压表二端的电压设置成0.078V即可,仿真结果和计算理论值完全相同(见图2)。

4 使用TC7107制作一个多量程的数显电压表

4.1 TC7107引脚功能(见图3)

TC7107是常见数字面板中使用的A/D转换器,其输出为3 1/2位7段LED显示驱动,3 1/2位显示最大显示数值为1999。1脚(V+)、26脚(V—)、21脚(地):电源,典型值V+=+5V;V—=-5V。5脚(A1)、4脚(B1)、3脚(C1)、2脚(D1)、8脚(E1)、6脚(F1)、7脚(G1):右起第一位数码管驱动,可显示0~9。12脚(A2)、11脚(B2)、10脚(C2)、9脚(D2)、14脚(E2)、13脚(F2)、25脚(G2):右起第二位数码管驱动,可显示0~9。23脚(A3)、16脚(B3)、24脚(C3)、15脚(D3)、18脚(E3)、17脚(F3)、22脚(G3):右起第三位数码管驱动,可显示0~9。19脚(AB4):右起第四位数码管驱动,同时驱动a、b二段,显示1。20脚(POL):右起第五位数码管驱动,当输入为负值时显示极性“—”,驱动g段。40脚(OSC1)、39脚(OSC2)、38脚(OSC3):片内振荡器,典型振荡频率fOSC(Typ)=48kHz。29脚(CAZ):自动校零电容,0.01μF<自动校零电容<1μF,自动校零电容的大小对系统噪声有影响,当满量程较小时(如200mV)应当选用较小的容量。28脚(VBUFF):积分电阻,RINT=满量程电压/积分电流(4μA)。27脚(VINT):积分电容。34脚(CREF+)、33脚(CREFf¯):参考电容,0.1μF<参考电容<1μF,在绝大多数场合下使用0.1μF电容效果最好。31脚(VIN+)、30脚(VIN-):模拟量输入端,显示数值=1000×输入电压/参考电压。36脚(VREF+)、35脚(VREF-):当输入电压为0时显示为“000”,当输入电压等于参考电压时显示数值为“1000”,输入电压最大值为参考电压的二倍,此时显示数值为“1999”。32脚(ACOM):模拟量接地端。37脚(TEST):测试端。

4.2 TC7107电压表仿真方法

SW1为小数点切换开关,SW2为量程切换开关,仿真时它们必须保持同步对应切换,例如测试17V电压,将BAT4设置成17V作为输入电压,SW2为量程切换开关切换至20V档,同时SW1小数点切换开关也切换至20V档,按下仿真按钮,此时数码管显示“17.00”(见图3),如果输入“-17V”,按下仿真按钮,此时数码管显示“-17.00”当输入电压≧20V时,数码管显示“19.99”并不断地闪烁,当输入电压≦-20V时,数码管显示“-19.99”并不断地闪烁,这是超量程警告提醒,提示你必须切换至更高的量程才能正常显示电压值。表2是电压表仿真实测数据,由表2可知,即使是同一量程输入同一的电压,选择的上分压电阻和下分压电阻的阻值不同,分压比虽然相同,但输出显示的电压值会有微小的不同。例如选择量程为“2000V”档,输入电压为1700V,上分压电阻和下分压电阻的阻值比为R2=99900Ω:R5=100Ω时,输出显示为“1705”;当上分压电阻和下分压电阻的阻值比为R2=999000Ω:R5=1000Ω时,输出显示为“1750”。分压比虽然都是999:1,但输出显示的数值有微小的不同。综合表2的实测数据可以看 出,选 择R6=90Ω:R5=10Ω;R4=990Ω:R5=10Ω;R2=9990Ω:R5=10Ω组合或者选择R6=900Ω:R5=100Ω;R4=9900Ω:R5=100Ω;R2=99900Ω:R5=100Ω组合时,输出电压值误差都比较小,这二种组合都是比较理想的电阻分压比组合,但考虑到流过电阻的电流尽量要小的话,最好还是选择后者的分压比组合(见图3)。

表2 多量程电压表仿真实测数据

图3 TC7107数显电压表仿真设计

5 结束语

在设置负电压输入时,BAT4在软件上是不能设置成负电压的,只能将BAT4输入的正电压正负极颠倒即可,另外在实物电路中,当输入电压超量程时,若为正超量程则在右起第四个数码管显示“1”,其余数码管灭;若为负超量程则在右起第四个数码管显示“1”,右起第五个数码管显示“-”其余数码管灭,这和万用表使用时的实际情况的显示是一致的,软件上的显示会随量程的不同有所不同,如“2000V”档正超量程显示“1999”并不断闪烁,负超量程显示的是“-1999”并不断闪烁,如“200V”档正超量程显示“199.9”并不断闪烁,负超量程显示的是“-199.9”并不断闪烁,以此类推。

猜你喜欢

数码管量程模拟量
物理项目教学设计,用单片机控制四位数码管显示
基于惯性导航量程扩展的滚动再次受控方法
宽量程计量自动切换及远程传输技术
基于51单片机的分数计数器设计
一种模拟量模块的应用
Arduino编程
MC9S08FL16单片机数码管静态显示分析
模拟量液位计在液压站节能中的应用
电流和电压用电表组方法测量
如何测电表的量程