📄 text1.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 + -