一、概述:在NE355定时器内部,有3个5K的电阻分压,故称为555定时器;(作为信号发生电路)
![](https://img-blog.csdnimg.cn/a27436c71eb14cbea618aaf670ac0be4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWWhoLTYyMw==,size_14,color_FFFFFF,t_70,g_se,x_16)
NET SIG接到P3.4,定时器0的计数信号输入引脚;
![](https://img-blog.csdnimg.cn/f8d1146e32114bcca4b94007fdf7aae3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWWhoLTYyMw==,size_20,color_FFFFFF,t_70,g_se,x_16)
二、原理:
1.定时器0用作计数,8位重装方式
2.定时器1用作定时,定时时间50ms
三、示例![](https://img-blog.csdnimg.cn/4fc57e0ca14646f38d67c6996f021046.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWWhoLTYyMw==,size_20,color_FFFFFF,t_70,g_se,x_16)
#include "reg52.h"
#include "absacc.h"
#include "xmf_smg_ca.h"
unsigned int count_f = 0;
unsigned int dat_f = 0;
unsigned char count_t = 0;
void Init_Timer()
{
//定时器0用作计数,8位重装方式
TH0 = 0xff;
TL0 = 0xff;
//定时器1用作定时,定时时间50ms
TH1 = (65535 - 50000 + 1) / 256;
TL1 = (65535 - 50000 + 1) % 256;
TMOD = 0x16; // 0001 0110
ET0 = 1;
ET1 = 1;
EA = 1;
TR0 = 1;
TR1 = 1;
}
void Service_T0() interrupt 1
{
count_f++;
}
void Service_T1() interrupt 3
{
TH1 = (65535 - 50000 + 1) / 256;
TL1 = (65535 - 50000 + 1) % 256;
count_t++;
if(count_t == 20)
{
dat_f = count_f;
count_f = 0;
count_t = 0;
} //测量频率完成
}
void DisPlaySMG_F()
{
DisPlaySMG_Bit(0,0x8e); // 1000 1110 f的段码
DelaySMG(100);
DisPlaySMG_Bit(1,0xff);
DelaySMG(100);
DisPlaySMG_Bit(2,0xff);
DelaySMG(100);
if(dat_f > 9999) //显示五位数的最高位
{
DisPlaySMG_Bit(3,SMGNoDot_CA[dat_f / 10000]);
DelaySMG(100);
}
if(dat_f > 999)
{
DisPlaySMG_Bit(4,SMGNoDot_CA[(dat_f / 1000) % 10]);
DelaySMG(100);
}
if(dat_f > 99)
{
DisPlaySMG_Bit(5,SMGNoDot_CA[(dat_f / 100) % 10]);
DelaySMG(100);
}
if(dat_f > 9)
{
DisPlaySMG_Bit(6,SMGNoDot_CA[(dat_f / 10) % 10]);
DelaySMG(100);
}
DisPlaySMG_Bit(7,SMGNoDot_CA[(dat_f / 1) % 10]);
DelaySMG(100);
DisPlay_All(0xff);
}
void main()
{
XBYTE[0x8000] = 0xff;
XBYTE[0xa000] = 0x00;
Init_Timer();
while(1)
{
DisPlaySMG_F();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)