📄 pinlv3_1.c
字号:
#include <AT89X52.H>
unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};
unsigned char temp[8];
unsigned char dispcount;
unsigned char T0count;
unsigned char timecount,l,o,m,n,r,s,v,flag1,flag2;
unsigned long x,x1,x2;
unsigned char code led_segment[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//uchar code led1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
bit flag;
//#define led RD
sbit latch=P1^0;
sbit led_1=P2^3;
sbit led_2=P2^2;
sbit led_3=P2^1;
sbit led_4=P2^0;
sbit led_5=P2^7;
sbit led_6=P2^5;
sbit led_7=P2^6;
sbit led_8=P2^4;
sbit dianzhu1=P1^3;
sbit dianzhu2=P1^4;
sbit dianrong1=P1^5;
sbit dianrong2=P1^6;
sbit AA=P3^2;//dian gan
sbit BB=P3^1;//dianzhu
sbit CC=P3^0;//dianrong
void delay(unsigned int v)
{
while(v!=0) v--;
}
xianshi()
{
latch=1;
P0=led_segment[l];
led_8=0;
delay(30);
led_8=1;
P0=led_segment[m];
led_7=0;
delay(30);
led_7=1;
P0=led_segment[n];
led_6=0;
delay(30);
led_6=1;
P0=led_segment[o];
led_5=0;
delay(30);
led_5=1;
P0=led_segment[r];
led_4=0;
delay(30);
led_4=1;
P0=led_segment[s];
led_3=0;
delay(30);
led_3=1;
latch=0;
}
void main(void)
{
unsigned char i;
TMOD=0x15;
TH0=0;
TL0=0;
TH1=0xf0;
TL1=0x60;
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;
while(1)
{
latch=1;
P0=0xf7;
if(T1==0){ // dianzhu2=0;
BB=0;AA=1;CC=1;EA=1;TR0=1;}
P0=0xfb;
if(T1==0){ // dianzhu1=0;
BB=0;AA=1;CC=1;EA=1;TR0=1;}
P0=0xef;
if(T1==0){ // dianrong1=0;
CC=0;BB=1;AA=1;EA=1;TR0=1;}
P0=0xdf;
if(T1==0){ // dianrong2=0;
CC=0;BB=1;AA=1;EA=1;TR0=1;}
P0=0xbf;
if(T1==0){AA=0;BB=1;CC=1;EA=1;TR0=1;}
P0=0xff;
//xianshi();
if(flag==1)
{
if(T1!=0)flag1++;
flag=0;
x=T0count*65536+TH0*256+TL0;
x2=x2+x;
flag2++;
if(flag2==5){ x1=0;x1=x2/5;x2=0;flag2=0;
}
l=x1%10;
m=x1%100/10;
n=x1/100%10;
o=x1/1000%10;
r=x1/10000%10;
s=x1/100000%10;
T0count=0;
TH0=0;
TL0=0;
x=0;
if(flag1==5){flag1=0;TR0=0;EA=0;}
TR0=1;
}
}
}
void t0(void) interrupt 1 using 0
{
T0count++;
}
void t1(void) interrupt 3 using 0
{
TH1=0xf0;
TL1=0x60;
timecount++;
if(timecount==250)
{
TR0=0;
timecount=0;
flag=1;
}
xianshi();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -