#include<reg52.h> //52系列单片机头文件 #define uchar unsigned char #define uint unsigned int uint x,y; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; //共阴极数码管编码 void display(uchar,uchar,uchar,uchar); //声明子函数 void delay(int); //声明子函数 void main() { while(1) { display(1,2,3,4); //主程序始终调用数码管显示子程序 } } void display(uchar a,uchar b,uchar c,uchar d) { P2=0xef; P0=table[a]; //给第一个数码管送"a" delay(1); //延时1ms P2=0xdf; P0=table; //给第二个数码管送"b" delay(1); //延时1ms P2=0xbf; P0=table[c]; //给第三个数码管送"c" delay(1); //延时1ms P2=0x7f; P0=table[d]; //给第三个数码管送"d" delay(1); //延时1ms } void delay(uint z) //延时子函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 我不懂每个‘’P2=‘’的意思 还有那个定义的 abcd是不是对应的就是 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; 这里面的前4个 |