ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:108.44KB ,
资源ID:22134565      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22134565.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(直流数字电压表设计Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

直流数字电压表设计Word文件下载.docx

1、MEGA8单片机具有速度高、超功能精简指令等特点,采用16MHZ晶振,完全能满足分辨率15位和转换速度2次/S的要求。4、显示电路本设计采用点阵式液晶显示器(LCD)显示。液晶显示器显示功能强大,可显示各种字体的数字、图像,还可以自定义显示内容,增加了显示的美观性与直观性。最重要的是提供了友好的人机界面。第二部分 理论分析与计算一、输入放大与量程自动转换电路输入电路的主要作用是提高输入阻抗和实现量程的转换。输入电路的核心是输入放大器和模拟开关CD4066组成的量程自动转换电路,如图2所示。TG1、TG2是单片机控制的模拟开关,采用CD4066芯片,控制不同的增益。各种组合分析如下:(1)200

2、mv量程。TG2导通,放大电路被接成电压串联负反馈放大器。放大倍数Af及最大的输出电压Uomx分别为: 图2 输入放大与量程自动转换电路Uomx=200mV20=4V(2)2V量程。TG1导通,此时的电压放大倍数Af及最大的输出电压Uomx分别为:Uomx=200由上述计算可见,输入AD转换器的规范电压为0-4V,同时电路被接成了电压串联负反馈放大器形式,输入电阻高达10000,完全达到题目的要求,电路输入端采用RC低通滤波电路抑制交流干扰。二、三斜积分式AD转换器图3 三斜积分式AD转换器的原理图图3是一个三斜积分式AD转换器的原理图。它由基准电压-VREF、 、积分器、比较器和由单片机构成

3、的计数控制电路组成。转换开始前,先将计数器清零,并接通S0使电容C完全放电。转换开始,断开S0。整个转换过程分三步进行:首先,令开关S1置于输入信号Ui一侧。积分器对Ui进行固定时间T1的积分。积分结束时积分器的输出电压为:可见积分器的输出电压与Ui成正比。这一过程也称为转换电路对输入模拟电压Ui的采样过程。图4 三斜积分式AD转换波形图在采样开始时,逻辑控制电路将计数门打开,计数器对周期为Tc的计数脉冲CP计数。当计数器达到满量程N1,此时计数器由全“1”恢复为全“0”,这个时间正好等于固定的积分时间T1, 。计数器复“0”时,同时给出一个溢出脉冲(即进位脉冲)使控制逻辑电路发出信号,令开关

4、S1转换至参考电压-VREF一侧,采样阶段结束。三斜积分式AD转换器的转换波形是将双积分式A/D的反向积分阶段T2分为图4所示的T21、T22两部分。在T21期间,积分器对基准电压-VREF进行积分,放电速度较快;在T22期间积分器改为对较小的基准电压 进行积分,放电速度较慢。在计数时,把计数器也分为两段进行计数。在T21期间,从计数器的高位(2m位)开始计数,设其计数值为N1;在T22期间,从计数器的低位(20位)开始计数,设其计数值为N2。则计数器中最后的读数为:N= N12m+N2在一次测量过程中,积分器上电容器的充电电荷与放电电荷是平衡的,则|Ux|T1=VREFT21+(VREF/2

5、m)T22其中: T21=N1Tc T22=N2Tc将上式加以整理得:将上式进一步整理,可得三斜式积分式A/D转化器的基本关系式为 本设计中,取m=8,时钟脉冲周期Tc=120us,基准电压VREF=5V,并希望把2V被测电压变换成N=65536码读数时,由上式可以计算出T1=76.8ms,而传统的双积分式AD转换器在相同的条件下所需的积分时间T1=307.2s,可见三斜积分式AD转换器可以使转换速度大幅度提高。三、计数器的设计题目基本要求测量分辨率为1mV(2V档),因此计数器至少要11位,发挥部分要求测量分辨率为0.1mV(2V档),计数器至少要15位,故本设计采用MEG8单片机实现控制和

6、脉冲计数,构成16位计数器,内部采用16MHZ晶振,完全满足分辨率15位和转换速度2次/S的要求。 第三部分 电路与程序设计一、三斜积分A/D转换器模拟电路部分图5 三斜积分A/D转换器模拟电路部分 图5为三斜积分A/D转换器模拟电路部分,图中放大电路选用精密运放OP07;积分电路也选用OP07;积分电容选用漏电流很小且等效串联电阻、电感都很小的CBB80电容;比较器选用LM311;图中的电子开关TG1、TG2、TG3、TG4、TG5、TG6、TG7、TG8均选用模拟开关CD4066芯片,只要将CD4066控制端接到单片机不同控制端口PBX上即可实现不同的开关通断控制。TG1为自动校零控制、T

7、G2、 TG3为量程自动转换控制,TG4、TG5、TG6控制积分的三个阶段,TG7、TG8为转换开始前的控制。二、 单片机控制、计数、显示部分电路采用MEGA8单片机实现对CD4066模拟开关的通断控制,从而实现量程自动转换、自动校零以及三斜积分A/D转换过程的控制;同时利用单片机编程实现16位高速计数功能。显示部分采用1602LCD液晶显示器实现A/D转换数据和测量电压值的显示。单片机控制、计数器以及LCD液晶显示电路如图6、7所示。图6 单片机控制、计数器电路 图7 LCD液晶显示电路三、基准电压产生电路图8 基准电压信号生成电路自行设计了一个从0100mV连续调节的模拟电压信号作为该系统

8、的基准电压源,选用TL431AA,其电压精度可以达到0.5%;两组电压跟随器选用精密运放OP07;可变电阻RW101、RW103选用多圈精密可变电阻;电位器RW102选用10圈线绕精密电位器。由TL431产生2.50V电压,经电位器RW101分压得到100mV电压送给第一组电压跟随器(由IC101组成)输入端。第一组电压跟随器的输出由多圈精密电位器RW102进行分压,分压后的信号由第二组电压跟随器(由U2组成)输出0-100mV的可调电压作为A/D转换电路的电压基准。四、主程序流程(见附录一)第四部分 测试方案与测试结果为了确定系统与题目要求符合程度,我们对系统中关键部分进行了实际测试。一、分

9、辨率和测量误差我们从信号源输入02V连续调节的直流电压信号作为该系统的被测信号源,对A/D转换电路的分辨率和测量误差进行了测试。选取被测信号源的1mV、5mV、50mV、150mV、200mV、300mV、500mV、1V、1.5V、2V点作为测试电压,分别进行了测试,结果见表1:200mV档输入电压(mV)1550150200显示数据(字)9649850041499719997显示电压值(mV)0.964.9850.04149.97199.97测量误差0.04%0.02%0.03%2V档输入电压(V)0.30.51.52显示数据299849961000414998显示电压值0.29980.4

10、9961.00041.49981.9997 从上述测试结果分析,本设计直流数字电压表的测量分辨率和测量误差均能达到题目基本和发挥部分的要求。二、采样速率测试A/D转换结束后,单片机输出一个信号驱动发光二极管闪烁,显示A/D转换速度。用脉冲计数器测得其转换速度大于10次/S,达到了题目要求,结果如表2测试次数1 2 34转换速度(次/S) 11 13 12三、结论电路设计完成后,通过进行分辨率、测量误差以及转换速度测试,测试结果表明本设计达到了设计的基本和发挥部分的全部要求,并且具备自动校零和自动转换量程的功能。总 结本系统采用三斜积分式A/D转换器将输入的直流电压ui转换成与ui成正比的时间间

11、隔,在此期间用MEGA8单片机计数器对恒定频率的时钟脉冲计数,计数结束时,计数器记录的数字量正比于输入的模拟电压,从而实现模拟量到数字量的转换。在设计过程中,因为使用普通器件,元器件较多,而且输入信号较弱容易受到干扰,所以力求硬件电路简单,努力从工艺上下功夫,并对某些电路进行创新。本系统达到了竞赛题目中的各项要求。同时,设计过程中遇到了许多困难,设计上还存在许多值得改进的地方。通过本次设计,我们深刻体会到共同协作和团队精神的重要性,提高了自己解决问题的能力。参考文献:1.张军. AVR单片机应用系统开发典型实例.中国电力出版社,2005年2.曹建平. 智能化仪器原理及应用.西安电子科技大学出版

12、社.2004年3.杨志忠. 数字电子技术. 高等教育出版社. 2000年附录一:主程序流程附录二:元器件清单元件清单直流基准电压产生电路元件清单器件名规格(型号)数量备注运算放大器OP07精密运算放大器可调电阻10K电阻20200电容47F/16v100二极管1N4007可调压稳压二极管TL431AA精度0.5%精密电位器2.2K/2W十圈线绕式 三斜积分A/D转换电路元件清单Op07电压比较器LM311高速精密 模拟开关 CD4066 电容0.22uF 电阻1K20k9k单片机部分电路元件清单单片机Mega8F0.122pF晶振16MHz显示电路元件清单液晶WYM1602A 可调电阻电源电路

13、元件清单集成电路CW7805CW7905CW7812CW791210整流桥RS307L F、 8100012附录三: 部分源程序#include macros.h#include lcd.hstdlib.hmath.h#include#define S0 10 /pc0 gnd#define S1 11 /2v#define S2 17 /200mv PD7#define S3 12 /-vref#define S4 14 /-20mv#define S5 13 /discharge#define S6 15 /Ux#define S7 16 /Ix/全局变量unsigned char tim

14、etemp=0;unsigned char time100ms=0;unsigned int time500ms=0;unsigned char stepflag=0;/转换阶段标志 -uref ? -uref/2 7?unsigned char conflag=0; /正在转换标志unsigned int voltcount=0; /ad值float volt=0; /电压值unsigned char timeH=0; /计数器值unsigned char timeL=0;/函数void init_devices(void);void port_init(void);/1msvoid tim

15、er2_init(void);void timer2_ovf_isr(void);/100usvoid timer1_init(void);void timer1_ovf_isr(void);void adadjust(void)void adini(void);void adconvert(unsigned char data);/main()void main() unsigned char i; unsigned char lcdbuf32; unsigned char *lcdp=lcdbuf; init_devices(); Inti_Disp(); adadjust(); adin

16、i(); while(1) adconvert(0x08);/ set_cur(0); lcdp=ftoa(volt,0); putstr(lcdp); set_cur(16); ltoa(lcdbuf,voltcount,10); putstr(lcdbuf); /abc();void adini(void) PORDC=0x08; /放电30ms timetemp=30; conflag=1;void adconvert(unsigned char data)/充电 /充电196ms PORDC=data; /打开Ux timetemp=196; while(timetemp);/等待 /

17、反向放电 /读取U0值 if(PIND&0x08) PORDC=0x10;/接入-uref/2 7 stepflag=1;/qi dong counter timeH=0; timeL=0; else PORDC=0x04;/接入-uref stepflag=2; /qi dong counter timeH=0;dischar1: while(stepflag=2) if(PIND& else PORDC=0x10; while(PIND&0x04); voltcount=timeH; voltcount=(voltcout7)+timeL;void port_init(void) PORT

18、B = 0xFF; DDRB = 0xff; PORTC = 0x08; /m103 output only DDRC = 0xff; PORTD = 0x7F; DDRD = 0xf3;/TIMER1 initialisation - prescale:64/ WGM: 0) Normal, TOP=0xFFFF/ desired value: 500uSec/ actual value: 500.000uSec (0.0%)void timer1_init(void) TCCR1B = 0x00; /stop TCNT1H = 0xFF; /setup TCNT1L = 0x83; OCR

19、1AH = 0x00; OCR1AL = 0x7D; OCR1BH = 0x00; OCR1BL = 0x7D; ICR1H = 0x00; ICR1L = 0x7D; TCCR1A = 0x00; TCCR1B = 0x03; /start Timer#pragma interrupt_handler timer1_ovf_isr:9void timer1_ovf_isr(void) /TIMER1 has overflowed /reload counter high value /reload counter low value if(stepflag=1) /timeH timeL+;

20、 if(stepflag=2) timeH+;/TIMER2 initialisation - prescale: Normal 1mSec 1.000mSec (0.0%)void timer2_init(void) TCCR2 = 0x00; ASSR = 0x00; /set async mode TCNT2 = 0x06; OCR2 = 0xFA; TCCR2 = 0x04; /start#pragma interrupt_handler timer2_ovf_isr:void timer2_ovf_isr(void) /reload counter value if(timetemp

21、!=0) timetemp-; conflag=0; if(time500ms=0) PORTC=0x20; time500ms=500; time500ms-;/call this routine to initialise all peripheralsvoid init_devices(void) /stop errant interrupts until set up CLI(); /disable all interrupts port_init(); timer1_init(); timer2_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x44; /timer interrupt sources SEI(); /re-enable interrupts /all peripherals are now initialised

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1