《能量计量论文范文》由精心整编,希望在【at89c2052】的写作上带给您相应的帮助与启发。
【摘要】AT89C205x是价格最便宜的单片机之一,一般用于简单的控制及显示电路。本身不具有A/D转换功能,给设计的集成度带来一些影响。所以要想完成A/D转换,必须额外增加A/D转换集成电路,增加了设计的复杂度,限制了其应用范围。本文另辟蹊径,利用AT89C205X的内部电路特点,只需外加少量元器件即可完成精度较高的A/D转换。
本文电路的创新型设计之一是采用恒流源式电容充放电原理使其转换接近线性,且测量动态范围宽,可满足一般A/D转换的使用要求。
为了检验这种A/D转换的实时性要求,特设计了一款采用单片机控制晶闸管的电路,完成温度的动态调整。为了使交流电和晶闸管达到同步控制,传统的晶闸管控制电路必须采用专用的触发集成电路进行控制,使设备的复杂度增大,性价比下降。
本文的另一个创新型设计是采用将梯形波作为同步源,利用梯形波的下降沿控制单片机的外部中断,产生同步触发信号,控制晶闸管,达到与交流电同步的目的。
【关键词】恒流源式A/D转换;梯形波同步;A/D线性转换
一、AT89C205x简介[1]
AT89C205X是Atmel公司生产的小型20引脚的单片机,常用型号AT89C2051、AT89C2052,兼容MOS-51指令集,2K以上的Flash内存(X尾数越高,内存越大)。可连续擦写1000次,2.7V-6V的宽电压范围,晶振0-24MHz,128B的RAM。与51系列不同的是它的12脚和13脚内嵌一个比较器可以进行双功能使用,普通功能可以作为I/O口使用,特殊使用时利用内部的比较器进行功能扩展。AT89C205X的12脚P1.0兼做比较器的正相输入端,13脚P1.1兼做比较器的反相输入端,比较器输出为内部的P3.6脚。这样的创新型设计给单片机开发者带来了极大的想象空间,本文就是利用该比较器完成恒流源式A/D转换的功能。
本电路的设计目的是通过单片机控制晶闸管调整交流平均值从而改变加热管的工作电压,使被控对象温度变化。被控对象的温度再通过感温元件进行A/D转换后进行数据处理,及时调整被控温度。使温度保持在设定值之间。
二、A/D转换电路
AT89C205X的A/D转换有些文献采用简单的RC充放电电路,这种简单电路的RC充放电曲线是一个指数曲线,计数值和测量电压不是线形关系。有些文献中采用预先将计数值和实测信号进行比较,再把计数值预先存储在一个EPROM数据区内;实际测量时,将实际计数值和预存数据进行软件比较,间接得到模拟信号的测量电压。这样的转换方式不但测量精度与实时性无法保证,测量值不具有连续性,而且预存数据要占用很大的存储区,给AT89C205X本来不大的EPROM数据存储区带来负担,程序编写较繁琐。
为了改进A/D转换方式,本电路在原有转换机理的基础上采用恒流转换法,可以完全克服上述电路的缺陷,测量具有连续性,转换接近线性,测量范围宽,而且不用预存储数据,程序短小,可满足一般环境变化不是非常频繁剧烈的场合。
图中R6、R14、Q1、Q2组成恒流源对电容C7进行充电。AT89C205X的P1.0口通过R10外接电容C7,P1.1口为模拟信号输入端。其转换原理是根据,其
中ISS为恒流源电流,T为充电时间(即完成一次A/D转换所需的时间),简称为转换时间。根据微电流源电路分析,,,可通过调整R6和R14改变ISS值,当C和ISS为常数时,由公式可知UC与T成线性关系只要适当调整的系数即可调整充电时间的长短。
转换分为两个阶段:①放电,目的是使C7上电容从零开始充电,开始A/D转换。Q3的集电极、发射极并在电容C7两端,当P3.7脚高电平时,Q3管导通,电容快速放电到零电压;②充电,开始计数。当P3.7脚为低电平时,Q3管截止,+5V电压通过恒流源对C7进行充电,充电电压按照公式:进行,此时充电曲线的充电时间和充电电压近似为线性关系。
从图中可以看出充电电压基本是线形变化的。本电路采用恒流源进行充放电后,线性范围大大提高,所以测量精度有保障。当P1.0充电电压UC从零逐渐升高并大于等于P1.1脚的模拟信号ux时,即,P3.6脚变为低电平,此时计数值(Count定时器T1)与模拟电压Ux呈线性关系,即,,TE是单片机执行一次加计数所需要的时间。Ux可通过外部传感器接口电路进行调整。
传感器接口电路由LM358的其中一个放大器U1A担任同相放大,,UW是传感器净输入,经U1A放大输出,调整RP4可以改变放大倍数,满足单片机模拟输入要求;RP1是为了可以和各种类型的温敏传感器进行配接而做成可调整式的,实际调试时通过调整RP1和RP4即可改变输出模拟电压。LM358的另一个放大器U1B设计成缓冲器形式,即,可以更好地隔离传感器与单片机的相互影响。提高测量精度和稳定性。A/D转换程序如下:
uchar a_d()
{ uint count;
P37=0; // 电容开始充电
count=0;
do
{count++; # 计数
for(i=0;i
{;} // 调整计数间隔
}while(P36==0); // 当P3.6脚为低电平时,计数结束。
P37=1; // 电容放电
return(count); // 返回计数值。
}
三、晶闸管触发电路的产生
晶闸管在使用时一定要保证控制脚触发电压与交流电压的频率同步。如何保证单片机产生的触发信号与交流电压频率同步是本文设计的又一个创新电路。其控制原理是:将桥式整流后的正向脉动波形通过稳压管转变为梯形同步控制电路,利用梯形波下降沿触发单片机的外部中断INT1,执行中断程序,使其产生触发脉冲。
变压器T1次级输出的12V交流电压经过D1-D4(1N4148)桥式整流后直接加到R3、D5稳压管(6.3V)组成的稳压电路产生梯形波如图4,再经R2、R9分压加到AT8
9C205X的P3.3(INT1)外部中断脚,将该脚设置为检测下降沿方式,参数设置为IT1=1,这样每当梯形波的下降沿来到时单片机都发生中断响应,每次中断响应时开始进行A/D转换,同时定时器0启动。由于工频电源的周期为20ms,经过桥式整流后周期为10ms,这样每次A/D转换的间隔即为10ms。所以可以基本满足实时性要求。程序如下:
void inter2()interrupt 2 //外部中断1中断程序
{ P13=0; //P1.3输出低电平,
KValu=a_d(); //调用A/D转换程序。
}
四、晶闸管控制电路
AT89C205X的15脚P1.3产生的触发脉冲加到光耦MOC3021输入端,通过光耦输出控制晶闸管TLC336的触发角φ,加热器RY的平均电压URY与触发角φ满足[4],控制触发角就控制了加热器上的电压,从而达到控制温度的目的。触发脉冲的产生主要由软件产生并控制。其工作原理是:初始化令单片机的TMOD=0x01,即方式1,定时器0为16位定时工作方式。设定初始定时时间time为5ms,使晶闸管触发脚φ为90度,即加热器所加电压为有效值的一半时开始加热。一开始利用键盘预设被控温度值Va,当实测温度KValue小于Va时,time=time-1,触发角减小,使加热器的电压增大;反之当实测温度KValue大于Va时,time=time+1,触发角增大,使加热器的电压减小。直到使Va与KValue达到相等时,使得被控对象温度保持动态平衡。本电路还利用P1.2脚通过三极管Q4控制继电器K1,利用继电器的触点闭合或断开。达到加热器加热或停止的目的。程序如下:
void TIMS1()interrupt 1 // 时间中断TIMS1中断程序
{P13=1;} // P1.3输出高电平,
if (va tims++; else tims--; TH0=(65536-tims)/256; TL0=(65536-tims)%256; //重新装入定时值 TR0=1;bcd_crt(KValue); // 调用显示程序 } 五、数码显示电路 本电路采用四位数码动态显示电路[3],如图6。 将AT89C205X的串行口设置为方式0移位寄存器方式。即使SCON=0X02,单片机的P3.1脚作为移位脉冲接到移位寄存器(74LS164)的8脚CLK端,P3.0脚输出串行数据(低位在前)加到74LS164的1、2脚,74LS164的QA-QH输出段码加到四位数码管的A-G和DP小数点,值得注意的是:A/D转换得到的计数值是二进制数,不可直接送到串口进行显示,应首先将其值转换为BCD码,形成四位十进制BCD码,再将其送到串口,并通过P1.7、P1.6、P1.5、P1.4控制四个共阴数码管公共端,依次显示个、十、百、千四个数码显示。即可显示出所测量的电压值。 六、键盘控制电路 本电路只用两个按钮S1、S2完成预设加、减和正常工作。其工作原理是:一开始通电数码显示“SETU”预设状态,按动S1或S2可以增加或减少预设值,调整到期望值之后,同时按下S1和S2松开后电路开始加热。 七、设计中注意的问题 本电路完成A/D转换、触发电压波形产生、数码显示、键盘调整等功能。涉及硬件和软件的配合。根据人眼的视觉暂留现象,为了使动态显示效果连续,不晃眼,根据实际检验控制显示时间应不小于5ms。这就需要四个功能程序设计的时间应尽量占用极少时间。保证显示时间足够长。图7是整机电路各点波形之间的关系。 从图中可知各点波形周期是10ms。由4 A/D转换波形可知,外部中断开始时(3梯形波下降沿时刻),A/D转换开始。A/D转换完成时间T与模拟电压ux的幅值有关,幅值越高转换时间T越长;转换时间还与电容的充电时间长短有关,电容容量越小转换时间越短。转换精度与计数时间有关,每执行一次count++,计数值加一;而count++ 语句的指令执行时间又与单片机的机器周期有关,AT89C205X的机器周期,fT是单片机时钟电路所接的晶振频率,由前述,,当。而,n是执行一次加计数所需的机器指令个数,一般约需2-4个机器周期,所以要想使计数精度提高一定要减小机器周期。 所谓精度高即使K值尽量增大。从上述分析可知,要想在10ms内完成A/D转换、触发电压波形产生、数码显示三个步骤,合理分配三个步骤的时间是十分必要的,一般应使A/D转换时间T限制在小于5ms之内,则可使数码显示字符看上去不跳跃。如选用12MHz的晶振,,,选择,,验证转换时间,满足设计要求。根据微电流源电路分析,,从公式可知,调整R6或R14均可改变ISS的大小使其符合要求。 另外触发信号产生和BCD码转换位选择等程序约需10-15个机器周期。显示时间 满足设计要求。 执行完“SBUF=dm”语句后应加一条“mDelay(5)”延时程序,以免串口输出时间过短使数码显示字符跳跃。 八、应用实例 本人用自己设计的这套测量设备,控制由同创科技公司生产的PROMALL型电路板腐蚀机取得了较好的效果。PROMALL型电路板腐蚀机在原设计上只有加热棒,没有温度调节系统。导致线路板腐蚀掌握不好温度,影响腐蚀效果和效率。根据电路板腐蚀原理,腐蚀液一般在30℃-40℃之间腐蚀速度加快,同时又不出现暴皮现象,腐蚀后的电路板效果最佳。 具体实现方法,首先选用温度传感器,金属铂具有电阻温度系数大,感应灵敏;电阻率高,元件尺寸小;电阻值随温度变化而变化基本呈线性关系;在测温范围内,物理、化学性能稳定,长期复现性好,测量精度高,是目前公认制造热电阻的最好材料。查相关资料采用铂电阻温度传感器JCJ100TW型[6],JCJ100TW温度传感器(又称温度探头)采用不锈钢金属外壳封装,内部填充绝缘导热材料密封而成。本温度探头具有体积小巧、反应灵敏、种类丰富、防水抗震等特点,可广泛用于环境温度、气体温度、液体温度、物体表面温度、冷冻冷藏温度等各种类型的温度测量。采用Pt1000,可测温度0~150℃。 实验步骤:将探头与图7中J1接口相连,插入到待测的腐蚀液内。调节RP1,使传感器电流不超过1mA为标准,否则将烧坏探头。再将图9中本该接RY加热器的端口直接和腐蚀机的插头相连。接通220V交流电。调节图5中的S1、S2预设到35℃,启动后观察温度上升情况,调试初期腐蚀箱体内注入清水,选一个工业用标准温度计,进行温度线性测试。目的是和标准的温度计进行线性比较测试,粗调可以通过调整图7中的RP4改变温度的测量灵敏度,从而与标准温度计大致一致,细调可以通过调整图5中R14,使与标准温度计保持一致。观察水温变化情况,水温基本保持在35℃±3℃,基本满足要求。加入腐蚀液,准备6块10X10(cm)通过热转印法制好的电路板分别在不同温度下进行试验,观察腐蚀效果。表 从表1可以观察到,温度太低腐蚀时间较长,温度太高虽然腐蚀时间较短但质量无法保障,容易产生所谓的暴皮现象。通过上述测试,本仪器控制温度准确,测量精度高,达到了预期的效果。 九、结论 通过该电路的设计实验,可以得出如下结论: 1.AT89C205X虽然做了小小改动,却给设计者带来极大方便。就A/D转换而言现在的单片机很多都有A/D转换功能,其转换精度之高不言而喻,但一般价格要比AT89C205X高2-3倍,而且单片机管脚多。对一般环境要求不是十分苛刻的场合使用这些单片机、DSP或ARM进行设计无疑是大马拉小车,大材小用了。所以对于设计者而言讲究经济效益是一个设计者必备的。能用简单的不要用复杂的。本设计就是突 破以往的A/D转换模式做出的尝试。 2.本电路虽然是针对温度进行控制所设计的电路,但这种设计思路完全可以用于诸如光控,声控等一些模拟信号变化不是非常大、非常快的场合。 3.由于单片机小巧,所以设计体积小,成本十分低廉,性价比高,便于携带。 [1]倪云峰。单片机原理与应用[M].西安:西安电子科技大学出版社。 [2]谢维成,杨家国。单片机原理与应用与C51程序设计[M].北京:清华大学出版社。 [3]胡学海。单片机原理与应用系统设计[M].北京:电子工业出版社。 [4]王兆安。电力变流技术[M].北京:机械工业出版社。 [5]赵岩,林倡健。覆铜板在NaCl溶液中的腐蚀电化学行为[J].物理化学学报。 [6]九纯健。传感与测控网[OL].. [7]张君,肖慧荣,袁铭。基于超声红外的电子白板硬件电路设计和定位算法研究[J].计算机系统应用。 [8]唐春霞,王红梅,唐汝沅,李晓峰。基于AVR单片机的人体接近智能电子解说系统设计[J].计算机系统应用。 [9]金伟正。单线数字温度传感器的原理与应用[J].电子技术应用。 [10]蒋阜康,竺树声,陈连子,吴晓波,郑少波。几种新型恒流源集成电路[J].电子技术应用。 作者简介:程静涛,硕士,讲师,山西轻工职业技术学院机电工程系副主任,主要研究方向:嵌入式系统设计,通信技术。