已經給你修改過了 你寫的有點小問題
#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; uchar ge, shi, bai, qian, wan,tt,z;
uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; void display(uchar z); void delay(uchar x); void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; z=0; while(1)
{ void display();
} }
void timer0() interrupt 1 //中斷函數定時1秒 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; if(tt==20) { tt=0; z++; if(z==10000) z=0; display(); } } void display() //顯示函數,顯示五位數 { wan=z/10000; qian=z%10000/1000; bai=z%1000/100; shi=z%100/10; ge=z%10; dula=1; P0=table[wan]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);
dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);
dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);
dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);
dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); } void delay(uchar x)//延時函數造成殘影 { uint a,y; for(a=x;a>0;a--) for(y=110;y>0;y--); }
|