本帖最后由 芯圣电子官方QQ 于 2023-7-25 10:05 编辑
void LED_Scan1(void)
{
SEG++;
if(SEG>23)SEG=1;
P2 = 0xFC;
P2M3 = 0x99; //PIN1 2.6
P2M2 = 0x99; //PIN2 PIN3 2.5 2.4
P2M1 = 0x99; //PIN4 PIN5 2.3 2.2
P2M0 = 0x99; //PIN6 2.1
if(SEG == 1){ //A1
if(Data1[3]&0x01){
P2M2 = 0x98; //PIN3
P2M2 = 0X89; //PIN2
P2 = 0xf4;//PIN2LOW
}
}
if(SEG == 2){ //B1
if(Data1[3]&0x02){
P2M1 = 0x89; //PIN4
P2M2 = 0x89; //PIN2
P2 = 0xf4;//PIN2LOW
}
}
if(SEG == 3){ //C1
if(Data1[3]&0x04){
P2M2 = 0x89; //PIN2
P2M1 = 0x98; //PIN5
P2 = 0xBC;//PIN5LOW
}
}
if(SEG == 4){ //D1
if(Data1[3]&0x08){
P2M2 = 0x89;//PIN2
P2M0 = 0x83; //PIN6
P2 = 0xF4;//PIN2LOW
}
}
if(SEG == 5){ //E1
if(Data1[3]&0x10){
P2M2 = 0x89;//PIN2
P2M1 = 0x98; //PIN5
P2 = 0xF4;//PIN2LOW
}
}
if(SEG == 6){ //F1
if(Data1[3]&0x20){
P2M2 = 0x89;//PIN2
P2M2 = 0x98; //PIN3
P2 = 0xEC;//PIN3LOW
}
}
if(SEG == 7){ //G1
if(Data1[3]&0x40){
P2M2 = 0x89;//PIN2
P2M1 = 0x89; //PIN4
P2 = 0xDC;//PIN4LOW
}
}
if(SEG == 8){ //DP1
if(Data1[3]&0x80){
P2M3 = 0x98;//PIN1 P02
P2M2 = 0x89;//PIN2
P2 = 0xF4;//PIN2LOW
}
}
if(SEG == 9){ //A2
if(Data1[4]&0x01){
P2M1 = 0x88;//PIN4
P2 = 0xBC;//PIN5LOW
}
}
if(SEG == 10){ //B2
if(Data1[4]&0x02){
P2M1 = 0x98;//PIN5
P2M2 = 0x98; //PIN3
P2 = 0xEC;//PIN3LOW
}
}
if(SEG == 11){ //C2
if(Data1[4]&0x04){
P2M1 = 0x88;//PIN5
P2 = 0xDC;//PIN4LOW
}
}
if(SEG == 12){ //D2
if(Data1[4]&0x08){
P2M1 = 0x89; //PIN4
P2M2 = 0x98; //PIN3
P2 = 0xEC;//PIN3LOW
}
}
if(SEG == 13){ //E2
if(Data1[4]&0x10){
P2M2 = 0x98;//PIN3
P2M0 = 0x89; //PIN6
P2 = 0x7C;//PIN6LOW
}
}
if(SEG == 14){ //F2
if(Data1[4]&0x20){
P2M1 = 0x89; //PIN4
P2M2 = 0x98; //PIN3
P2 = 0xDC;//PIN4LOW
}
}
if(SEG == 15){ //G2
if(Data1[4]&0x40){
P2M2 = 0x98;//PIN3
P2M1 = 0x98; //PIN5
P2 = 0xBC;//PIN5LOW
}
}
if(SEG == 16){ //DP2
if(Data1[4]&0x80){
P2M3 = 0x98;//PIN1
P2M2 = 0x98; //PIN3
P2 = 0xEC;//PIN3LOW
}
}
if(SEG == 17){ //A3
if(Data1[5]&0x01){
P2M0 = 0x89;//PIN6
P2M3 = 0x98; //PIN1
P2 = 0xF8;//PIN1LOW
}
}
if(SEG == 18){ //B3
if(Data1[5]&0x02){
P2M0 = 0x89;//PIN6
P2M2 = 0x98; //PIN3
P2 = 0xEC;//PIN3LOW
}
}
if(SEG == 19){ //C3
if(Data1[5]&0x04){
P2M0 = 0x89;//PIN6
P2M1 = 0x98; //PIN5
P2 = 0xBC;//PIN5LOW
}
}
if(SEG == 20){ //D3
if(Data1[5]&0x08){
P2M0 = 0x89;//PIN6
P2M1 = 0x89; //PIN4
P2 = 0x7C;//PIN6LOW
}
}
if(SEG == 21){ //E3
if(Data1[5]&0x10){
P2M0 = 0x89;//PIN6
P2M1 = 0x89; //PIN4
P2 = 0xDC;//PIN4LOW
}
}
if(SEG == 22){ //F3
if(Data1[5]&0x20){
P2M0 = 0x89;//PIN6
P2M1 = 0x98; //PIN5
P2 = 0x7C;//PIN6LOW
}
}
if(SEG == 23){ //G3
if(Data1[5]&0x40){
P2M1 = 0x98;//PIN5
P2M3 = 0x98; //PIN1
P2 = 0xF8;//PIN1LOW
}
}
}
这是数码管显示的部分程序,我使用的三位六脚数码管,使用0.2-0.7引脚显示正常,就是2.1-2.6显示有问题,请大师帮忙看看,是不是**作哪里有问题,谢谢啦!!!! |