久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1413|回復: 4
收起左側

51單片機四位數碼管計時顯示程序求助

[復制鏈接]
ID:1121884 發表于 2024-5-22 18:12 來自觸屏版 | 顯示全部樓層 |閱讀模式
各位大佬主要看主函數就行
Nixietube_number這個函數就是在數碼管第幾位顯示數字幾
這個代碼運行個位數的時候就沒有問題,把if那段刪了只留else里面的運行兩位數也沒問題,但是使用ifelse的話并不能像我預想中那樣,一位數時只顯示第四個燈,當需要顯示數字為兩位數時再顯示兩個燈
反而在顯示數字為9之后會短暫什么都不顯示,然后第四個燈就開始亂閃
希望大佬能指點一下我為什么用了ifelse顯示就出問題了

單片機源程序如下:
#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;
                }
        }
回復

使用道具 舉報

ID:1109793 發表于 2024-5-23 07:19 | 顯示全部樓層

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

使用道具 舉報

ID:59202 發表于 2024-5-22 19:30 | 顯示全部樓層
你的numberSize[]數組應該就是numberSize[10],你用大于9的n去取值不是越位了嗎
回復

使用道具 舉報

ID:161164 發表于 2024-5-22 19:00 | 顯示全部樓層
if(0<=n<10)這種寫法不正確
應改為if(0<=n && n<10)
但n其實不會少于0
所以可以簡化為if(n<10)
回復

使用道具 舉報

ID:1109793 發表于 2024-5-22 18:56 | 顯示全部樓層
電路圖呢?這樣的驅動方式還是挺新穎的,ifelse的意思是無效零消隱嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99精品久久久 | 51成人网| 久久riav | 欧美视频在线观看 | 日韩精品视频免费在线观看 | 视频一二三区 | 久久久免费观看 | 国产a久久麻豆入口 | 懂色av一区二区夜夜嗨 | 亚洲综合激情网 | 4438成人网 | 一区二区不卡视频 | 免费毛片在线播放免费 | 日韩精品在线一区 | 美女张开腿 | 国产一区二区在线视频 | 久久精品观看 | 在线日韩欧美 | 成人爽a毛片一区二区免费 亚洲午夜在线观看 | 丁香婷婷六月天 | 免费网站观看www在线观 | 国产又色又爽又黄又免费 | 在线看片a| 一区二区三区不卡视频 | 成人免费视频网站 | 久久精品久久久久久久 | 亚洲国产精品久久久久 | 天天射影院| 日韩欧美在线播放 | 久久午夜影院 | 神马午夜影院 | 免费精品 | 在线欧美日韩 | 亚洲性网站| 免费看一级黄色片 | 国产视频一区二区在线观看 | 丰满少妇av | 免费观看a级片 | 婷婷四房综合激情五月 | 成人性生活片 | 国产激情综合五月久久 |