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

標(biāo)題: 51單片機(jī)按鍵時(shí),數(shù)碼管會(huì)閃爍一下。原因是什么 [打印本頁(yè)]

作者: 小車滾輪子    時(shí)間: 2015-3-23 19:43
標(biāo)題: 51單片機(jī)按鍵時(shí),數(shù)碼管會(huì)閃爍一下。原因是什么
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar  tt,bai,shi,ge;
uint count=300;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
sbit key2=P3^5;
void delay(uchar z);
void init();
void key();
void display(uint count);
void main()
{
        dula=1;
        P0=0;
        dula=0;
        wela=1;
        P0=0xf8;
        wela=0;
        init();
        while(1)
        {
                key();
                display(count);
               
               
        }
}

void delay(uchar z)
{
        int i,j;
        for(i=z;i>0;i--)
                for(j=110;j>0;j--);
}

void init()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;

}

void timer_0() interrupt 1
{        
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        tt++;
        if(tt==20)
        {
                tt=0;
                count--;
        }        
}

void key()
{
        if(key1==0)
        {
                delay(10);
                if(key1==0)
                {
                        TR0=1;
               
                }
                while(!key1);
        }
}

void display(uint count)
{
            delay(10);
                bai=count/100;
                shi=(count-bai*100)/10;
                ge=count%10;

                dula=1;
                P0=table[bai];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfe;
                wela=0;
                delay(2);

                dula=1;
                P0=table[shi];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfd;
                wela=0;
                delay(3);

                dula=1;
                P0=table[ge];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfb;
                wela=0;        
                        delay(3);
        
}

按鍵按下,數(shù)碼管只顯示最后一個(gè)個(gè)位,好無(wú)奈啊 ,試了好長(zhǎng)時(shí)間!
剛開(kāi)始學(xué)51,希望大蝦們?cè)敿?xì)給說(shuō)一下什么原因,要怎么修改。。。


作者: admin    時(shí)間: 2015-3-23 22:21
while(!key1);,你程序中的這一句,意思是,等待按鍵松手。可見(jiàn)他一直在執(zhí)行死循環(huán)。所以這個(gè)時(shí)候,數(shù)碼管的掃描也停止了,因此,出現(xiàn)那只有一個(gè)數(shù)碼管亮的情況。不知道這樣說(shuō)你能不能夠理解
作者: 酸葡萄愛(ài)好者2    時(shí)間: 2015-3-29 14:09
  1. if (K1==0)
  2.                 {
  3.                         delayms(10);
  4.                         if (K1==0)
  5.                         {
  6.                                 num=0;
  7.                                 while(!K1);
  8.                         }
復(fù)制代碼
感覺(jué)你應(yīng)該在鍵盤檢測(cè)時(shí)候進(jìn)行軟件延時(shí)消除抖動(dòng)   比如這個(gè)程序

作者: yyqwade1028    時(shí)間: 2016-10-17 20:36
admin 發(fā)表于 2015-3-23 22:21
while(!key1);,你程序中的這一句,意思是,等待按鍵松手。可見(jiàn)他一直在執(zhí)行死循環(huán)。所以這個(gè)時(shí)候,數(shù)碼管 ...

大神 請(qǐng)收下我的膝蓋 完美的解決了我的問(wèn)題 太厲害了!!
作者: lgjdqm    時(shí)間: 2016-11-26 15:07
應(yīng)該把顯示時(shí)間延長(zhǎng)一些
作者: zl2168    時(shí)間: 2016-11-26 17:39
應(yīng)該在保持顯示的同時(shí),檢測(cè)鍵盤。
作者: 24k俊濤    時(shí)間: 2016-11-26 18:33
努力。細(xì)心點(diǎn)吧。加油
作者: DIY小裕    時(shí)間: 2016-11-28 10:54
你好!你寫數(shù)碼管的顯示函數(shù)那部分都有bai shi ge 三個(gè)變量,則你在聲明函數(shù)時(shí)也要給三個(gè)參數(shù).
作者: 我的心33    時(shí)間: 2016-11-28 11:10
死循環(huán),等待按鍵松手,程序沒(méi)有執(zhí)行掃描數(shù)碼管
作者: l1263271375    時(shí)間: 2016-11-28 12:05
分時(shí)復(fù)用了引腳吧
作者: sunnypid    時(shí)間: 2016-11-28 15:01
要貼上原理圖,才能更好理解你的程序。貌似key()函數(shù)里有問(wèn)題:判斷KEY變量,啟動(dòng)T0計(jì)時(shí)器,后面又是while循環(huán)語(yǔ)句。感覺(jué)MCU在這里耗時(shí)了,影響數(shù)碼管的動(dòng)態(tài)掃描。
作者: 阮經(jīng)天下    時(shí)間: 2021-12-7 18:40
yyqwade1028 發(fā)表于 2016-10-17 20:36
大神 請(qǐng)收下我的膝蓋 完美的解決了我的問(wèn)題 太厲害了!!

怎么改的,大神,請(qǐng)?jiān)敿?xì)指教一下,我也是新手,多謝
作者: lkc8210    時(shí)間: 2021-12-9 14:16
阮經(jīng)天下 發(fā)表于 2021-12-7 18:40
怎么改的,大神,請(qǐng)?jiān)敿?xì)指教一下,我也是新手,多謝

        if (K1==0)
                {
                        delayms(10);
                        if (K1==0 && K1_Bit == 0)
                        {
                                num=0;
                                K1_Bit = 1;//bit K1_Bit
                        }
        }else{
                K1_Bit = 0;
        }
