#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[] = {
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uchar table2[] = {
0xfe,0xfd,0xfb,
0xf7,0xef,0xdf
};
uchar num, num2, num3, shi, ge;
sbit dula = P2^6;
sbit wela = P2^7;
sbit led1 = P1^0;
void delayms(uint xms){
uint i, j;
for(i = xms; i > 0; i--)
for(j = 110; j > 0; j--);
}
void SEG7_MPX6_CC(){
while(1){
for(num = 1; num < 7; num++){
P0 = 0;
dula = 1;
P0 = table[num];
dula = 0;
P0 = 0xff;
wela = 1;
P0 = table2[num-1];
wela = 0;
delayms(10);
}
}
}
display(uchar shi, uchar ge){
P0 = 0;
dula = 1;
P0 = table[shi];
dula = 0;
P0 = 0xff;
wela = 1;
P0 = table2[0];
wela = 0;
delayms(10);
P0 = 0;
dula = 1;
P0 = table[ge];
dula = 0;
P0 = 0xff;
wela = 1;
P0 = table2[1];
wela = 0;
delayms(10);
}
void start_time(){
TMOD = 0x11;
TH0 = (65536 - 45872)/256;
TL0 = (65536 - 45872)%256;
TH1 = (65536 - 45872)/256;
TL1 = (65536 - 45872)%256;
EA = 1;
ET0 = 1;
ET1 = 1;
TR0 = 1;
TR1 = 1;
while(1){
display(shi, ge);
}
}
void T0_time() interrupt 1
{
TH0 = (65536 - 45872)/256;
TL0 = (65536 - 45872)%256;
num++;
if(num == 4){
num = 0;
led1 = ~led1;
}
}
void T1_time() interrupt 3
{
TH1 = (65536 - 45872)/256;
TL1 = (65536 - 45872)%256;
num2++;
if(num2 == 20){
num2 = 0;
num3++;
if(num3 == 60) num3 == 0;
shi = num3 / 10;
ge = num3 % 10;
}
}
int main(){
start_time();
}
- 1
- 2
前往页