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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc15單片機按鍵無法顯示

[復(fù)制鏈接]
ID:876099 發(fā)表于 2021-8-2 15:09 | 顯示全部樓層 |閱讀模式
我寫了一個按鍵檢測程序按下后只顯示00,按鍵不管用不知道哪里有問題希望有大佬幫忙解答一下
%M4G)KNZ7WSY)YX`F6[XJIT.png
單片機源程序如下:
#include <STC15F2K60S2.H>
#define uint unsigned int
#define uchar unsigned char
uchar sce,temp,i;
const uchar LED7Code[]={0xC0,0xF9,0xA4,0xB0,
                        0x99,0x92,0x82,0xF8,        
                        0x80,0x90,0x88,0x83,
                                                0xC6,0xA1,0x86,0x8E        
                       };
void  anjian()
{
  uchar aa,aa1,aa2;
   P1=0xf0;
   if(P1!=0xf0)
   {
    P2=0xff;
     aa=P1;
         P1=0x0f;
         if(P1!=0x0f)
         {aa1=P1;}
   }
   aa2=aa|aa1;
   switch(aa2)
   {
     case  0xee:sce=0;break;
         case  0xed:sce=1;break;
         case  0xeb:sce=2;break;
         case  0xe7:sce=3;break;
         case  0xde:sce=4;break;
         case  0xdd:sce=5;break;
         case  0xdb:sce=6;break;
         case  0xd7:sce=7;break;
         case  0xbe:sce=8;break;
         case  0xbd:sce=9;break;
         case  0xbb:sce=10;break;
         case  0xb7:sce=11;break;
         case  0x7e:sce=12;break;
         case  0x7d:sce=13;break;
         case  0x7b:sce=14;break;
         case  0x77:sce=15;break;
         default:break;
   }
}

void IO_Init()
{
        P0M0 = 0x00;P0M1 = 0x00;  
        P1M0 = 0x00;P1M1 = 0x00;
        P2M0 = 0x00;P2M1 = 0x00;
        P3M0 = 0x00;P3M1 = 0x00;
        P4M0 = 0x00;P4M1 = 0x00;
        P5M0 = 0x00;P5M1 = 0x00;
        P6M0 = 0x00;P6M1 = 0x00;
        P7M0 = 0x00;P7M1 = 0x00;
        P0 = 0x00;P1 = 0x00;P2 = 0xff;P3 = 0x00;
        P4 = 0x00;P5 = 0x00;P6 = 0x00;P7 = 0x00;
}


void main()
{
P2=0;
IO_Init();
while(1)
{
    anjian();
        P0=LED7Code[sce];
}
}   

回復(fù)

使用道具 舉報

ID:934353 發(fā)表于 2021-8-2 15:59 | 顯示全部樓層
你程序?qū)懙幕ハ嗝軈龋热缦旅妫?
P1=0xf0;
   if(P1!=0xf0)
就很奇怪,你都已經(jīng)定義了讓P0=0xf0了,if語句里當然條件不成立,就進不了if語句,然后 aa2=aa|aa1;也就沒有用了,因為你沒有改變這三個參數(shù)的值,也就是說還是0,所以后面就都錯了,所以當然無法通過按鍵改變顯示的值了
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-2 16:16 | 顯示全部樓層
開心就好hhhh 發(fā)表于 2021-8-2 15:59
你程序?qū)懙幕ハ嗝軈龋热缦旅妫?
P1=0xf0;
   if(P1!=0xf0)

后面我把這個刪了還是不行
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2021-8-2 16:36 | 顯示全部樓層
Proteus 某些版本的單片機腳灌電流能力不足
引致不能拉底電平
如P1=B11110000
按下某鍵
會出現(xiàn)P1=B11110100
而不是P1=B10110000

解決方法:
1. 上真東西
2. 取巧用以下電路代替 2021-08-02_163512.png

回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-2 17:18 | 顯示全部樓層
lkc8210 發(fā)表于 2021-8-2 16:36
Proteus 某些版本的單片機腳灌電流能力不足
引致不能拉底電平
如P1=B11110000

但是這樣不就是相當于獨立按鍵了嗎,請問一下沒有實物不用這種電路還有其他辦法嗎
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2021-8-2 17:25 | 顯示全部樓層
1045964948 發(fā)表于 2021-8-2 17:18
但是這樣不就是相當于獨立按鍵了嗎,請問一下沒有實物不用這種電路還有其他辦法嗎

我也想知道
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-2 18:04 | 顯示全部樓層

我換了開關(guān)還是不行
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2021-8-2 18:51 | 顯示全部樓層
1045964948 發(fā)表于 2021-8-2 18:04
我換了開關(guān)還是不行

給你一個示例參考
矩陣鍵盤數(shù)碼管顯示 仿真示例.zip (103.67 KB, 下載次數(shù): 5)
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-2 19:26 | 顯示全部樓層
wulin 發(fā)表于 2021-8-2 18:51
給你一個示例參考

我這個程序在51中運行也沒問題,就是在15中就沒變化
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2021-8-2 20:27 | 顯示全部樓層
1045964948 發(fā)表于 2021-8-2 19:26
我這個程序在51中運行也沒問題,就是在15中就沒變化

1T單片機太快了,在主循環(huán)最后加1ms延時試試。
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-3 08:55 | 顯示全部樓層
wulin 發(fā)表于 2021-8-2 20:27
1T單片機太快了,在主循環(huán)最后加1ms延時試試。

額,還是沒有變化,我看51的仿真里面按鍵按下后是高電平被拉低,然后我看15里面是低電平被拉高,會不會是這個原因
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2021-8-3 09:15 | 顯示全部樓層
1045964948 發(fā)表于 2021-8-3 08:55
額,還是沒有變化,我看51的仿真里面按鍵按下后是高電平被拉低,然后我看15里面是低電平被拉高,會不會是 ...

如我所說,灌電流不足以拉低電平
回復(fù)

使用道具 舉報

ID:934353 發(fā)表于 2021-8-3 15:15 | 顯示全部樓層
1045964948 發(fā)表于 2021-8-3 08:55
額,還是沒有變化,我看51的仿真里面按鍵按下后是高電平被拉低,然后我看15里面是低電平被拉高,會不會是 ...

接下拉電阻試試看,15的io口上電復(fù)位高電平來著
回復(fù)

使用道具 舉報

ID:507641 發(fā)表于 2021-8-4 11:26 | 顯示全部樓層
        P0M1 = 0;        P0M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P1M1 = 0;        P1M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P2M1 = 0;        P2M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P3M1 = 0;        P3M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P4M1 = 0;        P4M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P5M1 = 0;        P5M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P6M1 = 0;        P6M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
        P7M1 = 0;        P7M0 = 0;        //éèÖÃÎa׼˫Ïò¿ú
回復(fù)

使用道具 舉報

ID:507641 發(fā)表于 2021-8-4 11:28 | 顯示全部樓層
        P0M1 = 0;        P0M0 = 0;        //設(shè)置為準雙向IO口
        P1M1 = 0;        P1M0 = 0;       
        P2M1 = 0;        P2M0 = 0;       
        P3M1 = 0;        P3M0 = 0;       
        P4M1 = 0;        P4M0 = 0;       
        P5M1 = 0;        P5M0 = 0;       
        P6M1 = 0;        P6M0 = 0;       
        P7M1 = 0;        P7M0 = 0;       
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-7 19:00 | 顯示全部樓層
謝謝大家我在P1口加了下拉電阻問題得到解決
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-7 19:00 | 顯示全部樓層
但是開發(fā)板上面的矩陣按鍵我加不了下拉電阻所以還是不行,目前我在想辦法解決
回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2021-8-7 20:36 | 顯示全部樓層
1045964948 發(fā)表于 2021-8-7 19:00
但是開發(fā)板上面的矩陣按鍵我加不了下拉電阻所以還是不行,目前我在想辦法解決

stc15 P1口 有ADC功能,硬件結(jié)構(gòu)和普通51不一樣,不要用P1口既做輸出又做輸入來讀組合按鍵鍵值,換其他口。
回復(fù)

使用道具 舉報

ID:876099 發(fā)表于 2021-8-10 11:55 | 顯示全部樓層
xuyaqi 發(fā)表于 2021-8-7 20:36
stc15 P1口 有ADC功能,硬件結(jié)構(gòu)和普通51不一樣,不要用P1口既做輸出又做輸入來讀組合按鍵鍵值,換其他口 ...

好的感謝感謝我換成P6不需要任何上拉或下拉就可以實現(xiàn)功能了
回復(fù)

使用道具 舉報

ID:849376 發(fā)表于 2021-8-11 13:22 | 顯示全部樓層
做電路圖得注意某些特殊功能的引腳
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品18久久久久久白浆动漫 | 免费观看毛片 | 国产精品精品久久久 | 日韩欧美在线观看视频 | 真人女人一级毛片免费播放 | 中文字幕成人在线 | 精品免费在线 | 日本精品视频一区二区三区四区 | 成人毛片一区二区三区 | 在线观看国产三级 | av免费在线播放 | 久久精品亚洲精品国产欧美kt∨ | 精品一区二区久久 | 视频三区 | 中文字幕在线一区二区三区 | 久久国产成人精品国产成人亚洲 | 国产在线精品一区二区 | 日韩高清一区二区 | 午夜小视频免费观看 | 日日摸日日碰夜夜爽2015电影 | 亚洲第一福利视频 | 在线91 | 欧美男人天堂 | 91精品国产欧美一区二区 | 欧美精品乱码久久久久久按摩 | 国产高清精品在线 | 亚洲黄色成人网 | 亚洲欧洲成人av每日更新 | 国产一区精品在线 | 在线观看视频你懂得 | 免费国产视频 | 国产成人jvid在线播放 | 日韩亚洲一区二区 | 国产免费一区二区 | 91久久精品一区二区二区 | 国产精品久久久久一区二区 | 91精品久久久久久久久 | 91porn成人精品| 日本激情一区二区 | 国产免费自拍 | 999久久久国产精品 欧美成人h版在线观看 |