6位数字显示频率计数器电路及51单片机源程序共17页.docx

上传人:b****6 文档编号:8382883 上传时间:2023-01-30 格式:DOCX 页数:10 大小:111.26KB
下载 相关 举报
6位数字显示频率计数器电路及51单片机源程序共17页.docx_第1页
第1页 / 共10页
6位数字显示频率计数器电路及51单片机源程序共17页.docx_第2页
第2页 / 共10页
6位数字显示频率计数器电路及51单片机源程序共17页.docx_第3页
第3页 / 共10页
6位数字显示频率计数器电路及51单片机源程序共17页.docx_第4页
第4页 / 共10页
6位数字显示频率计数器电路及51单片机源程序共17页.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

6位数字显示频率计数器电路及51单片机源程序共17页.docx

《6位数字显示频率计数器电路及51单片机源程序共17页.docx》由会员分享,可在线阅读,更多相关《6位数字显示频率计数器电路及51单片机源程序共17页.docx(10页珍藏版)》请在冰豆网上搜索。

6位数字显示频率计数器电路及51单片机源程序共17页.docx

6位数字显示频率计数器电路及51单片机源程序共17页

6位数字显示频率计数器电路及51单片机源程序

1.频率计算器功能

利用AT89S51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。

要求能够对0-250KHZ的信号频率进行准确计数,计数误差不超过±1HZ。

2.电路原理图

3.程序设计内容

(1).定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC=12MHz,因此:

T0的最大计数频率为250KHz。

对于频率的概念就是在一秒只数脉冲的个数,即为频率值。

所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。

送到数码管显示出来。

(2).T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。

5.C语言源程序

C程序

#include

unsignedCHARcodedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedCHARcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x00,0x40};

unsignedCHARdispbuf[8]={0,0,0,0,0,0,10,10};

unsignedCHARtemp[8];

unsignedCHARdispcount;

unsignedCHART0count;

unsignedCHARtimecount;

bitflag;

unsignedlongx;

voidmain(void)

unsignedCHARi;

TMOD=0x15;

TH0=0;

TL0=0;

TH1=(6553*000)/256;

TL1=(6553*000)%6;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

while

(1)

if(flag==1)

flag=0;

x=T0count*65536+TH0*256+TL0;

for(i=0;i<8;i++)

temp[i]=0;

i=0;

while(x/10)

temp[i]=x;

x=x/10;

i++;

temp[i]=x;

for(i=0;i<6;i++)

dispbuf[i]=temp[i];

timecount=0;

T0count=0;

TH0=0;

TL0=0;

TR0=1;

voidt0(void)interrupt1using0

T0count++;

voidt1(void)interrupt3using0

TH1=(6553*000)/256;

TL1=(6553*000)%6;

timecount++;

if(timecount==250)

TR0=0;

timecount=0;

flag=1;

P0=dispcode[dispbuf[dispcount]];

P2=dispbit[dispcount];

dispcount++;

if(dispcount==8)

dispcount=0;

51单片机系列教程十二:

可预置可逆4位计数器

一、 实验任务

      利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用二进制形式表示当前计数的数据;用P1.4-P1.7作为预置数据的输入端,接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接两个轻触开关,用来作加计数和减计数开关。

具体的电路原理图如下图所示

二、电路原理图

 

图12.1

 

三、硬件连线

1.将51单片机的P1.0-P1.3端口用连接4只发光二极管L1-L4;要求:

P1.0对应着L1,P1.1对应着L2,P1.2对应着L3,P1.3对应着L4;

2.单片机的P3.0,P3.1,P3.2,P3.3用导线连接四只拨动开关K1-K4;

3.单片机端口P3.6,P3.7接两只按键开关SP1和SP2。

四、程序框图

 

图12.2

 五、汇编源程序

COUNT  EQU30H

   ORG00H

START:

  MOVA,P3

 ANLA,#0FH

   MOVCOUNT,A

   MOVP1,A

SK2:

  JBP3.6,SK1

 LCALLDELY10MS

   JBP3.6,SK1

   INCCOUNT

 MOVA,COUNT

   CJNEA,#16,NEXT

 MOVA,P3

   ANLA,#0FH

   MOVCOUNT,A

NEXT:

  MOVP1,A

WAIT:

  JNBP3.6,WAIT

 LJMPSK2

SK1:

 JBP3.7,SK2

   LCALLDELY10MS

   JBP3.7,SK2

 DECCOUNT

   MOVA,COUNT

   CJNEA,#0FFH,NEX

 MOVA,P3

   ANLA,#0FH

   MOVCOUNT,A

NEX:

  MOVP1,A

WAIT2:

  JNBP3.7,WAIT2

 LJMPSK2

DELY10MS:

 MOVR6,#20

   MOVR7,#248

D1:

   DJNZR7,$

   DJNZR6,D1

 RET

   END

六、 C语言源程序

#include  

 

unsignedcharcurcount;

 

voiddelay10ms(void)

{

 unsignedchari,j;

 for(i=20;i>0;i--)

 for(j=248;j>0;j--);

}

 

 

voidmain(void)

{

 curcount=P3&0x0f;

 P1=~curcount;

 while

(1)

   {

     if(P3_6==0)

       {

         delay10ms();

         if(P3_6==0)

           {

             if(curcount>=15)

               {

                 curcount=15;

               }

               else

                 {

                   curcount++;

                 }

              P1=~curcount;

              while(P3_6==0);

           }

       }

     if(P3_7==0)

       {

         delay10ms();

         if(P3_7==0)

           {

             if(curcount<=0)

               {

                 curcount=0;

               }

               else

                 {

                   curcount--;

                 }

              P1=~curcount;

              while(P3_7==0);

           }

       }

   }

}

自制数字电感表

本电感表共分20μH、200μH、2mH、20mH、200mH、2H、20H7个量程,分辨力为O.01μH,所以可测量长卜2cm导线的电感。

校准后的精度不低于3%,且电路简洁,体积小巧。

既可做成独立的测量仪表,也可附加在普通的数字万用表上,电路见附图。

  1.工作原理

  该电感测量的基本原理是恒流源法。

由于运放及外围元件组成一定频率的交流恒流源,然后测量串联在这一恒流源电路中电感两端的电压.从而得出电感的感抗,即问接测出电感的电感量。

该电路由TL074和0P-37组成。

  TL074的IC1-1组成文氏电桥正弦波振荡器。

该振荡器有两个振荡频率,通过开关K1同步切换电路中的两个电容来选择频率。

两个频率分别是400Hz和40kHz(理论值应为398Hz和398kHz),以适应测量大小不同电感的需要。

文氏电桥振荡器频率的计算公式为f=1/2πRC,这是理论公式。

笔者实测其频率随电源电压而变化,在本电路的条件下,若电源电压为±5v,则f=0.955/2πRC若电源电压为+3V、-6V(普通电池供电数字万用表工作电压),则f=0.946/2πRC。

电阻R3和R4为增益调整及稳幅元件。

按图中元件输出振幅约7Vp—P.折合正弦波有效值约为2.48V,波形的底部略有削波,但对测量精度没有影响。

若电桥元件R1、R2选用金属膜电阻,C1、C2选用聚丙烯或涤纶电容。

在电源电压不变的前提下,该振荡器的频率及振幅均相当稳定。

所以电感表的正负电源均应采用稳定度高的电源,以保证电感表的精度。

Ic1—1输出经IC1—2跟随器隔离后,作为电感表的信号源。

  IC1—2的输出经R5~R9等5个恒流电阻(均应用金属膜电阻)转化为五挡交流恒流源,然后将Lx串入恒流电路中,由于电感感抗与电感量成正比,因而,测出了电感两端交流电压就测出了电感量。

本电感表满量程时电感两端电压为20mV,不到IC1—2输出幅度的1%,目的是为了尽量减少Lx感抗、附加相移、寄生振荡对恒流源的影响。

由于电阻和感抗的合成为矢量合成.当感抗为电阻的1%时,合成阻抗为原电阻的l.00005倍,由此造成的理论误差不超过十万分之五。

即使感抗为电阻的10%.理论误差也不超过万分之五。

由此可见。

恒流源环节因待测电感造成的恒流源误差可忽略不计。

同时,也可得知,本电感表的每个量程均有超量程功能,且因恒流环节造成的误差也不会超过干分之五。

  IC1-3及电阻R11、R10组成十倍同相放大器。

电感两端电压经IC1-3放大后输入IC1-4组成的带通滤波器,滤除各种干扰及寄生振荡,输出理想正弦波。

带通滤波器也有400Hz及40kHz两个工作频率,与IC1-1同时通过K1切换电容来改变。

用示波器可以观察到,LX两端的正弦波叠加有毛刺或寄生振荡,通过滤波器就十分干净了。

该滤波器对于电感测量十分重要.不可省去。

  IC2的增益带宽积达63MHz,属于高速运放(OP-37),可组成40kHz以上的线性整流器。

整流器的输出接ICL7107组成的200mV数字表头或普通数字万用表200mV挡,即可指示出电感量。

