wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機鍵盤程序(4×4矩陣式)

作者:89s51   來源:不詳   點擊數(shù):  更新時間:2007年05月16日   【字體:

1.實驗任務(wù)

如圖4.14.2所示,用AT89S51的并行口P1接4×4矩陣鍵盤,以P1.0-P1.3作輸入線,以P1.4-P1.7作輸出線;在數(shù)碼管上顯示每個按鍵的“0-F”序號。對應(yīng)的按鍵的序號排列如圖4.14.1所示  

 

圖4.14.1

2.硬件電路設(shè)計原理圖

 

 

 

圖4.14.2

3.系統(tǒng)板上硬件連線設(shè)計

(1.       把“單片機系統(tǒng)“區(qū)域中的P3.0-P3.7端口用8芯排線連接到“4X4行列式鍵盤”區(qū)域中的C1-C4 R1-R4端口上;

(2.       把“單片機系統(tǒng)”區(qū)域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:P0.0/AD0對應(yīng)著a,P0.1/AD1對應(yīng)著b,……,P0.7/AD7對應(yīng)著h。

4.  程序設(shè)計內(nèi)容

(1.       4×4矩陣鍵盤識別處理

(2.       每個按鍵有它的行值和列值 ,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關(guān)的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”實現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。

5.程序框圖

圖4.14.3

6.匯編源程序代碼

KEYBUF    EQU 30H

            ORG 00H

START:      MOV KEYBUF,#2

WAIT:  

            MOV P3,#0FFH

            CLR P3.4

            MOV A,P3

            ANL A,#0FH 

            XRL A,#0FH

            JZ NOKEY1

            LCALL DELY10MS

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY1

            MOV A,P3

            ANL A,#0FH

            CJNE A,#0EH,NK1

            MOV KEYBUF,#0

            LJMP DK1

NK1:        CJNE A,#0DH,NK2

            MOV KEYBUF,#1

            LJMP DK1

NK2:        CJNE A,#0BH,NK3

            MOV KEYBUF,#2

            LJMP DK1

NK3:        CJNE A,#07H,NK4

            MOV KEYBUF,#3

            LJMP DK1

NK4:        NOP

DK1:   

            MOV A,KEYBUF

            MOV DPTR,#TABLE

            MOVC A,@A+DPTR

            MOV P0,A

 

DK1A:       MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JNZ DK1A

NOKEY1:

            MOV P3,#0FFH

            CLR P3.5

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY2

            LCALL DELY10MS

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY2

            MOV A,P3

            ANL A,#0FH

            CJNE A,#0EH,NK5

            MOV KEYBUF,#4

            LJMP DK2

NK5:        CJNE A,#0DH,NK6

            MOV KEYBUF,#5

            LJMP DK2

NK6:        CJNE A,#0BH,NK7

            MOV KEYBUF,#6

            LJMP DK2

NK7:        CJNE A,#07H,NK8

            MOV KEYBUF,#7

            LJMP DK2

NK8:        NOP

DK2:   

            MOV A,KEYBUF

            MOV DPTR,#TABLE

            MOVC A,@A+DPTR

            MOV P0,A

 

DK2A:       MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JNZ DK2A

NOKEY2:

            MOV P3,#0FFH

            CLR P3.6

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY3

            LCALL DELY10MS

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY3

            MOV A,P3

            ANL A,#0FH

            CJNE A,#0EH,NK9

            MOV KEYBUF,#8

            LJMP DK3

NK9:        CJNE A,#0DH,NK10

            MOV KEYBUF,#9

            LJMP DK3

NK10:       CJNE A,#0BH,NK11

            MOV KEYBUF,#10

            LJMP DK3

NK11:       CJNE A,#07H,NK12

            MOV KEYBUF,#11

            LJMP DK3

NK12:       NOP

DK3:

            MOV A,KEYBUF

            MOV DPTR,#TABLE

            MOVC A,@A+DPTR

            MOV P0,A

 

DK3A:       MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JNZ DK3A

NOKEY3:

            MOV P3,#0FFH

            CLR P3.7

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY4

            LCALL DELY10MS

            MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JZ NOKEY4

            MOV A,P3

            ANL A,#0FH

            CJNE A,#0EH,NK13

            MOV KEYBUF,#12

            LJMP DK4

NK13:       CJNE A,#0DH,NK14

            MOV KEYBUF,#13

            LJMP DK4

NK14:       CJNE A,#0BH,NK15

            MOV KEYBUF,#14

            LJMP DK4

NK15:       CJNE A,#07H,NK16

            MOV KEYBUF,#15

            LJMP DK4

NK16:       NOP

DK4:   

            MOV A,KEYBUF

            MOV DPTR,#TABLE

            MOVC A,@A+DPTR

            MOV P0,A

 

DK4A:       MOV A,P3

            ANL A,#0FH

            XRL A,#0FH

            JNZ DK4A

NOKEY4:

            LJMP WAIT

DELY10MS:

            MOV R6,#10

D1:         MOV R7,#248

            DJNZ R7,$

            DJNZ R6,D1

            RET

TABLE:      DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

            DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

            END

7. C語言源程序

#include <AT89X51.H>

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,

                            0x66,0x6d,0x7d,0x07,

                            0x7f,0x6f,0x77,0x7c,

                            0x39,0x5e,0x79,0x71};

unsigned char temp;

unsigned char key;

unsigned char i,j;

 

 

void main(void)

{

  while(1)

    {

      P3=0xff;

      P3_4=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;             

              switch(temp)

                {

                  case 0x0e:

                    key=7;

                    break;

                  case 0x0d:

                    key=8;

                    break;

                  case 0x0b:

                    key=9;

                    break;

                  case 0x07:

                    key=10;

                    break;

                }

              temp=P3;

              P1_0=~P1_0;

              P0=table[key];

              temp=temp & 0x0f;             

              while(temp!=0x0f)

                {

                  temp=P3;

                  temp=temp & 0x0f;             

                }

            }

        }

 

      P3=0xff;

      P3_5=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;             

              switch(temp)

                {

                  case 0x0e:

                    key=4;

                    break;

                  case 0x0d:

                    key=5;

                    break;

                  case 0x0b:

                    key=6;

                    break;

                  case 0x07:

                    key=11;

                    break;

                }

              temp=P3;

              P1_0=~P1_0;

              P0=table[key];

              temp=temp & 0x0f;             

              while(temp!=0x0f)

                {

                  temp=P3;

                  temp=temp & 0x0f;             

                }

            }

        }

 

      P3=0xff;

      P3_6=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;             

              switch(temp)

                {

                  case 0x0e:

                    key=1;

                    break;

                  case 0x0d:

                    key=2;

                    break;

                  case 0x0b:

                    key=3;

                    break;

                  case 0x07:

                    key=12;

                    break;

                }

              temp=P3;

              P1_0=~P1_0;

              P0=table[key];

              temp=temp & 0x0f;             

              while(temp!=0x0f)

                {

                  temp=P3;

                  temp=temp & 0x0f;             

                }

            }

        }

 

      P3=0xff;

      P3_7=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;             

              switch(temp)

                {

                  case 0x0e:

                    key=0;

                    break;

                  case 0x0d:

                    key=13;

                    break;

                  case 0x0b:

                    key=14;

                    break;

                  case 0x07:

                    key=15;

                    break;

                }

              temp=P3;

              P1_0=~P1_0;

              P0=table[key];

              temp=temp & 0x0f;             

              while(temp!=0x0f)

                {

                  temp=P3;

                  temp=temp & 0x0f;             

                }

            }

        }

    }

}

 

 

