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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1248|回復: 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-22 18:56 | 顯示全部樓層
電路圖呢?這樣的驅動方式還是挺新穎的,ifelse的意思是無效零消隱嗎?
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频网站 | 亚洲国产精品va在线看黑人 | 欧美一区免费 | 国产精品污污视频 | av影音资源 | 午夜精品久久久久久久久久久久 | 欧美日韩在线免费 | 日本成人在线网址 | 成年精品| 超碰最新在线 | 99精品国自产在线 | av一区二区三区 | 中文字幕亚洲视频 | 午夜电影网址 | 久久久久久国产 | www日本在线 | 久久精品欧美一区二区三区不卡 | 亚洲一区二区三区在线视频 | 一区二区三区免费 | 国产免费麻豆视频 | 蜜桃视频成人 | 国产盗摄视频 | 日本在线网址 | 久久久久久久一区二区三区 | 在线播放中文字幕 | 亚洲精品电影网在线观看 | 精品国产欧美一区二区 | 亚洲精品一区二区三区蜜桃久 | 日韩快播电影 | 亚洲国产成人精品女人久久久野战 | www日本在线播放 | 亚洲导航深夜福利涩涩屋 | 亚洲精品自在在线观看 | 国产精品国产自产拍高清 | 亚洲精品乱码久久久久久按摩观 | 日韩高清www | 色综合欧美 | 男人天堂网址 | 日日夜夜精品 | 怡红院怡春院一级毛片 | 国产欧美性成人精品午夜 |