📄 plj.c
字号:
#include <reg51.h>
/*#include<absacc.h>*/
#define uchar unsigned char
#define uint unsigned int
code seven_seg[10] = {0xC0,0xF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
code scan[4]={0X10,0X20,0X40,0X80};
uint seven_digital[4]={0xc0,0xc0,0xc0,0xc0};
uint counter[4];/*={0,0,0,0};*/
uint msn=5;
uint i,j,count;
uint tf=0;
void timer0(void) interrupt 1 using 1 /*定时器定100ms*/
{
TH0=0x3c; TL0=0xb0; /* 0x3cb0十进制15536,即初值为50000*/
msn--;
if(msn==0)
{
tf=1;
EA=0;
msn=5; /*500ms定时到,设标志位*/
}
for(i=0;i<4;i++)
{
seven_digital[i]=seven_seg[counter[i]];
}
}
void timer1(void) interrupt 3 /*计数器*/
{
}
void contral(void)
{ int f;
TMOD=0x51;
TH0=0x3c; TL0=0xb0; /*定时器初值*/
TH1=0x00; TL1=0x00; /*计数器初值*/
TR0=1;TR1=1;PT0=1;ET0=1;ET1=1;EA=1;
while(tf!=1); /*等待500ms定时到*/
TR0=0;TR1=0; /*停止计数*/
count=TH1*256+TL1;
f= 2 * count; /*1m周期多少次,即频率*/
i=0;
for(i=0;i<=3;i++)
{
counter[i]=f%10;
seven_digital[i]=seven_seg[counter[i]];
f/=10;
}
}
void main()
{
contral();
i=0;
while(1) /*显示*/
{
P0=seven_digital[i];
P1=scan[i];
j=5000;
while(j)
{
j--;
}
i++;
if(i>3) i=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -