用avr单片机制作的电容表

用avr单片机制作的电容表

ID:3156945

大小:86.00 KB

页数:12页

时间:2017-11-20

用avr单片机制作的电容表_第1页
用avr单片机制作的电容表_第2页
用avr单片机制作的电容表_第3页
用avr单片机制作的电容表_第4页
用avr单片机制作的电容表_第5页
资源描述:

《用avr单片机制作的电容表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用AVR单片机制作的电容表来自《电子报》合订本2004下册第313页(作者林凯葛仁春严宇亮李青)由于我的技术不是太好所以用软件画出的电路图很差,这个制作希望能给大家提供帮助这种用AVR单片机制作的数显直读式电容表,具有能测量小至1pF的电容,量程广(1pF----470uF),能自动换挡,使用方便等优点。(1)硬件电路用分立元件电路测量电容的容量,至少要一个电压比较器,一个时间计数器以及一些逻辑电路,而用AVR单片机AT90S2313就可以实现这些功能。1)工作原理用AVR单片机制作的数显直读模式电容表的电路图如图1图1该电路由AT90S2313单

2、片机带输出锁存和三态控制的串入/并出转换器CD4094稳压块78L05,以及4位共阳数码管等组成,所用元件不多,硬件电路非常简单。该电路采用9V叠层电池供电,功耗较小,整机工作电流仅32mA左右。(2)工作过程将待测电容Cx插入JP2,在500ms内将会触发以下测量过程。测量从低量程开始,单片机先将PB3置为高电平,使Q1截止,断开3.3k电阻R15,仅通过3.3M电阻R16对Cx充电,单片机开始计时,Cx上的电压经R14送单片机内比较器的AIN0端,并与AIN1端的电压0.5Vcc比较,如果在130ms内AIN0端的电压Vc达不到0.5Vcc,说

3、明Cx大于57Nf,应切换到高量程,反之,单片机将充电时间换算成Cx的容量,连同容量的单位通过数码管显示出来;如果需要切换到高量程,则单片机会将PB0口置低,Cx通过PB0放电,放电完成后再将PB3置低,使Q1导通,切换到高量程,R15R16并联向Cx充电(加快充电时间),并重新计时,如果1秒内Cx上的电压Vc达不到0.5Vcc,说明Cx大于440uF,超量程,数码管显示“E2”,表示测量失败,反之,单片机将充电时间换算成Cx的容量,连同容量的单位通过数码管显示出来。(3)源程序.include“2313def.inc”.include“avr.i

4、nc.def_0=r15;零寄存器.def_Stm1=r14;系统定时器.def_Stm2=r13;系统定时器.def_Flags=r25;标志寄存器;b0:结果为minus;b1:捕获完毕;b2:累计时间溢出;b7:有键按下;--数据存储器定义--;.dseg.orgRAMTOPDispPtr:.byte1;显示缓冲区DispBuf:.byte4KeyScan:.byte2Comp1:.byte2;低量程校准.Comp2:.byte2;高量程校准.Comp3:.byte2;零校准值StrBuf:.byte10;十进制转换缓冲区;--程序区--;.

5、csegrjmpreset;复位rjmp0;外中断INT0rjmp0;外中断INT1rjmptc0_cap;TC1捕获rjmp0;TC1捕获rjmptc1_ovf;TC1溢出rjmptc0_ovf;TC0溢出;rjmp0;Rx接收寄存器准备好;rjmp0;Tx发送寄存器准备好;rjmp0;Txsfr空;rjmp0;模拟比较器;--初始化--;reset:outiSPL,low(RAMEND)clr_0;清零寄存器ldiwZ,RAMTOP清RAM;ldiAL,128stZ+,_0decALbrnePC–2outiPORTD,0b0111100outi

6、DDRD,0b1111111outiPORTB,0b01111000outiDDRB,0b10001101outiTCCR0,0b100;TC0时钟=39kHzoutiTIMSK,0b00000010;TC0溢出允许sbiACSR,ACIC;接AC0至TC1输入捕获clr_FlagsseildiwY,DisoBuf;显示测试(500ms)ldiAL,–1stdY+0,ALstdY+1,ALstdY+2,ALstdY+3,ALldiAL,125rcalldlyrcallload_eep;读增量校准值breqPC+6ldiwZ,form3*2rcall

7、put_formedldiAL,250rcalldly;--主程序--;main:ldiAL,25等待100ms,定时器2erapsedmov_Stm1,ALcbr_Flags,bit7sbrc_Flags,7rjmpbtn_pressedtst_Stm1brnePC–5ldiAL,125;启动定时器2(500ms)mov_Stm2,ALrcallmeasure;低量程测量brccPC+3;超时,试高量程cbiPORTB,3rcallmeasurercalladjust_zero;刷新显示rcalladjust_gainrcalldisp_vals

8、biPORTB,3;置为低量程rjmpmainbtn_pressed:ldiAL,4;延时16msrcalldlysbis

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。