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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)獨(dú)立按鍵程序按鍵后數(shù)字顯示不了?

[復(fù)制鏈接]
ID:656213 發(fā)表于 2020-11-24 00:02 | 顯示全部樓層 |閱讀模式
本帖最后由 jiahz2019 于 2020-11-25 11:52 編輯

實(shí)驗(yàn) : 8個(gè)獨(dú)立按鍵,在數(shù)碼上顯示對(duì)應(yīng)按鍵的8個(gè)數(shù)字。幫我看一下,有什么問(wèn)題,按鍵后數(shù)字顯示不了

/*****************************************************************************
           獨(dú)立按鍵,數(shù)碼管顯示,0--8
                   P0口控制數(shù)碼管,P1口按鍵
*****************************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   //共陽(yáng)數(shù)碼管段碼

void delay(uint ms)
{
        uint i;
        while(ms--)
        {
                for(i=0;i<120;i++);
        }
}
void main(viod)
{
        uchar key;
        P0=0xff;
        P1=0xff;
        while(1)
        {
                if(P1!=0xff)                                //等待按鍵被按下
                {
                        delay(200);
                        if(P1!=0xff)
                        {
                                key=P1;
                                switch(key)
                                {
                                        case 0xfe: P0=led_code[1]; break;
                                        case 0xfd: P0=led_code[2]; break;
                                        case 0xfb: P0=led_code[3]; break;
                                        case 0xf7: P0=led_code[4]; break;
                                        case 0xef: P0=led_code[5]; break;
                                        case 0xdf: P0=led_code[6]; break;
                                        case 0xbf: P0=led_code[7]; break;
                                        case 0x7f: P0=led_code[8]; break;
                                }
                        }
                }
        }
}



回復(fù)

使用道具 舉報(bào)

ID:716656 發(fā)表于 2020-11-24 07:59 來(lái)自手機(jī) | 顯示全部樓層
好像按鍵這沒(méi)啥問(wèn)題,,是不是數(shù)碼管程序有問(wèn)題,delay200,是不有點(diǎn)長(zhǎng),再加個(gè)松手檢測(cè)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-11-24 08:11 | 顯示全部樓層
樓主對(duì)比一下就知道問(wèn)題所在
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   //共陽(yáng)數(shù)碼管段碼

void delay(uint ms)
{
        uint i;
        while(ms--)
        {
                for(i=0;i<120;i++);
        }
}
void main(void)
{
        uchar key;
        P0=led_code[key];
        P1=0xff;
        while(1)
        {
                if(P1!=0xff)      //等待按鍵被按下
                {
                        delay(20);
                        if(P1!=0xff)
                        {       
                                switch(P1)
                                {
                                        case 0xfe: key=1; break;
                                        case 0xfd: key=2; break;
                                        case 0xfb: key=3; break;
                                        case 0xf7: key=4; break;
                                        case 0xef: key=5; break;
                                        case 0xdf: key=6; break;
                                        case 0xbf: key=7; break;
                                        case 0x7f: key=8; break;
                                }
                                P0=led_code[key];
                                while(P1!=0xff);
                        }
                }
        }
}

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:848156 發(fā)表于 2020-11-24 08:42 | 顯示全部樓層
延時(shí)太長(zhǎng)了,需要長(zhǎng)時(shí)間按著才行,delay(200);改程delay(20);之類(lèi)的
回復(fù)

使用道具 舉報(bào)

ID:848156 發(fā)表于 2020-11-24 08:43 | 顯示全部樓層
延時(shí)太長(zhǎng)了,
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   //共陽(yáng)數(shù)碼管段碼

void delay(uint ms)
{
        uint i;
        while(ms--)
        {
                for(i=0;i<120;i++);
        }
}
void main(void)
{
        uchar key;
        P0=led_code[key];
        P1=0xff;
        while(1)
        {
                if(P1!=0xff)      //等待按鍵被按下
                {
                        delay(20);
                        if(P1!=0xff)
                        {      
                                switch(P1)
                                {
                                        case 0xfe: key=1; break;
                                        case 0xfd: key=2; break;
                                        case 0xfb: key=3; break;
                                        case 0xf7: key=4; break;
                                        case 0xef: key=5; break;
                                        case 0xdf: key=6; break;
                                        case 0xbf: key=7; break;
                                        case 0x7f: key=8; break;
                                }
                                P0=led_code[key];
                                while(P1!=0xff);
                        }
                }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:158375 發(fā)表于 2020-11-24 11:41 | 顯示全部樓層
程序結(jié)構(gòu)問(wèn)題:應(yīng)該在定時(shí)中斷里面查按鍵,這樣CPU才能做其他工作。
回復(fù)

使用道具 舉報(bào)

ID:656213 發(fā)表于 2020-11-25 11:50 | 顯示全部樓層
壓著我頭發(fā)啦 發(fā)表于 2020-11-24 07:59
好像按鍵這沒(méi)啥問(wèn)題,,是不是數(shù)碼管程序有問(wèn)題,delay200,是不有點(diǎn)長(zhǎng),再加個(gè)松手檢測(cè)

沒(méi)有問(wèn)題么,好的,我再檢查看,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:656213 發(fā)表于 2020-11-27 00:56 | 顯示全部樓層
首先,謝謝樓上各位的解答,這兩天沒(méi)得空,今天晚上終于有時(shí)間驗(yàn)證一下了,
按照wulin大師的,我直接復(fù)制過(guò)去是OK的, 但是我對(duì)比著不同點(diǎn)做修改,愣是還不行,我逐句的對(duì)比,標(biāo)點(diǎn)
符號(hào)都不放過(guò),最后我修改的還是不行,難道是我書(shū)寫(xiě)的問(wèn)題?這問(wèn)題出在哪呢?你們?cè)賻臀铱纯矗?img src="static/image/smiley/default/em01.gif" smilieid="1" border="0" alt="" />
下面是我修改過(guò)的:
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   //共陽(yáng)數(shù)碼管段碼

void delay(uint ms)
{
        uint i;
        while(ms--)
        {
                for(i=0;i<120;i++);
        }
}
void main(viod)
{
        uchar key;
        P0=led_code[key];
        P1=0xff;
        while(1)
        {
                if(P1!=0xff)                                //等待按鍵被按下
                {
                        delay(20);
                        if(P1!=0xff)
                        {
                                switch(P1)
                                {
                                        case 0xfe: key=1; break;
                                        case 0xfd: key=2; break;
                                        case 0xfb: key=3; break;
                                        case 0xf7: key=4; break;
                                        case 0xef: key=5; break;
                                        case 0xdf: key=6; break;
                                        case 0xbf: key=7; break;
                                        case 0x7f: key=8; break;
                                }
                                                                P0=led_code[key];
                                                                while(P1!=0xff);
                        }
                }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-11-27 06:00 | 顯示全部樓層
jiahz2019 發(fā)表于 2020-11-27 00:56
首先,謝謝樓上各位的解答,這兩天沒(méi)得空,今天晚上終于有時(shí)間驗(yàn)證一下了,
按照wulin大師的,我直接復(fù)制 ...

從開(kāi)始你就寫(xiě)錯(cuò)關(guān)鍵字void main(viod),正確寫(xiě)法:void main(void)或void main()。
回復(fù)

使用道具 舉報(bào)

ID:656213 發(fā)表于 2020-11-27 10:45 | 顯示全部樓層
wulin 發(fā)表于 2020-11-27 06:00
從開(kāi)始你就寫(xiě)錯(cuò)關(guān)鍵字void main(viod),正確寫(xiě)法:void main(void)或void main()。

, 謝謝指點(diǎn)啊,呵呵,看來(lái)我還是有點(diǎn)馬虎
回復(fù)

使用道具 舉報(bào)

ID:656213 發(fā)表于 2020-11-27 20:02 | 顯示全部樓層
還有個(gè)問(wèn)題想請(qǐng)教一下, 就是這句之后,      if(P1!=0xff)      //等待按鍵被按下,  如果一直沒(méi)有按按鍵,程序是不是一直就等在這里,不往下走了?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩久久久久久 | 成人欧美一区二区三区在线观看 | 狠狠干在线 | 久久久久国产 | 国产精品美女久久久久aⅴ国产馆 | 三级高清| 欧美久久一区 | 欧美黑人体内she精在线观看 | 欧日韩不卡在线视频 | 99精品一区二区 | 久久久久网站 | 久久中文字幕一区 | 亚洲精品一区二三区不卡 | 秋霞电影一区二区三区 | 99自拍视频| 日韩激情一区 | 日韩三区在线观看 | 久久综合影院 | 久久久久久久夜 | 亚洲一区二区三区在线视频 | 极品粉嫩国产48尤物在线播放 | 国产日韩欧美在线 | 国产欧美在线播放 | 91观看| 欧美视频二区 | 亚洲精品久久久9婷婷中文字幕 | 国产日韩精品视频 | 欧美日韩精品一区二区三区蜜桃 | 午夜视频导航 | 成人亚洲一区 | 精品九九九 | 国产精品视频 | 国产精品欧美一区喷水 | 国产精品国产精品国产专区不卡 | 精品国产一区二区三区成人影院 | 韩国av网站在线观看 | 天天亚洲| 一级毛片播放 | 黄色三级免费网站 | 精品国产一区二区三区久久狼黑人 | 一区二区三区影院 |