999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種單片機鍵盤的實現方法

2016-11-14 06:11:56聶麗文
深圳職業技術學院學報 2016年1期
關鍵詞:單片機方法

聶麗文

(深圳職業技術學院 計算機工程學院,廣東 深圳 518055)

一種單片機鍵盤的實現方法

聶麗文

(深圳職業技術學院 計算機工程學院,廣東 深圳 518055)

介紹了一種單片機應用系統中鍵盤的實現方法,該方法使用的單片機資源為一路A/D轉換和一個外部中斷,硬件主要包括一個串聯的電阻網絡、一個施密特觸發器;軟件采用中斷方式處理按鍵.該方法的原理是利用每個按鍵對應的不同電阻對VCC進行分壓,再經A/D轉換為其對應的不同的數字量,且當有鍵被按下時使施密特觸發器產生下降沿,引起單片機外部中斷,單片機通過中斷方式進行鍵盤處理.

單片機;鍵盤;A/D轉換;施密特觸發器.

1 常用實現單片機鍵盤的方法

在單片機應用系統中經常需要連接一些外部設備,其中鍵盤是構成人機對話的一種基本方式,具有向單片機輸入數據、命令等功能,通常實現單片機鍵盤的方法有:獨立式鍵盤法、矩陣鍵盤法、專用鍵盤控制芯片法[1].

1)獨立鍵盤法.也稱為直接連接法,是將按鍵開關直接連接到單片機的I/O線上,一個按鍵連接一根I/O線.此方法硬件和軟件都較簡單.當按鍵個數很少時,可以采用這種方法,有幾個按鍵就需要占用幾根I/O線,這種方法鍵盤占用單片機的I/O資源較多.

2)矩陣鍵盤法.一般地,當按鍵個數大于8時,多采用此法,將按鍵排列成矩陣形式,將矩陣的行線和列線分別連接到單片機的I/O線,所占用單片機的I/O線數為該矩陣的行數與列數之和.可見,矩陣法雖然比獨立按鍵法占用的單片機I/O資源少,但當按鍵較多時,仍然需要占用較多的單片機I/O資源.

3)專用鍵盤控制芯片法.有時受到單片機的I/O口數量的限制,不能采用上述方式實現鍵盤,則可以采用外圍專用鍵盤控制芯片(如具有I2C接口的鍵盤控制芯片ZLG7290)來實現單片機鍵盤.該方法可以實現多至64個按鍵組成的鍵盤,只需要占用3根單片機的I/O線.此法,硬件上添加了專用芯片,軟件上通過控制該芯片實現鍵盤功能.

文獻[2-3] 給出單片機A/D端口擴展鍵盤的方法,本文介紹另一種實現單片機鍵盤的方法,即通過A/D轉換法實現鍵盤輸入.

2 A/D轉換法實現單片機鍵盤

A/D轉換方法通過一個串聯電阻網絡、一個施密特觸發器、一路空閑的A/D,以中斷的方式實現單片機系統的鍵盤輸入,如圖1所示.占用單片機的資源僅為一路A/D和一個外部中斷.

2.1 工作原理

如圖1所示,該鍵盤電路由電阻R1至R8、按鍵K1至K8(不限于8個按鍵,可以多至幾十個)、公共電阻R、電容C、一個施密特觸發器、一路A/D組成.當無按鍵被按下時,A/D的輸入電壓Vin為低,施密特觸發器輸出為高電平,中斷信號無效;當有按鍵被按下時,Vin產生一定的電壓值,施密特觸發器的輸入端產生由零電壓向正電壓的變化,使施密特觸發器觸發.這樣,施密特觸發器的輸出端就會產生一個下降沿,從而引起單片機中斷.

圖1 A/D轉換法實現鍵盤的原理圖

可以根據所選的施密特觸發器的不同,通過調整R1-R8以及R的值,使Vin的變化能夠引起施密特觸發器觸發.也就是說,選擇各按鍵對應的電阻值時要注意,按鍵對應的電阻(R1至R8)值之和與公共電阻R對VCC的分壓產生的Vin應高于施密特觸發器的觸發電壓,這樣才能保證每個按鍵按下時,都會使施密特觸發器觸發,在其輸出端產生一個下降沿,從而引起單片機中斷.中斷程序流程圖如圖2所示.進入中斷服務程序后,啟動A/D,并置位按鍵標志位.主程序流程圖如圖3所示.鍵盤處理模塊流程圖如圖4所示.在鍵盤處理模塊中,首先判斷按鍵標志是否被置位,若是,則說明有按鍵被按下,則需讀取A/D轉換的結果.由于不同按鍵被按下時Vin不同,則A/D轉換結果值不同,對所讀取的A/D轉換的結果進行處理后即可據此判斷出被按下的是哪個鍵,獲取相應鍵值,最后將按鍵標志清除.

