这是我咋你的代码的基础上做的修改,因为电路设计的问题,输出到P0口时做了取反处理。可以正常显示“0.”到“F.”,已经用proteus7.5做了验证
#include "reg52.h"
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char i=0;
void delay(void) {
unsigned int j=0;
unsigned int k=0;
for (j=0; j < 300;j++) {
for (k=0; k < 300;k++) {
}
}
}
void main() {
LSA=0;
LSB=0;
LSC=0;
while(1) {
for (i=0; i < 17;i++) {
P0=(smgduan[i]|0x80)^0xff;
delay();
}
}
}
|