作者: wdnma    時(shí)間: 2021-12-9 15:26
消除按鍵抖動(dòng)
作者: 18520649817    時(shí)間: 2021-12-13 08:54
把數(shù)碼管顯示放進(jìn)定時(shí)器也行,同時(shí)在大循環(huán)運(yùn)行會(huì)有影響
作者: 244141084    時(shí)間: 2021-12-13 09:48
去GitHub找個(gè)按鍵的驅(qū)動(dòng)吧,比自己寫的強(qiáng)多了,功能還多
作者: 毛毛蟲peter    時(shí)間: 2021-12-13 18:18
你的按鍵是輪詢方式,將按鍵改用中斷處理,就不會(huì)有這個(gè)問(wèn)題
作者: hai4096500    時(shí)間: 2021-12-13 18:41
加三極管和譯碼器了嗎,你得鎖住
作者: 風(fēng)之痕于夢(mèng)想    時(shí)間: 2021-12-30 15:59
循環(huán)被中斷了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人特区 | 亚洲一级毛片 | 久久久久免费精品国产 | 国产成人免费 | 中文字幕在线观看 | 夜夜艹| 中文字幕一区二区三区精彩视频 | 亚洲国产一区二区在线 | 免费同性女女aaa免费网站 | 国产精品人人做人人爽 | 一区二区三区四区在线视频 | 色偷偷噜噜噜亚洲男人 | 精品91久久久 | 国产精品99久久久久久宅男 | 亚洲精品日韩综合观看成人91 | 日日日色 | 国产视频一区二区 | 亚洲一级毛片 | 亚洲在线一区二区 | 欧美 日韩 国产 成人 | 四虎影院在线播放 | 欧美中文字幕在线观看 | 免费在线观看成年人视频 | 日韩av免费在线观看 | 性色网站| 日韩在线精品 | 精品国产一区二区三区观看不卡 | 国产成人在线视频 | 亚洲91| 影视先锋av资源噜噜 | 最近中文字幕第一页 | 亚洲精品99| 国产中文 | 国产精品综合网 | 殴美成人在线视频 | 色噜噜色综合 | 韩日在线 | 精品乱码一区二区 | 亚洲国产精品99久久久久久久久 | 青青草国产在线观看 | 亚洲h视频 |