電容C和施密特觸發器,都保證了鍵盤在沒有按鍵被按下或按鍵抖動時,不會引起單片機中斷.只有當按鍵被按下時,單片機中斷才會被觸發.電容C的取值參考設計實例.

2.2 設計實例

圖2 中斷程序流程

圖3 主程序流程

圖4 鍵盤處理模塊流程

圖5 設計實例

如圖5所示,單片機使用STM32F103,它內含12位線性A/D,VCC為3.6V,參考電壓VREF為3.6V,按鍵使用硅膠碳膜按鍵,施密特觸發器采用的是74HC14.

首先是公共電阻R和電容C的選擇.公共電阻R的阻值應遠大于按鍵的接觸電阻,硅膠碳膜按鍵的接觸電阻小于100 Ω,此處電阻R選擇1 MΩ,電容C選用0.1μf.電容C宜選的小些,它影響到從按鍵按下至電容C充電至施密特觸發器被觸發引起單片機中斷的時間,也決定了按鍵的響應時間.

其次是電阻R1~R8(本例以8個按鍵為例)的選擇.R1~R8都要選擇常用電阻序列中的值.方法是,先根據按鍵個數和VCC以及施密特觸發器的觸發電壓值假定各按鍵對應的Vin值,計算出各按鍵對應的電阻值,在常用電阻序列表中找出各電阻值的接近值.然后,再根據確定的R1~R8反過來計算出各按鍵對應的Vin值即可.

在該實例中,選擇電阻R1~R8的步驟如下:

1)先預設各按鍵對應的Vin的差值, 12位線性A/D,參考電壓VREF為3.6V,則A/D轉換的分辨率為0.879 mV,20倍的分辨率對應的是17.6 mV,采用按鍵對應的Vin的差值大于等于17.6mV即可.但在該例中,按鍵個數只有8個,我們可以選擇按鍵對應的Vin的差值大些,如選擇按鍵對應的Vin差值為0.1V,這樣我們預設8個按鍵K1~K8對應的Vin1~Vin8的值分別為:3.5、3.4、3.3、3.2、3.1、3.0、2.9、2.8V.說明:當鍵盤的按鍵個數增多時,可以減小按鍵對應的Vin的電壓差(這里只要大于17.6mV即可),可見該例中可以擴充按鍵的個數.考慮到采用的施密特觸發器74HC14,使其輸出產生下降沿翻轉的輸入電壓為2.17V(據74HC14的DC參數表可知,當其VCC為3.6V時,使其輸出產生下降沿跳變的輸入電壓為3.6V*60%=2.17V),所以要保證各按鍵對應的Vin都必須大于2.17V, 這樣的話,理論上按鍵的個數擴展至幾十個沒有問題.

2)根據上述預設的各按鍵對應的Vin值,計算出各按鍵對應的電阻值R1~R8,然后再在常用電阻序列表中找出阻值接近的電阻(注意電阻值要遠大于按鍵的接觸電阻).

據預估的Vin值求R1~R8的公式如下:(該例中VCC=3.6V, R=1 MΩ)

當K1鍵按下時: [VCC/(R+R1)]*R=Vin1,可以求出R1;

當K2鍵按下時:[VCC/(R+R1+R2)]*R=Vin2, 可以求出R2;

……

當Ki鍵按下時: [VCC/(R+∑Ri)]*R=Vini(∑Ri=R1+R2+…+Ri),可以求出Ri.

例如,求R1時(由于單片機中A/D的輸入電阻很大,與R并聯時可以不考慮),K1接通,其它按鍵無論是斷開或接通,都有公式:[3.6V/(1 MΩ+R1)]*1 MΩ=3.5V,求得:R1≈28 KΩ,查常用電阻系列,選其中的接近值R1=27 KΩ(在“精度位5%的碳膜電阻的標稱值系列”表中查找),最后確定了R1取值為27 KΩ.同理,得到其他的電阻值如圖5所示.

可見,當有2個及以上的按鍵同時按下時,只有最低的一個按鍵有效.此方法不能識別2個及以上的按鍵同時按下.

由R1再反過來計算K1按下時,對應的Vin值:

Vin1=3.6V*[1M Ω/(R1+1MΩ)]=3.505V,

則軟件處理時設置K1鍵的電壓有效值為:3.505V±(0.1V*20%),允許誤差為按鍵對應的Vin的差值的20%. 則對應于K1鍵,A/D輸出的取值范圍為:

上限:(3.505+0.02)/3.6*4096≈4011,

下限:(3.505-0.02)/3.6*4096≈3965.

則當A/D連續采樣4個值都在3965~4011范圍內,就可以認為是此鍵K1被按下了.同理,可以計算出K1~K8鍵對應的電壓為3.505~2.799V;得到K2~K8對應的A/D輸出取值范圍.

