標(biāo)題: 單片機(jī)數(shù)碼管原理圖設(shè)計(jì)出錯,導(dǎo)致硬件電路的段選和位選單片機(jī)I/O口位置錯亂 [打印本頁]

作者: Entity    時間: 2021-11-18 11:08
標(biāo)題: 單片機(jī)數(shù)碼管原理圖設(shè)計(jì)出錯,導(dǎo)致硬件電路的段選和位選單片機(jī)I/O口位置錯亂
51單片機(jī)與數(shù)碼管相連時原理圖設(shè)計(jì)出錯,導(dǎo)致硬件電路的段選和位選I/O口位置錯亂
硬件的段選:(a~dp)P2.5,P0.6,P0.3,P0.1,P0.0,P2.6,P0.4,P0.2
位選:P2.4,P2.7,P0.7,P0.5
正確設(shè)計(jì):

我的錯誤設(shè)計(jì):


硬件已來不及更改,可不可在軟件編程時解決這個問題。

急急急急!

作者: devcang    時間: 2021-11-18 13:24

把電阻調(diào)換,可以在程序可以隨需要而更換不同的IO的。

作者: yzwzfyz    時間: 2021-11-18 13:41
當(dāng)然可以了。
作者: lkc8210    時間: 2021-11-18 14:06
void Re_IO(char dat)
{
P25 = dat & 0x01;
P06 = dat & 0x02;
P03 = dat & 0x04;
P01 = dat & 0x08;
P00 = dat & 0x10;
P26 = dat & 0x20;
P04 = dat & 0x40;
P02 = dat & 0x80;
}
作者: man1234567    時間: 2021-11-18 14:47
如果原先的軟硬件都沒問題,直接調(diào)整軟件就好,無需動硬件的。
作者: 188610329    時間: 2021-11-18 14:59
你們是組團(tuán)拼多多打板的么? 感覺這禮拜,這問題答了4~5次了。

sbit        duana        = P2^5;
sbit        duanb        = P0^6;
sbit        duanc        = P0^3;
sbit        duand        = P0^1;
sbit        duane        = P0^0;
sbit        duanf        = P2^6;
sbit        duang        = P0^4;
sbit        duandp        = P0^2;

sbit        wei0        = P2^4;
sbit        wei1        = P2^7;
sbit        wei2        = P0^7;
sbit        wei3        = P0^5;

u8        LED_Buff[4];

void        Show_Led(u8 LED_Num)
{
        u8        Temp;
        wei0        = 1;
        wei1        = 1;
        wei2        = 1;
        wei3        = 1;        //如果是共陽極的話全 = 0;

        Temp        = LED_Buff[LED_Num];
        Temp <<= 1;
        duandp        = CY;
        Temp <<= 1;
        duang        = CY;
        Temp <<= 1;
        duanf        = CY;
        Temp <<= 1;
        duane        = CY;
        Temp <<= 1;
        duand        = CY;
        Temp <<= 1;
        duanc        = CY;
        Temp <<= 1;
        duanb        = CY;
        Temp <<= 1;
        duana        = CY;

        switch(LED_Num)
        {
                case 0:        wei0 = 0;        break;
                case 1:        wei1 = 0;        break;
                case 2:        wei2 = 0;        break;
                case 3:        wei3 = 0;        break;        //共陽的話,這里 = 1;
                default:        break;
        }
}



作者: mtdzok    時間: 2021-11-18 15:13
不動硬件是無法實(shí)現(xiàn)的,不能重做PCB就只能動手改PCB,把R6R8電阻去掉短接,P2.5P2.6串接電阻,其他的就交給軟件了。當(dāng)然還要看你選的什么單片機(jī)
作者: 名字不是重點(diǎn)    時間: 2021-11-18 15:33
電路不改,真的很難。。
原因是,有的段碼接電阻了,有的沒接,有的位碼接電阻了,有的也沒接,只是調(diào)IO的話:
當(dāng)串電阻的段碼遇上串了電阻的位碼,數(shù)碼管亮度明顯不夠。
當(dāng)沒串電阻的段碼遇上同樣沒串電阻的位碼,可能會把LED燒焦!
難,不改板真的難。
作者: oahzhao    時間: 2021-11-18 17:01
必須得改電路了,測試還是可以的,就是不能用來做產(chǎn)品,這樣的產(chǎn)品是次品
作者: wc86110    時間: 2021-11-19 06:29
硬件要求和給出的電路圖也沒完全對上,這個不能只改程序還得改電路用飛線方法最好




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