一般数字表均用TL062构成线性整流器,由于其增益带宽积仅为1MHz,因丽构成的线性整流器线性范围不超过1kHz,这正是数字万用表交流挡只能测几百赫芝以下频率的原因。

本电感表要对40kHz以上的交流电压整流,必须用宽带运放,才能保证其线性范围满足本表的要求。

即使采用了上述OP-37.其小信号线性仍不理想,这也是本电感表3%误差的主要根源。

因而,若能采用较0P-37更高带宽的运放,将会进一步提高电感表的线性和精度。

  由于本电感表可测出1cm导线的电感(约0.015μH),因而在安装电路时,印刷线及接线电感均可能造成误差,所以电感Lx的插座应以最短距离接入电路。

同时,为降低上述影响.电路中设置了调零电路,由R20及w组成。

在20pμH挡,短路电感插座调整w使数字表头指示为零即可。

当用7107构成的200mV表头制作电感表的显示器时,ICL7107的IN-端(第30脚)应与地断开,浮地输入,以保证调零电路的正常工作。

  2.电感表的校准

  调零后.在电感插座中插入标准电感,例如在20pμH挡接入18μH电感,调整电阻R5,使显示l8μH即可,然后再用同样方法校准其他各挡。

由于20μH挡电流较大,约4mA,已达运放输出极限,本电阻与其他各挡电阻相比要小些。

其余4挡电阻基本上为10倍率的关系。

其他各挡依此类推。

如频率不是准确的39.8kHz.则满度阻抗不是5Ω应重新计算,按计算后的电阻值代替LX进行校准。

在40kHz频率校准各挡后,将频率降为400Hz--般不用校谁。

可用400Hz各挡测几个标准电感或电阻,若误差太大,可能是频率或振幅较之40kHz挡变化太大,应检查电容c7和C8是否不准或不等。

  由于电感有直流电阻、寄生电容,本电感表测量的是总阻抗,因而当电感的寄生电容、直流电阻过大时.测量误差也会较大。

为减少寄生电容影响,本表设置400Hz、40kHz两个频率作测量频率,当电感大时,寄生电容也往往较大,只能用低频测量.以减少电容造成的误差。

对于直流电阻,若在测量频率下,电阻小于感抗的10%,则测量误差<0.5%;若电阻小于感抗的20%,则误差<2%:

当电阻大于感抗的20%时,误差过大.不宜测量,或测量后剔除电阻造成的误差。

例如用40kHz澳U收音机中波中周电感,约585μH,工作正常,若在400Hz下测量,其感抗只有1.5Ω.而直流电阻高达5Ω,测出的就只能是电阻而非电感了。

  另外。

当测量带有磁芯的电感时.还要考虑磁芯导磁率的影响。

磁芯导磁率不是常数,而是磁通密度的函数。

当磁通密度为零时,磁芯有一个初始导磁率。

当磁通密度增大时,导磁率上升,且有一个最大值,然后随磁通密度增大而减小,当磁芯达到磁饱和时,导磁率趋近于l。

例如,用本电感表测16.5μH的空芯电感,在201μH挡显示16.50;在200μH挡显示16.5;在2mH挡显示16:

在20mH挡显示1,误差较小。

而测量带磁芯同一电感时,往往各挡读数均不一样,有的误差达百分之几十甚至几倍。

这并不是电感表的误差.而是各挡工作电流不同,因而磁芯磁通密度不同,导致导磁率的不同.致使电感量不同。

液晶显示电容、电感表制作(89C2051)

原理图:

元件列表:

资料下载:

该文件只允许会员下载!

登录|注册

提示:

1、那几个开关可能比较难找,可以改作继电器控制。

2、S1是自锁的(电源开关),S2是不带锁的(校正用),S3,S4是互锁的(选择测电容还是电感,S3是电容测试按纽S4是电感测试按纽)。

3、测试电容量时,按下S2校准后,按下S3按纽(如果要测试电感量,那么就是S4按纽)

电感测试校准过程是放开(断开)S3和S4按钮(开关为断开位置),或者,按下S4按钮(使它为导通状态),无论如何必须注意的是测量的夹具必须短路才可以完成电感测试之前的校准过程。

4、这个电路对环境要求比较高,一定要有个好的金属外壳来屏蔽。

希望以上资料对你有所帮助,附励志名言3条:

1、要接受自己行动所带来的责任而非自己成就所带来的荣耀。

2、每个人都必须发展两种重要的能力适应改变与动荡的能力以及为长期目标延缓享乐的能力。

3、将一付好牌打好没有什么了不起能将一付坏牌打好的人才值得钦佩。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

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

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