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
賺錢方法
捕魚
主站蜘蛛池模板: 啪啪永久免费av| 天堂中文在线资源| 一级毛片免费播放视频| 国产欧美日韩另类精彩视频| 久久精品嫩草研究院| 日本黄网在线观看| 日日碰狠狠添天天爽| 欧美国产菊爆免费观看| 欧美日韩中文国产va另类| www.精品国产| 国产成a人片在线播放| 鲁鲁鲁爽爽爽在线视频观看| 午夜老司机永久免费看片| 在线观看免费人成视频色快速| 高h视频在线| 精品综合久久久久久97超人该| 99在线观看国产| 男人天堂亚洲天堂| 日韩麻豆小视频| 婷婷99视频精品全部在线观看| 91香蕉视频下载网站| 国产精品原创不卡在线| 激情五月婷婷综合网| 国产亚洲欧美在线专区| 色丁丁毛片在线观看| 亚洲日韩Av中文字幕无码| 在线观看无码av五月花| 国产96在线 | 97成人在线视频| 久久国语对白| 亚洲精品你懂的| 黄色国产在线| 99久久精品国产自免费| 亚洲日本精品一区二区| 中文字幕日韩视频欧美一区| 亚洲熟女偷拍| 国产成人一区| 456亚洲人成高清在线| 中字无码精油按摩中出视频| 色婷婷电影网| 欧美 亚洲 日韩 国产| 国产激情在线视频| 亚洲天堂啪啪| 国产哺乳奶水91在线播放| 先锋资源久久| 欧美成人精品一区二区| 一区二区理伦视频| 国产精品无码在线看| 成人免费一级片| 久草视频一区| 97久久人人超碰国产精品| 青青青草国产| 91综合色区亚洲熟妇p| 伊人久久福利中文字幕| 在线观看无码a∨| 欧美激情,国产精品| 亚洲中文字幕久久无码精品A| 亚洲国产成人久久精品软件| 日本午夜精品一本在线观看| 精品福利视频网| 一级毛片免费的| 国内自拍久第一页| 欧美一级高清片久久99| 91青青草视频| 98精品全国免费观看视频| 十八禁美女裸体网站| 五月综合色婷婷| 青青青视频免费一区二区| 国产经典在线观看一区| 久久综合色88| 国产丝袜丝视频在线观看| 一级一级一片免费| 日本午夜在线视频| 亚洲成人精品| 尤物精品国产福利网站| 欧洲在线免费视频| 久久a毛片| 毛片久久网站小视频| 狠狠色婷婷丁香综合久久韩国| 波多野结衣一级毛片| 亚洲一区二区三区国产精华液| 99在线观看视频免费|