基于单片机电子频率计仿真系统设计-学习教程笔记
仿真电路
本设计完整的实现了电子频率计设计,6位led数码管显示,累计每秒进入
单片机的外部脉冲个数,显示在led数码管上。并使用按键进行自动测量。

/******************************************************************
AT89S51的T0,T1计数器对输入的信号进行频率计数,测量结果用六位数码管
动态显示,要求对0~65KHZ的信号频率进行准确测量,误差不超过5HZ
*****************************************************************/
#include <reg51.h>
#define uint unsigned int
#define A 3
sbit P37=P3^7;
unsigned char num=0;
code unsigned char TAB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
/*显示变量对应的数值*/
/***************定时器0中断服务函数************************/
void timer0()interrupt 1{
TH0=0x3C;
TL0=0xB0;//定时50ms
num++;//记到20就直接停止
}
/**************************延时函数************************************/
void delay(unsigned char t){
unsigned char i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
/*************************显示函数**************************************/
void Display(){
uint number;
unsigned char B1,B2,B3,B4,B5;//定义数的各个位,万,千,百,十,个位
number=TH1*256+TL1;
B1=number/10000;//万位
B2=number%10000/1000;//千位
B3=number%1000/100;//百位

浙公网安备 33010602011771号