基础知识
NE555不需要进行编程,或者与单片机进行通信,它本身就能产生方波。方波的频率可以调节,只要改变电阻电容的值就可以了。

电路原理


方波产生在排针J3的15(SIGNA)脚上,方波的频率通过Rb3电位器进行调节的
P34是一个特殊的计数器,每个下降沿来临+1,可以统计方波的下降沿,通过对下降沿个数的判断,就能知道此时方波的频率。
计数器来自单片机的外部引脚,计数器0(T0)为P34,T2为P31,T3为P07,P4为P05。计数器的配置类似于定时器
获得计数器1s后TH0和TL的值,就可以得到外部脉冲的频率。
NE555频率测量编程
void Conuter2_init()
{TMOD |=0X05;TL0=0;TH0=0;TR0=1;}
#include <STC15F2K60S2.H>
#include <SYSTEM.H>
#include <SMG.H>u16 cnt_ne555;
u16 temp_ne555;
void NE555_process()
{cnt_ne555++;if(cnt_ne555==1000){cnt_ne555=0;temp_ne555=(TH0<<8)|TL0;TL0=0;TH0=0;}}void smg_process()
{smg_code[0]=t_display[temp_ne555/10000];smg_code[1]=t_display[temp_ne555/1000%10];smg_code[2]=t_display[temp_ne555/100%10];smg_code[3]=t_display[temp_ne555/10%10];smg_code[4]=t_display[temp_ne555%10];smg_code[5]=0;smg_code[6]=0;smg_code[7]=0;}//数码管显示NE555电压值
void main()
{system_init();Timer2Init();Conuter2_init();while(1){smg_process();}}void t2int() interrupt 12 //中断入口
{smg_display();NE555_process();
}