中文字幕无码成人免费视频,精品国产乱子伦一区二区三区,久久久久久亚洲精品不卡,任你躁欧美一级在线精品免费

您好,歡迎來到中國企業(yè)庫   [請登陸]  [免費注冊]
小程序  
APP  
微信公眾號  
手機版  
 [ 免責聲明 ]     [ 舉報 ]
客服電話:400-000-8722

【硬件攻略】51單片機·單片機外接鍵盤電路(下)

小R寄語:今天的文章是承接上次”單片機外接鍵盤電路“的內(nèi)容,大家可以找找先前的文章再回憶一下咯。(⊙v⊙)



程序設(shè)計

設(shè)計實例關(guān)鍵程序如下:

獨立按鍵程序

 ……

  #define keyio P0 ( 1)

  #define key1 P0_3 ( 2)

  ……

  keyio|=0X0F; ( 3)

  if(key1==0) ( 4)

  {

  delay_nms(20); ( 5)

  if(key1==0) ( 6)

  {

  while(key1==0); ( 7)

  return 1; ( 8)

  }

  }

程序說明:

 ?。?)定義按鍵管腳。

 ?。?)定義按鍵連接管腳。

 ?。?)將按鍵連接管腳輸出高電平,從而接收輸入。

 ?。?)如果此時管腳所連接按鍵被按下。

 ?。?)延時一段時間,去抖作業(yè)。

  (6)如果此時按鍵仍然被按下,此時按鍵有效。

 ?。?)等待按鍵抬起,死循環(huán),如果按鍵一直按下則一直等待。

 ?。?)返回鍵值。矩陣鍵盤程序

 程序

 ……

  #define KEYIO P0 ( 1)

  ……

  code ksp[4]={0x7F,0xBF,0xDF,0xEF}; ( 2)

  unsigned char keypad_scan() ( 3)

  {

  char key,i; ( 4)

  KEYIO=0xF0; ( 5)

  if (KEYIO!=0xF0) ( 6)

  {

  for(i=0;i<=3;i++) ( 7)

  {

  delaykey(10); ( 8)

  KEYIO=ksp[i]; ( 9)

  delaykey(10); ( 10)

  if(KEYIO!=ksp[i]) ( 11)

  {

  delaykey(10); ( 12)

  key=KEYIO; ( 13)

  while(KEYIO==key); ( 14)

  return(key); ( 15)

  }

  }

  }

  }

程序說明:

 ?。?)定義矩陣鍵盤管腳。

  (2)將掃描時用到的管腳四種輸出電平狀態(tài)定義成一個數(shù)組。

 ?。?)按鍵掃描程序。

 ?。?)定義兩個臨時變量key,i。

 ?。?)讓鍵盤管腳的高四位輸出高電平,第四位為低電平,為掃描按鍵準備。

 ?。?)如果此時管腳狀態(tài)電平發(fā)生變化。

 ?。?)將之前定義的數(shù)組中的值賦予管腳,開始逐次掃描。

 ?。?)延時一段時間,去抖。

  (9)輸出掃描按鍵的電平。

 ?。?0)再延時一段時間。

 ?。?1)如果此時按鍵管腳電平依舊不是輸出的默認電平,表示有鍵按下。

 ?。?2)延時一段時間,讓電平穩(wěn)定。

 ?。?3)讀取當前按鍵管腳電平,即鍵值。

 ?。?4)等待按鍵抬起,死循環(huán),如果按鍵一直按下則一直等待。

  (15)返回鍵值。



調(diào)試要點與實驗現(xiàn)象

接好硬件,通過冷啟動方式將程序所生成的。hex文件下載到單片機運行后,打開串口調(diào)試助手軟件,設(shè)置好波特率9600,復(fù)位單片機,然后按下板上的4×4按鍵中的任意一個,并注意觀串口調(diào)試助手上的顯示。(見下圖),可以觀察到在接收窗口有按鍵的數(shù)據(jù)顯示。

此外,在本文所附的實驗程序中,其中與串口通信中調(diào)用了發(fā)送字符函數(shù)與發(fā)送字符串函數(shù)。在沒有仿真器和遇到需要顯示一些提示信息的時候,可以采用串口打印的方式,這樣不僅直觀方便而且不增加其他成本。



總結(jié)

本文介紹了單片機外接鍵盤的工作原理并給出了實例,通過該文,我們可以知道一個完善的鍵盤控制程序應(yīng)具備以下功能:

 ?。?) 檢測有無按鍵按下,并采取硬件或軟件措施,消除鍵盤按鍵機械觸點抖動的影響。

 ?。?) 有可靠的邏輯處理辦法。每次只處理一個按鍵,其間對任何按鍵的操作對系統(tǒng)不產(chǎn)生影響,且無論一次按鍵時間有多長,系統(tǒng)僅執(zhí)行一次按鍵功能程序。

 ?。?) 準確輸出按鍵值(或鍵號),以滿足按鍵功能要求。對于矩陣鍵盤而言,必須將行線、列線信號配合起來作適當處理,才能確定閉合鍵的位置。

  此外,按鍵的掃描方式有多種,本文中所述的是程序掃描方式,另外常見的還有定時掃描方式和中斷掃描方式,感興趣的同學(xué)可以自己上網(wǎng)查閱相關(guān)資料。


鄭重聲明:以上文章來源于網(wǎng)絡(luò),版權(quán)歸原作者及其所在單位,其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)(企業(yè)庫www.nciecn.com)證實,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。若本文有侵犯到您的版權(quán), 請你提供相關(guān)證明及申請并與我們聯(lián)系(qiyeku # qq.com)或【在線投訴】,我們審核后將會盡快處理。
會員咨詢QQ群:902340051 入群驗證:企業(yè)庫會員咨詢.

新的文章
 

華工無協(xié)

微信號:SCUT_rfa
功能介紹:華工無協(xié)

相關(guān)文章
成安县| 潮州市| 航空| 柳林县| 抚顺县| 永济市| 大同市| 西吉县| 长顺县| 双牌县| 原平市| 湖南省| 青岛市| 舟曲县| 营口市| 威海市| 旬邑县| 老河口市| 定日县| 桃园县| 长宁区| 永城市| 丹寨县| 云南省| 麻栗坡县| 碌曲县| 华蓥市| 隆安县| 防城港市| 晋宁县| 义马市| 绥阳县| 筠连县| 星子县| 神池县| 铜梁县| 嘉鱼县| 页游| 宝应县| 广河县| 诏安县|