/* 用来实现 数码管 段选与位选 */ #include <reg52.h> typedef unsigned char uchar; typedef unsigned int uint; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar code tablewe[]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uchar bai,uchar shi,uchar ge) { dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=tablewe[3]; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=tablewe[4];; wela=0; delay(1); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=tablewe[5];; wela=0; delay(1); } void main (){ while(1){ display(2,3,5); } }