数码管显示的基本过程是:段选,位选,延时,消影
#include <reg52.h>
// 共阴极数码管段码表
unsigned char code SEG_CODE[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
// 延时函数
void delay(unsigned int time) {
unsigned int i, j;
for (i = 0; i < time; i++)
for (j = 0; j < 123; j++);
}
void main() {
// 可修改此数组来改变要显示的数字
unsigned char num[] = {1, 0, 5, 4};
unsigned char i;
while (1) {
for (i = 0; i < 4; i++) {
P2 = ~(0x01 << i);// 位选
P0 = SEG_CODE[num[i]];// 段选
delay(5);// 延时
P0 = 0x00;// 消影
}
}
}