標題: 單片機數(shù)碼管動態(tài)顯示時1,2,3報錯 顯示2,2,3就正常,怎么回事,請幫忙指教,謝謝 [打印本頁]

作者: liupeng03    時間: 2022-6-10 08:37
標題: 單片機數(shù)碼管動態(tài)顯示時1,2,3報錯 顯示2,2,3就正常,怎么回事,請幫忙指教,謝謝
如圖

51hei圖片_20220610082805.png (82.62 KB, 下載次數(shù): 73)

51hei圖片_20220610082805.png

51hei圖片_20220610082816.png (32.91 KB, 下載次數(shù): 81)

51hei圖片_20220610082816.png

作者: lkc8210    時間: 2022-6-10 10:48
啥叫報錯?
哪里報錯?
報錯信息呢?
作者: wulin    時間: 2022-6-10 12:19
你對照一下就知道哪里不對
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char

sbit dula=P2^6;
sbit wela=P2^7;

//順序共陰極數(shù)碼管段碼表,段碼a-h順序接PX0-PX7
uchar code table[]={//共陰數(shù)碼管段碼"0~f-."
                0x3f,0x06,0x5b,0x4f,
                0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x77,0x7c,
                0x39,0x5e,0x79,0x71,0x40,0x80};

void Delay_ms(uint t)
{
        uint i,j;
        for(i=t;i>0;i--)
                for(j=110;j>0;j--);
}
void main()                                                       
{
        uchar i;
        while(1)
        {
                P0=0x00;dula=1;dula=0;
                P0=~(0x01<<i);wela=1;wela=0;
                P0=table[i+1];dula=1;dula=0;
                i=++i%6;
                Delay_ms(1);
        }
}

作者: zhxiufan    時間: 2022-6-10 14:40
加上消隱應該就可以了。
作者: 興安xa    時間: 2022-6-10 18:41
這種寫法復雜化了,還是用查表法更好
        while (1)
        {
                P0=0x00;DU1=1;DU1=0;
                WE1=1;P0=0xfe;WE1=0;
                DU1=1;P0=0x06;DU1=0;//1
                delay(10);
                P0=0x00;DU1=1;DU1=0;
                WE1=1;P0=0xfd;WE1=0;
                DU1=1;P0=0x5b;DU1=0;//2
                delay(10);
                P0=0x00;DU1=1;DU1=0;
                WE1=1;P0=0xfb;WE1=0;
                DU1=1;P0=0x4f;DU1=0;//3
                delay(10);
作者: liupeng03    時間: 2023-11-10 09:03
興安xa 發(fā)表于 2022-6-10 18:41
這種寫法復雜化了,還是用查表法更好
        while (1)
        {

厲害厲害厲害厲害




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1