摘要:行列總共使用個口,可以掃描個按鍵的開關(guān)狀態(tài),這就是矩陣鍵盤的優(yōu)勢。口之間必須串聯(lián)電阻。
按鍵按下去之后,往往會有抖動的問題,按鍵本身的彈性,按鍵按下去或者放開,都會形成撞擊的不穩(wěn)定過程,這個過程需要一定的時間,所以單片機在這個過程中不能讀取IO狀態(tài),可以軟件延遲或者硬件延遲
沒有制作GIF的原因是做完一直不小于1M導致我typora插入我不顯示,因此狠心投稿到B站,今后B站就是我的視頻庫
上面按鍵就是一按一按沒有什么吸引人的地方,沒有什么亮點,所以我們推倒重來
加了長按標志的展示
丐版展示
//按鍵掃描void Key_Scan_Drive(){ static bit flag = 0;//長短按標志 static bit key_down = 0;//按下標志,由于雙擊也用這個,所以標記范圍得擴大 static u8 count1 = 0;//計數(shù)器1,因為100以內(nèi),所以u8足夠了 static u16 count2 = 0;//計數(shù)器2,大于255就用u16 if(key_down)//檢測按鍵是否被按下過 { count2++; if(count2>250) { count2 = 0; flag = 1; //長按程序 LCD12864_Write_Cmd(0x8c); LCD12864_Write_Data(0x30); LCD12864_Write_Data(0x30+LCD12864_Num_Buffer[1]); } if(KEY1) { key_down = 0;//松開就把標志清零 count2 = 0; if(flag) { flag = 0; } else { //短按程序 LCD12864_Write_Cmd(0x8c); LCD12864_Write_Data(0x30); LCD12864_Write_Data(0x30+LCD12864_Num_Buffer[3]); } } } else { if(!KEY1) { count1++; if(count1>20) { count1 = 0; if(!KEY1) { key_down = 1; } } } } }
P6^0 P6^1 P6^2 P6^3 四線是行掃描,P6^4 P6^5 P6^6 P6^7 四線是列掃描。4 行 4 列總共使用 8 個 IO 口,可以掃描 16 個按鍵的開關(guān)狀態(tài),這就是矩陣鍵盤的優(yōu)勢。( IO 口之間必須串聯(lián)電阻 )。
#include "all.h"u8 code KEY4x4_Buffer[4] = {0xef,0xdf,0xbf,0x7f};//列輸入 /列控制數(shù)組u8 xdata KEY4x4_Read_Byte = 0; //讀到/檢測到的字節(jié)void KEY4x4_Drive_Init(){ P6M1 = 0; P6M0 = 0; }void KEY4x4_Scan_Drive(){ static xdata u16 count = 0; u8 i = 0; u8 j = 0;//循環(huán)掃描變量 u8 Value = 0;//檢測行變量 count++; if(count>10)//通過計數(shù)的方式來減少循環(huán)次數(shù),還消抖 { count = 0; for(i = 0;i<4;i++)//列輸入 /列控制 { P6 = KEY4x4_Buffer[i]; Value = 0x08; for(j = 0;j<4;j++) { if(!(Value&P6))//哪個位被拉成0了就會被檢測到 { KEY4x4_Read_Byte = j*4+i+1; } Value >>= 1;//右移一位 } } P6 = 0xff;//P6口用完拉高,因為以后會用到他 } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/122126.html
摘要:復位后初值是子函數(shù)調(diào)用,中斷響應過程調(diào)用子函數(shù)處理中斷響應的時候,程序計數(shù)器的值以及相關(guān)數(shù)據(jù)會先壓入堆棧,然后去處理子函數(shù)中斷服務。聯(lián)動文章身家過億的帝都富豪對小碼農(nóng)說你時空復雜度會了嗎 ...
摘要:否則可能會導致電平顛倒完美的計數(shù)糟糕的線條再來一個測試組我們來實現(xiàn)一個呼吸燈的效果呼吸燈波形為了賢淑妻子,咳咳,賢淑才女,小碼農(nóng)必定讓控制時間什么是脈寬調(diào)制中間動的線是電流線,電流通斷,電流小就暗,電流大就亮。 ...
摘要:對于電壓或者電流連續(xù)變化的信號,就需要通過模數(shù)轉(zhuǎn)換電路,變成單片機可以識別的數(shù)字電平信號。目前來說,常見的有兩種方式,一種是并行比較,一種是逐次比較。具有成本低元件簡單等優(yōu)勢,而且容易做出高精度的轉(zhuǎn)換器,所以被廣泛使用。 ...
摘要:目前,所有型號串口的輸入是輸出是。串口全雙工通信是沒有時鐘脈沖的,只能依靠晶振脈沖定時器的溢出脈沖。中斷中讀取,清標志,然后返回給計算機,等待發(fā)送完畢防重疊最少時間次位定時器時間。實現(xiàn)燒錄程序的目的。 ...
摘要:前言今天下班突然看到一篇刷屏朋友圈的文章為什么甲骨文被裁員工不值得同情來自一個財經(jīng)的微信公眾號剛看題目我以為文章是會分析甲骨文公司內(nèi)部的財經(jīng)類問題所以就戳開看了畢竟本人不喜歡看打雞血的文章。 為工薪層能合理取得報酬而發(fā)聲,為大眾選擇不同生活狀態(tài)都能獲得尊重而發(fā)聲,為不同職場層次的職場人都能有健康的工作環(huán)境而發(fā)聲。 前言 今天下班突然看到一篇刷屏朋友圈的文章來自一個XX財經(jīng)的微信公眾號,...
閱讀 3021·2021-11-18 10:07
閱讀 3764·2021-11-17 17:00
閱讀 2103·2021-11-15 18:01
閱讀 926·2021-10-11 10:58
閱讀 3372·2021-09-10 10:50
閱讀 3442·2021-08-13 15:05
閱讀 1229·2019-08-30 15:53
閱讀 2639·2019-08-29 13:01