yzhkpli 发表于 2025-1-14 15:38:42

数码管没有从左边第一位显示

https://www.bilibili.com/video/BV1H7411n7AY


动态显示部分


#include "reg52.h"

#ifndef u16
#define u16 unsigned int
#endif

unsigned char s[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};//共阴0-9
unsigned char str[]={0x76,0x79,0x38,0x38,0x3F};//HELLO
unsigned char wei[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07};
//{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void delay(u16 n);

void seg(){
    int i;
    for(i=0;i<5;i++){
      //P2=0xFF;//P3=0x00;
                P3=wei;
      P2=str;
      delay(5);
    }
}

void main(){
    while(1){
      seg();
    }
}

void delay(u16 n){
    u16 i,j;
    for(i=0;i<n;i++){
      for(j=0;j<120;j++);
    }
}


结果是从左起第二位数码管显示的。

而教程演示是从最左边开始显示的。
跟教程不一样的就是我用的是hc138,教程是ls138.

请教为什么?


Lkck8210 发表于 2025-1-15 10:07:23

上课不留心,抄代码都抄错


yzhkpli 发表于 2025-1-15 13:23:40

Lkck8210 发表于 2025-1-15 10:07
上课不留心,抄代码都抄错

{:cahan:}本质没有理解代码含义。这下算明白了。{:weiqu:}

谢谢指点。{:baoquan:}
页: [1]
查看完整版本: 数码管没有从左边第一位显示