綜上所述,此例中施密特觸發器采用74HC14,據其DC參數表可知,當VCC為3.6V時,使其輸出產生下降沿翻轉的輸入電壓值約為2.17V,而上述各鍵被按下時對應的電壓值遠高于該值.軟件處理中當采樣值低于2V時均認為是抖動,舍棄.當連續采樣4個電壓差值在按鍵對應的電壓差值的20%(如此例中為0.1V*20%)內時,才確定該按鍵被按下.

3 結 論

本文所述單片機鍵盤的實現方法已經在多個單片機相關項目中應用,能可靠地實現鍵盤的功能.在實際中若使用的單片機含有A/D且有一路空閑,且單片機的I/O資源較緊張時,采用此方法實現單片機鍵盤是個不錯的選擇.該方法不能處理多個按鍵同時按下的情況,當多個按鍵同時被按下時,只有編號較低的按鍵有效.根據單片機的VCC以及所使用的施密特觸發器的不同,此法所能連接按鍵的個數有所不同,一般可連接十幾個到幾十個按鍵.

[1] 張毅剛.單片機原理及接口技術[M].北京:人民郵電出版社,2011.

[2] 常波.利用單片機A/D端口擴展鍵盤的方法[J].單片機與嵌入式系統應用,2001(8):77.

[3] 尹授遠.通過單片機A/D方式實現鍵盤輸入的方法[J].儀器儀表用戶,2001(3):38-39.

A Method for Realizing MCU Keyboard

NlE Liwen

(School of Computer Engineering, Shenzhen Polytechnic, Shenzhen, Guangdong 518055, China)

This paper introduces a method to realize the keyboard in the application system of MCU, in which only one A/D channel and an external interrupt of MCU’s resources are used. In hardware, a resistance network and a Schmitt trigger are used. In software, MCU process keyboard by Interrupt mode. The principle of this method is to use the different resistance of each key to divide voltage of VCC, so MCU will get the different results of A/D. When a key is pressed, the Schmitt trigger will get a falling edge output, thus causing an external interrupt of MCU.

MCU; keyboard; A/D; Schmitt trigger

TP272

A

1672-0318(2016)01-0015-04

10.13899/j.cnki.szptxb.2016.01.003

2015-09-02

聶麗文(1966-),女,江蘇鎮江人,副教授,工學碩士,研究方向:計算機應用.

猜你喜歡
單片機方法
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
學習方法
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 香蕉久人久人青草青草| 亚洲天堂色色人体| 欧美日韩专区| 国产老女人精品免费视频| 国产粉嫩粉嫩的18在线播放91| 国产原创自拍不卡第一页| 99人体免费视频| 亚洲一级色| 久久精品视频一| 国产精品99久久久久久董美香| 国产精品白浆无码流出在线看| 国产麻豆福利av在线播放| 无码啪啪精品天堂浪潮av| 国产人成乱码视频免费观看| 午夜福利在线观看入口| 被公侵犯人妻少妇一区二区三区| 国产福利微拍精品一区二区| 激情无码字幕综合| 国产视频 第一页| 99re这里只有国产中文精品国产精品| 日韩无码白| 国产尤物jk自慰制服喷水| 夜夜爽免费视频| www.99在线观看| 97av视频在线观看| 久久综合一个色综合网| 婷婷六月综合网| 一本一道波多野结衣一区二区| 91麻豆国产视频| 91久久偷偷做嫩草影院电| 一级毛片在线免费视频| 国产人人射| 欧美成人精品一级在线观看| 久久这里只精品国产99热8| A级毛片无码久久精品免费| 精品无码一区二区在线观看| 日本高清免费不卡视频| 国产在线观看91精品| 亚洲欧美激情小说另类| 99久久免费精品特色大片| 国产大片喷水在线在线视频| 国产h视频免费观看| 亚洲一区二区三区国产精品| 欧美激情视频二区三区| 国产免费福利网站| 亚洲男人天堂网址| 视频二区欧美| 国产午夜看片| 欧美日本中文| 伊人蕉久影院| 精品国产免费观看| 人妻丝袜无码视频| 在线看片国产| 国产一区二区三区免费| 国产又黄又硬又粗| 日韩最新中文字幕| 无码人中文字幕| 日韩不卡免费视频| 五月丁香伊人啪啪手机免费观看| 91免费观看视频| 91成人在线免费观看| 欧美a在线| 欧美激情,国产精品| 欧美日韩国产精品综合 | 亚洲一区二区三区国产精品| 精品久久久久久成人AV| 国产香蕉一区二区在线网站| 亚洲一区免费看| 在线观看精品国产入口| 日韩av手机在线| 国产欧美日韩另类| 无码中文字幕加勒比高清| 国产91九色在线播放| 三上悠亚一区二区| 在线国产你懂的| 三上悠亚一区二区| 久久精品这里只有国产中文精品| 欧美日韩高清| 精品国产aⅴ一区二区三区| 91精品在线视频观看| 沈阳少妇高潮在线| 亚洲AV无码久久精品色欲 |