關(guān)閉窗口
紧缚奴在线一区二区三区| 97久草视频| 精品粉嫩超白一线天av| 欧美三级日韩三级| 91成人网在线| 在线观看日韩电影| 欧美撒尿777hd撒尿| 在线国产电影不卡| 欧美日韩久久久久久| 在线免费观看一区| 欧美绝品在线观看成人午夜影视| 精品视频在线免费| 91精品欧美一区二区三区综合在| 91精品国产综合久久精品| 欧美人与z0zoxxxx视频| 777a∨成人精品桃花网| 精品久久久久久亚洲综合网| 日韩你懂的在线播放| 日韩欧美亚洲一区二区| 亚洲福利视频在线| 在线视频欧美性高潮| 中文字幕欧美视频在线| 欧美精品中文字幕一区| 欧美亚洲成人xxx| 国产精品男女猛烈高潮激情| 亚洲最大av在线| 久久伊人一区| 亚洲资源视频| 米仓穗香在线观看| 波多野结衣50连登视频| 亚洲网中文字幕| 亚洲AV无码国产精品| 国产91在线播放九色| 99热精品免费| 成人午夜精品视频| 五月激情婷婷综合| 91视频福利| 久播影院第一理论片| 男人久久精品| av老司机免费在线| 国产日本亚洲| 色综合久久网| 久热国产精品| av网站免费线看精品| 亚洲欧美日韩国产成人精品影院| 日韩欧美综合在线视频| 欧美mv和日韩mv国产网站| 在线电影欧美日韩一区二区私密| 8x拔播拔播x8国产精品 | 欧美三级小视频| 黄色污污网站在线观看| 亚洲乱码精品久久久久..| 欧美xxxxbb| 成人h动漫在线| 国产乱视频在线观看| 永久免费毛片在线播放| 美女视频亚洲色图| 亚洲片区在线| 99国产精品久久久| 精品免费在线视频| 日韩国产精品视频| 国产xxx69麻豆国语对白| 蜜桃成人在线| 亚洲免费av一区二区三区| 玖玖爱在线精品视频| 日本在线观看视频网站| 国产综合在线播放| 菠萝蜜视频网站入口| 日本在线丨区| 精品美女一区| 欧美日韩国产探花| www.激情成人| 色婷婷av一区二区三区软件| 亚洲人在线观看| 国产美女高潮久久白浆| 亚洲国产精品影视| 国产原创剧情av| 偷偷操不一样的久久| www.亚洲一区二区三区| 日本粉色视频在线观看| 自拍偷拍亚洲视频| 欧美第十八页| 不卡视频免费播放| 在线观看网站黄不卡| 久久精品久久久久久国产 免费| 91亚洲精品在线| 成年人午夜免费视频| 法国空姐电影在线观看| 亚洲一区二区三区高清视频| 色猫视频免费观看| av在线官网| 久操成人av| 韩国成人福利片在线播放| 亚洲一线二线三线视频| 亚洲摸下面视频| 亚洲aⅴ日韩av电影在线观看| 少妇人妻大乳在线视频| 蜜桃av乱码一区二区三区| 伊人网av在线| 2020色愉拍亚洲偷自拍| av日韩国产| 98精品视频| 91在线小视频| 日韩三级.com| 成人久久一区二区| 色播五月综合网| 国产精品免费精品一区| 免费在线视频你懂的| 成人免费高清观看| 午夜日韩视频| 亚洲综合一二三区| 色综合色综合久久综合频道88| 亚洲欧美丝袜| 天堂av免费在线| 色偷偷精品视频在线播放| av在线电影院| 日韩欧美一区二区三区在线视频| www久久久久| 日韩精品小视频| 国外成人免费视频| 国产a级黄色片| 欧美一级做性受免费大片免费 | 久久国产精品区| 在线一区二区观看| 国产精品久久久久久久久久久新郎| 欧美黄色免费影院| 亚洲视频 欧美视频| 天天摸在线视频| 亚洲欧美综合久久久久久v动漫| 麻豆一区二区三区| 欧美精品tushy高清| 91精品综合久久久久久五月天| 亚洲色图偷拍视频| 精品人妻一区二区三区含羞草| 调教在线观看| 精品久久久久久久久久久aⅴ| 国产无一区二区| 久久视频精品在线| 亚洲人成无码网站久久99热国产| 天天干天天干天天操| 日日躁夜夜躁人人揉av五月天| 九九热播视频在线精品6| wwwwxxxxx欧美| xxxx欧美18另类的高清| 97久久国产亚洲精品超碰热| 黄网在线观看视频| 三上悠亚在线资源| 91精品久久久久久综合五月天| aaa欧美日韩| 久久精品影视伊人网| 婷婷五月综合缴情在线视频| 亚洲香蕉在线视频| 欧美a在线看| 午夜影院日韩| 欧美精品第1页| 蜜桃麻豆91| 日韩黄色免费观看| qvod激情图片| 精品国产一区二区三区| 亚洲一区影音先锋| 国产日韩欧美91| 小早川怜子久久精品中文字幕| 在线观看成年人网站| 国产一区二区三区视频在线| 国产视频一区不卡| 2023亚洲男人天堂| 911亚洲精选| 国产精品久久久亚洲第一牛牛| 精品久久福利| 国产目拍亚洲精品99久久精品| 午夜免费在线观看精品视频| 久久久精品视频国产| 亚洲精品乱码电影在线观看 | 欧美激情日韩| 欧美日韩视频在线第一区| 国产精品一区二区三区免费| 91精品人妻一区二区| 黄色毛片在线| 深夜福利久久| 在线一区二区三区四区| 青青草原成人| 日本妇乱大交xxxxx| 中文字幕中文字幕在线中高清免费版| 蜜臀av一区二区在线观看 | 国产精品久久久久久亚洲av| 九色91蝌蚪在线| 欧美成人一区在线观看| 黄色一区二区在线| 久久影视中文粉嫩av| 日本天堂网在线| 日本三级在线视频| 国产一区二区免费视频| 久色乳综合思思在线视频| jizz18女人| 国产福利一区二区在线精品| 国产美女撒尿一区二区| 狠狠色狠色综合曰曰| 欧美精品123| 亚洲中文字幕在线观看| 国产在线精彩视频| 国产亚洲制服色| 成人羞羞国产免费| 99热国产在线观看| 日韩欧美一起| 久久久www免费人成精品| 国产成人精品日本亚洲| 欧美巨胸大乳hitomi| 中文天堂av| 久久一区中文字幕| xxxxx91麻豆| 懂色av粉嫩av蜜乳av| 免费av片风间由美在线| 亚洲一区视频| 另类色图亚洲色图| 人妻少妇无码精品视频区| 色资源网站在线观看| 久久亚洲色图| 欧美第一黄色网| 人妻视频一区二区| 牛牛澡牛牛爽一区二区| 国产在线国偷精品免费看| 国产91精品黑色丝袜高跟鞋| 成年人二级毛片| 欧美精品电影| 久久久久国产精品厨房| 超碰97人人在线| 亚洲网站免费观看| 95精品视频| 欧美性大战久久久久久久蜜臀 | 国产午夜亚洲精品午夜鲁丝片| 亚洲aⅴ日韩av电影在线观看| 国产无遮挡呻吟娇喘视频| 日本h片在线| 亚洲日本韩国一区| 亚洲精品日韩精品| 久久夜色邦福利网| 日韩理论在线| 国产一区二区三区免费视频| 天天插天天射天天干| 久久久pmvav| 91久色porny| 欧美成人在线免费观看| 欧美 中文字幕| 国产成人黄色| 国产午夜精品免费一区二区三区| 欧美大喷水吹潮合集在线观看| 新欧美整片sss第一页| eeuss影院一区二区三区| 亚洲最大的网站| www.蜜臀av.com| 亚洲婷婷丁香| 在线日韩日本国产亚洲| 国产成人精品视频免费| 亚洲卡一卡二| 亚洲国产欧美日韩另类综合| h无码动漫在线观看| 免费下载黄色软件| 麻豆精品一区二区三区| 国产啪精品视频网站| 国产精品久久久久久免费播放| 成人51免费| 精品噜噜噜噜久久久久久久久试看 | 蜜桃av乱码一区二区三区| 岛国中文字幕在线| 亚洲一级二级在线| 熟女少妇在线视频播放| 黄色av免费| 99国内精品久久| 亚洲一区二区不卡视频| 第四色播日韩| 蜜桃视频第一区免费观看| 91久久久久久久久| 天堂中文在线观看视频| 在线中文字幕第一区| 91成人国产在线观看| 一级黄色大毛片| 日本一区二区高清不卡| 欧美高清在线视频观看不卡| 亚洲va在线观看| 欧美日韩导航| 北条麻妃一区二区三区中文字幕| 精品欧美一区二区久久久久| 国产精品一区二区免费福利视频| 日韩美女在线视频| 亚洲第一综合网| 欧美magnet| 精品国产露脸精彩对白| jizzjizzjizz国产| 91九色综合| 亚洲毛片在线免费观看| 中文字幕亚洲欧美日韩| 国产精品va视频| 亚洲色图第一页| 久久亚洲AV无码| 国产一区福利| 国内精品小视频| 国产99久久九九精品无码免费| h视频久久久| 久久久国产成人精品| 波多野结衣视频观看| 不卡av一区二区| 国产精品久久久久久久av大片| 亚洲色图偷窥| 日韩av电影天堂| 欧美色欧美亚洲另类七区| 黄网网址免费| 国产日韩在线不卡| 免费av网址在线| 香蕉视频网站在线观看| 91成人免费电影| 欧美福利第一页| xvideos.蜜桃一区二区| 久久999免费视频| 成 人片 黄 色 大 片| 亚洲精品婷婷| 久久综合福利| 1024欧美极品| 一级日本不卡的影视| 麻豆tv在线观看| 亚洲电影有码| 久久精品国产久精国产一老狼| 国产精品高清无码| 亚洲国产三级| 欧美高清视频一区| 国产午夜视频| 亚洲成人免费电影| 亚洲一级av无码毛片精品| 欧美男女视频| 欧美日韩成人在线观看| 天天干,天天操,天天射| 久久99精品久久久久| 精品免费久久久久久久| 久久精品a一级国产免视看成人| 在线亚洲精品福利网址导航| 亚洲激情图片网| 精品成人影院| 97碰碰视频| 涩涩漫画在线观看| 亚洲va韩国va欧美va| 欧美 日韩 成人| 要久久电视剧全集免费| 国产成人综合久久| 污污视频免费看| 亚洲青青青在线视频| av在线网站观看| 亚洲妇女av| 福利视频一区二区三区| bt电影在线| 欧美影院精品一区| 特一级黄色大片| 中文亚洲欧美| 国产又粗又爽又黄的视频| 成人性爱视频在线观看| 精品久久久久久久久久久久包黑料| 久久午夜免费视频| 一区二区91| 国产午夜精品视频一区二区三区| 老司机免费在线视频| 亚洲人av在线影院| 人人妻人人澡人人爽精品日本| 国产美女一区二区| 好男人www社区| www.国产精品| 国产精品久久久久久久久久新婚 | 蜜臀99久久精品久久久久久软件| 久久亚洲精品无码va白人极品| 欧美高清视频| 中文字幕免费精品一区| 青青草原国产在线观看| 中文字幕+乱码+中文字幕一区| 国产又黄又粗又猛又爽的视频 | aaa国产精品视频| 成人亚洲欧美一区二区三区| a视频免费看| 在线播放/欧美激情| 少妇无套内谢久久久久| 久久国产精品72免费观看| 我看黄色一级片| 精品一区二区三区中文字幕在线 | 欧美日韩一区二区三区视视频 | 亚洲黄色在线看| 开心激情综合网| 中文欧美字幕免费| 天堂av网手机版| 欧美在线精品一区| 轻点好疼好大好爽视频| 成a人片在线观看www视频| 亚洲视频综合网| 国产尤物一区二区三区| 亚洲欧美区自拍先锋| 久热精品在线观看| 日韩高清在线一区| 日本激情综合网| 日本成人中文| 少妇特黄a一区二区三区| 欧美寡妇性猛交xxx免费| 久久久噜噜噜久久| www.麻豆传媒| 日韩午夜av一区| 天天操天天射天天舔|