找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1820|回復(fù): 4
收起左側(cè)

關(guān)于51單片機(jī)四位數(shù)碼管滾動(dòng)顯示0~9的程序問題

[復(fù)制鏈接]
ID:1014417 發(fā)表于 2022-3-30 20:51 | 顯示全部樓層 |閱讀模式
請教一下,為什么我在實(shí)物板子上能運(yùn)行到了Protues仿真里卻無法正常運(yùn)行。

代碼如下:
#include <REGX52.H>
unsigned char N[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void Delay(unsigned int xms)
{
    unsigned char i, j;
    while(xms--)
    {
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } while (--i);
    }
}

void led (unsigned char Location,Number)
{
    switch(Location)        
    {
        case 1:P3_7=0x00;P3_6=0xFF;P3_5=0xFF;P3_4=0xFF;break;
        case 2:P3_7=0xFF;P3_6=0x00;P3_5=0xFF;P3_4=0xFF;break;
        case 3:P3_7=0xFF;P3_6=0xFF;P3_5=0x00;P3_4=0xFF;break;
        case 4:P3_7=0xFF;P3_6=0xFF;P3_5=0xFF;P3_4=0x00;break;
    }
    P0=N[Number];   
    Delay(1);               
    P0=0xFF;            
}



void main()
{
    unsigned int i,j;
   
    while(1)
    {
      i=0;
            for(i=0;i<7;i++)
        {
            for(j=0;j<100;j++)
            {
        led(1,i+0);   
     led(2,i+1);   
        led(3,i+2);
       led(4,i+3);
               
            }
        }
        }
        
        
}



51hei截圖20220330205056.png
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-3-30 23:40 | 顯示全部樓層
P0有沒有加上拉電阻?
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-3-31 08:45 | 顯示全部樓層
P3_X是位,不是字節(jié),用0、1;不要用FFH.
另外:走單步學(xué)會(huì)自己調(diào)試。
回復(fù)

使用道具 舉報(bào)

ID:860248 發(fā)表于 2022-3-31 22:25 | 顯示全部樓層
由於我用的是普中幵發(fā)板, 所以有少許修改, 並將顯示做到無縫連續(xù)顯示, 不會(huì)顯 6789後馬上變?yōu)?123

#include <REG52.H>
sbit LSA = P1^0;
sbit LSB = P1^1;
sbit LSC = P1^2;

unsigned char SMG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,0xf9,0xa4,0xb0};

void Delay(unsigned int xms)
{
    unsigned char i, j;
    while(xms--)
    {
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } while (--i);
    }
}

void led (unsigned char Location,Number)
{
    switch(Location)        
    {
        case 1: LSA = 0; LSB = 0; LSC = 0; break;
        case 2: LSA = 1; LSB = 0; LSC = 0; break;
        case 3: LSA = 0; LSB = 1; LSC = 0; break;
        case 4: LSA = 1; LSB = 1; LSC = 0; break;
    }
    P0=~SMG[Number];   
    Delay(1);               
    P0=0x00;            
}



void main()
{
    unsigned int i,j;

    while(1)
    {
      i=0;
        for(i=0;i<10;i++)
        {
            for(j=0;j<100;j++)
            {
                        led(1,i+0);   
                             led(2,i+1);   
                        led(3,i+2);
                               led(4,i+3);
            }
        }
    }
}


回復(fù)

使用道具 舉報(bào)

ID:1013716 發(fā)表于 2022-4-1 23:24 | 顯示全部樓層
數(shù)碼管是不顯示 還是顯示錯(cuò)誤 建議靜態(tài)測試一下 看你這程序是共陽管 P0=0xc0;P3=0xff;試試看.
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表