frequency.c
来自「高频频率计 最高能测2.4G 单片机用的AT89S52」· C语言 代码 · 共 75 行
C
75 行
#include <AT89X52.H>
#include <LCD1602.h>
unsigned char T0count;
unsigned char timecount;
bit flag;
unsigned long x;
//unsigned char code menu[2][16]={"Frequency is:MHz","Frequency is: Hz"};
/*************************************************************************************************************
主函数
*************************************************************************************************************/
void main(void)
{
// unsigned char i,j,k,l;
P1=0;
TMOD=0x15;
TH0=0;
TL0=0;
TH1=(65536-49989)/256;
TL1=(65536-49989)%256;
TR1=1;
ET0=1;
ET1=1;
EA=1;
TR0=1;
p=LCD_PutStr("Frequency is: Hz\n",-1); //显示一段文字
while(1)
{
if(flag==1)
{
flag=0;
x=(T0count*65536+TH0*256+TL0)*16384+P0; //计算频率
P1_0=1;
P1_0=0;
timecount=0;
T0count=0;
TH0=0;
TL0=0;
TR0=1;
//LCD_init( );
p=LCD_PutStr("\n",16);
p=LCD_PutNum(x,0,p); //显示数
}
}
}
/*************************************************************************************************************
定时器、计数器设置
*************************************************************************************************************/
void t0(void) interrupt 1 using 0 //计数满后T0count加1
{
T0count++;
}
void t1(void) interrupt 3 using 0 //定时1S钟
{
TH1=(65536-50045)/256;
TL1=(65536-50045)%256;
timecount++;
if(timecount==20)
{
TR0=0; //关闭记数器
timecount=0;
flag=1; //1S定时到标志
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?