本帖最后由 名字不是重點 于 2022-8-31 06:45 編輯
上一貼已說過了:
573的OE被接地了,沒有消隱,沒有消隱,沒有消隱。。
咋就不聽不做呢???
我幫你調試好了,你可以直接用。
////打字太辛苦,畫圖更難受
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>
sbit d1=P2^0; //鎖存段碼
sbit d2=P2^1; // 鎖存位選
unsigned char dis_buf[8]; //顯示緩存
unsigned char dig; //位選
unsigned code segout[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0--9共陽段碼表
void disp_8_num(void); //顯示函數
void main(void) //主程序
{
unsigned char i;
while (1) //主循環
{
for(i=0;i<8;i++) dis_buf=i; //緩存刷新:01234567
disp_8_num(); //顯示一幀
}
}
void disp_8_num() //顯示函數,顯示8個數字 {
unsigned char i,j;
dig=0xfe; //從第一位開始掃顯
for (i=0;i<8;i++) //共8個位的數碼管
{
P0=segout[dis_buf]; //送段碼
d1=1;
d1=0;
P0=dig; //送位碼
d2=1;
d2=0;
j=60; //簡單延時,以穩定顯示
while(j--);
P0=0xff; //消隱位碼,段碼和位碼2選1或全選都可以
d2=1;
d2=0;
P0=0x00; //消隱段碼
d1=1;
d1=0;
dig= _crol_(dig,1); //準備下一位的位碼
}
}
|