亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 51單片機(jī)四位數(shù)碼管計(jì)時(shí)顯示程序求助 [打印本頁]

作者: wzynb    時(shí)間: 2024-5-22 18:12
標(biāo)題: 51單片機(jī)四位數(shù)碼管計(jì)時(shí)顯示程序求助
各位大佬主要看主函數(shù)就行
Nixietube_number這個(gè)函數(shù)就是在數(shù)碼管第幾位顯示數(shù)字幾
這個(gè)代碼運(yùn)行個(gè)位數(shù)的時(shí)候就沒有問題,把if那段刪了只留else里面的運(yùn)行兩位數(shù)也沒問題,但是使用ifelse的話并不能像我預(yù)想中那樣,一位數(shù)時(shí)只顯示第四個(gè)燈,當(dāng)需要顯示數(shù)字為兩位數(shù)時(shí)再顯示兩個(gè)燈
反而在顯示數(shù)字為9之后會(huì)短暫什么都不顯示,然后第四個(gè)燈就開始亂閃
希望大佬能指點(diǎn)一下我為什么用了ifelse顯示就出問題了

單片機(jī)源程序如下:
#include <REGX52.H>
void Nixietube_number(int position,int number);
void Delay(long xms);
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
int n=0;
int i=0;
void main()
{
        TMOD=0x01;
        TH0=(65535-20000)/256;
        TL0=(65535-20000)%256;
        EA=1;ET0=1;
        TR0=1;
        while(1)
        {
                if(0<=n<10)
                {
                        Nixietube_number(4,n);
                }
                 else
                 {
                        Nixietube_number(4,n%10);
                        Nixietube_number(3,n/10);
               
        }
                 
        }
}

void Delay(long xms)   
{
    unsigned char i, j;

    while(xms--)
    {
    i = 2;
    j = 239;
    do
    {
        while (--j);
    } while (--i);
    }
}


void Nixietube_number(int position,int number)
{
    unsigned char numberSize[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
    switch(position)
    {
        case 1:
            led1=1;led2=0;led3=0;led4=0;break;
        case 2:
            led1=0;led2=1;led3=0;led4=0;break;
        case 3:
            led1=0;led2=0;led3=1;led4=0;break;
        case 4:
            led1=0;led2=0;led3=0;led4=1;break;
    }
    P2=numberSize[number];
    Delay(5);
               
     }

        void tiemr0() interrupt 1
        {
                TH0=(65535-20000)/256;
        TL0=(65535-20000)%256;
                i++;
                if(i==50)
                {
                        i=0;
                        n=n+1;
                }
        }
作者: xiaobendan001    時(shí)間: 2024-5-22 18:56
電路圖呢?這樣的驅(qū)動(dòng)方式還是挺新穎的,ifelse的意思是無效零消隱嗎?
作者: lkc8210    時(shí)間: 2024-5-22 19:00
if(0<=n<10)這種寫法不正確
應(yīng)改為if(0<=n && n<10)
但n其實(shí)不會(huì)少于0
所以可以簡化為if(n<10)
作者: xxxevery    時(shí)間: 2024-5-22 19:30
你的numberSize[]數(shù)組應(yīng)該就是numberSize[10],你用大于9的n去取值不是越位了嗎
作者: xiaobendan001    時(shí)間: 2024-5-23 07:19
lkc8210 發(fā)表于 2024-5-22 19:00
if(0

對啊,可是看起來樓主是編譯通過了吧




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