其實不用這么復雜的,以下是小弟寫的顯示3.2的程序
#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit wx=P2^7; sbit dx=P2^6; uchar shu,shi,ge; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x80}; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void init(); void display(uchar dot,uchar shi,uchar ge);
void main() { init(); while(1) { //dot=17; shi=shu/10; ge=shu%10; display(16,shi,ge); } }
void display(uchar dot,uchar shi,uchar ge) { wx=1; P0=0xfe; wx=0; P0=0xff; dx=1; P0=table[dot]; dx=0; delay(5);
wx=1; P0=0xfe; wx=0; P0=0xff; dx=1; P0=table[shi]; dx=0; delay(5);
wx=1; P0=0xfd; wx=0; P0=0xff; dx=1; P0=table[ge]; dx=0; delay(5); }
void init() { shu=32; }
|