日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門 >> 單片機(jī)鍵盤接口技術(shù)

單片機(jī)鍵盤接口技術(shù)

作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-08  瀏覽:7

1.鍵盤接口電路<?XML:NAMESPACE PREFIX = O />

單片機(jī)的鍵盤接口電路有多種形式,最常用的是鍵盤掃描電路,如圖8-17所示。圖8-17中的鍵盤掃描電路是由3根行線與8根列線組成。3根行線的左邊接8155的PC口的3個(gè)引腳PC.0、PC.1、PC.2,右邊通過5K電阻接5V電源。8根列線通過反相器接8155B口(即位選口,地址為FF22H)。在行線與列線的交叉處設(shè)置一個(gè)按鍵,因此該單片機(jī)的鍵盤由3×8=24個(gè)按鍵組成。倒數(shù)第一、二行共16個(gè)數(shù)字鍵(0~F),第三行為8個(gè)功能鍵。從8155B口輸出8位低電平給8根列線d0~d7,若某行有鍵按下,則該行與列線接通為低電平。若某行無(wú)鍵按下,則該行保持高電平。由此可見,測(cè)試PC.0、PC.1、PC.2的狀態(tài)就可以知道有無(wú)鍵按下,此外通過掃描方式可取出按鍵的鍵值。按鍵鍵值:0~F為數(shù)字鍵鍵值,10H~17H為功能鍵鍵值。

2.鍵盤掃描程序

(1)入口地址:KEY-SCAN,

(2)作用:判有無(wú)鍵按下

    (3)出口狀態(tài):(A)=0 表示無(wú)鍵按下,

                  (A)≠0 表示有鍵按下。

(4)源程序  

3.取鍵值程序

(1)名稱與入口地址:KEY-GET 。

(2)作用:取按鍵鍵值。

(3)使用寄存器:A、R2、R4。

(4)出口狀態(tài):(A)=按鍵鍵值,0~F為數(shù)字鍵,10H~17H為功能鍵。

(5)程序設(shè)計(jì)基本思想

①調(diào)用鍵盤掃描程序判有無(wú)鍵按下,若無(wú)鍵按下則繼續(xù)判斷,若有鍵按下則取按鍵鍵值。在介紹取按鍵鍵值的方法之前先介紹列掃描碼的概念。

  ②列掃描碼

列掃描碼共8位,其中有1位為0 ,其它各位為1,初始值為11111110,該初始值存放在R2中,如圖8-27所示,0所在列的列號(hào)j存放在R4中,當(dāng)?shù)趈 列有鍵按下時(shí),按鍵所在行為低電平0,通過查行值是否為0,可確定按鍵的行號(hào)與列號(hào),并據(jù)此算出按鍵鍵值。因此列掃描碼的作用是確定第幾列有鍵按下。

③送列掃描碼

列掃描碼由R2通過累加器A傳送給8155B口,并由8155B口輸出給鍵盤電路的8根列線。8根列線中,第j列為0,其余各列為1。

④取行值

從PC口的PC.0~PC.2讀行信號(hào),若讀出的行值均為1,說(shuō)明第j列無(wú)鍵按下,將R2中的掃描碼左移1位,并將列號(hào)j存儲(chǔ)寄存器R4加1,轉(zhuǎn)③重新送掃描碼,查下一列有無(wú)鍵按下。若讀出第i行的行值中為0,說(shuō)明在第i行與第j列處有鍵按下,應(yīng)計(jì)算鍵值。

⑤計(jì)算鍵值

若讀出第i行為0 ,則說(shuō)明第i行與第j列處有鍵按下,由掃描碼中0所在列號(hào)j與行值為0的行號(hào)i可計(jì)算出按鍵鍵值:

鍵值= i×8+j。 (式中i=0~2,j=0~7)

例如:第0列與第0行處的按鍵按下,鍵值=0×8+0=0   ,即數(shù)字0鍵。

      第0列與第1行處的按鍵按下,鍵值=1×8+0=8   ,即數(shù)字8鍵。

      第0列與第2行處的按鍵按下,鍵值=2×8+0=10H。

由圖8-27可看出,上述計(jì)算公式是完全正確的。

<?XML:NAMESPACE PREFIX = V />因?yàn)樗℃I值存放在累加器A中,列號(hào)j存放R4中,第i行為0可通過PC.i=0進(jìn)行判斷,所以按鍵鍵值計(jì)算公式可改為

(6)流程圖:如圖8-29所示。

(7)源程序 

注意:在調(diào)用鍵盤程序的主程序中,必須將8155初始化為A、B口基本I/O輸出方式,C口為基本輸入方式。然后才能調(diào)用上面取鍵值程序。

思考題:如何使0~7鍵與8~F鍵的鍵值互換,即按0鍵時(shí)顯示8,按8鍵時(shí)顯示0等?提示:將取鍵程序KEY_GET中的指令①與②互換即可。

編輯:admin  最后修改時(shí)間:2018-05-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

峨山| 阿克陶县| 靖西县| 临湘市| 吉木萨尔县| 宁阳县| 九龙县| 罗平县| 内乡县| 蓝山县| 桓台县| 阿拉善盟| 宁阳县| 阿拉善盟| 石柱| 云安县| 六安市| 二连浩特市| 兰溪市| 司法| 尉氏县| 阿尔山市| 渝北区| 武川县| 濮阳市| 永清县| 明溪县| 潞西市| 闸北区| 太湖县| 夏邑县| 兰考县| 浠水县| 永川市| 宜州市| 娄底市| 长汀县| 襄汾县| 宁陕县| 天全县| 双牌县|