#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char
void delay(uint Z);
uchar code table[]={ //结构体 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
uchar temp,numdu,shi,ge;
sbit dula=P2^6; sbit wela=P2^7;
void main() { temp=12; numdu=0; /* TMOD=0x01; //选择t0 TH0=(65536-50000)/256; //给高8位给值 TL0=(65536-50000)%6; //给低8位给值 EA=1; //开总定时器中断 ET0=1; //开定时器0中断 TR0=1; //定时器启动/// TR0=0 定时器停止
dula=1; //开段选控制 P0=table[0]; //给P0负值 所有的数码管点亮 所选的段就是所有的数码管 dula=0; //关段选控制
wela=1; //位选打开 P0=0xc0; //给所有的数码管负值 0 wela=0; //位选关闭,保存住所贡的值
temp=0xfe; P1=temp;
*/ while(1) { shi=temp/10; ge=temp;
dula=1; P0=table[shi]; dula=0;
wela=1; P0=0xfe; wela=0;
delay(5);
dula=1; P0=table[ge]; dula=0;
wela=1; P0=0xfe; wela=0;
delay(5);
/* delay(1000); temp=_crol_(temp,1); P1=temp;
if (aa==40) { aa=0; num++; if (num==16) num=0; dula=1; P0=table[num]; dula=0; }
*/ } }
void delay(uint Z) { uint x,y; for(x=Z;x>0;x--) for(y=110;y>0;y--); }
/* void timer0() interrupt 1 { TH0=(65536-50000)/256; //给高8位给值 TL0=(65536-50000)%6; //给低沉位给值 aa++; if (aa==40) { aa=0; num++; if (num==16) num=0; dula=1; P0=table[num]; dula=0; } } */