#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; sbit led=P1^0; uchar num,num1,num2,shi,ge; uchar code table[]={ 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄滅 0x00 //自定義 }; void delay(int li) { uint x,y; for(x=li;x>0;x--) for(y=110;y>0;y--); } void display(uchar shi,uchar ge) { dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(10); P0=0xff; dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(10); } void T1_()interrupt 3 { TH1=(65536-15536)/256; TL1=(65536-15536)%256; num2++; if(num2==20) { num2=0; num++; if(num==60) num=0; shi=num/10; ge=num%10; } } void T0_()interrupt 1 { TH0=(65536-15536)/256; TL0=(65536-15536)%256; num1++; if(num1==4) { num1=0; led=~led; } } void main() { TMOD=0X11; TH1=(65536-15536)/256; TL1=(65536-15536)%256; TH0=(65536-15536)/256; TL0=(65536-15536)%256; TR1=1; TR0=1; EA=1; ET0=1; ET1=1; while(1) { display(shi,ge); } } |