⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.c

📁 本设计的内容是使用89C51RC单片机最小系统设计频率计系统
💻 C
字号:
//****12mhz***////	
#include"reg52.h"
#define uchar unsigned char
#define uint  unsigned int

uchar code  tv[]={0xfe,0xfd,0xfb,0xf7};
uchar code  a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar  data  led[4];
uint   data  fre;
uchar  cnt;

	
void delay(void)
{
	uint i;
	for(i=0;i<10;i++);
}


void led_show(void)
{
	uchar k,i;
    led[0]=fre%10;
    led[1]=fre/10%10;
	led[2]=fre/100%10;
	led[3]=fre/1000;
	
	for(k=0;k<4;k++)
		{ 
			P2=tv[k];
		    i=led[k];
		    P0=a[i];
		    delay();
	    }
} 

/********************50ms*********************************************/

 void Timer_Init (void)
{ 
	TMOD=0x51;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    EA=1;
    ET0=1;
    ET1=1;

} 

void T0_ISP(void) interrupt 1
{
	cnt++;
	if (cnt==20)
	{
		cnt=0;
	    EA=0;
  	    fre=TL1+(TH1<<8);     //体会为什么要这样写呢?TH1是计数高8位,TL1是低8位,这个16位数分2部分存放,
	    EA=1;                //高8位和低8位进制是256。这里写成这样也可以fre=TH1*256+TL1
	    TL1=0;
	    TH1=0;
	}
	    TH0=(65536-50000)/256;  //注;为什么要在这里附上TH0,TL0的初值。(减小误差)
        TL0=(65536-50000)%256;
} 

void main()
{  
	uint i;
	Timer_Init();
	TR0=1;
	TR1=1;


    while(1)
    { 
		for(i=0;i<20;i++)
		{
			led_show();
	    }
    }
}
  









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -