不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

按鍵掃描

關(guān)注
創(chuàng)建者:匿名 創(chuàng)建時(shí)間:2026-01-04
按鍵掃描圖1

按鍵掃描的實(shí)例教程

概述 VK16K33A/AA是一種帶按鍵掃描接口的數(shù)碼管或點(diǎn)陣LED驅(qū)動(dòng)控制專用芯片,內(nèi)部集成有數(shù)據(jù)鎖存器、鍵盤掃描、LED 驅(qū)動(dòng)模塊等電路。數(shù)據(jù)通過(guò)I2C通訊接口與MCU通信。SEG腳接LED陽(yáng)極,GRID腳接LED陰極,可支持16SEG×8GRID的點(diǎn)陣LED顯示面板。最大支持13×3的按鍵。內(nèi)置上電復(fù)位電路,整體閃爍頻率可設(shè)置,可通過(guò)命令進(jìn)入待機(jī)模式。
第四種設(shè)計(jì)的優(yōu)點(diǎn)是只需要單片機(jī)有一個(gè)ADC接口、一根線,就能對(duì)多個(gè)按鍵進(jìn)行識(shí)別,缺點(diǎn)是按鍵內(nèi)部一旦接觸不良,則可能導(dǎo)致按鍵串位,并且按鍵產(chǎn)生的抖動(dòng)有可能會(huì)造成識(shí)別錯(cuò)誤。 改進(jìn)方法 在以上常見(jiàn)按鍵設(shè)計(jì)的基礎(chǔ)上,分享一下筆者學(xué)習(xí)和工作中總結(jié)的按鍵方案。 改進(jìn)一: 在原方案一的基礎(chǔ)上,加上與門電路,使得任何一個(gè)按鍵按下都能產(chǎn)生中斷,然后在中斷里面識(shí)別是哪個(gè)按鍵被按下。這改動(dòng)令電路不需要循環(huán)掃描,大大提高了效率。方案如圖5所示。只需要在每個(gè)按鍵對(duì)應(yīng)地增加一個(gè)二極管,利用二極管的線與特性,就可以實(shí)現(xiàn)按下任何按鍵都能產(chǎn)生中斷信號(hào),同時(shí)按鍵之間互不影響。二極管選用普通整流二極管即可,經(jīng)過(guò)測(cè)試,可靠可行。 圖5 改進(jìn)一 改進(jìn)二: 在原有ADC按鍵的基礎(chǔ)上,也可以增加二極管的方式,實(shí)現(xiàn)按鍵中斷,并在中斷服務(wù)程序里進(jìn)行AD轉(zhuǎn)換,從而識(shí)別按鍵。電路如圖6所示。 圖6 改進(jìn)二 改進(jìn)三: 按鍵時(shí)難免會(huì)造成抖動(dòng),因此必須按鍵消抖。消抖也可以通過(guò)硬件消抖和軟件消抖,這里分享一個(gè)十分簡(jiǎn)單且有效的硬件消抖方法:給按鍵并聯(lián)一個(gè)104左右的電容,這樣軟件上基本不用處理即可消除抖動(dòng)。 改進(jìn)四: 在按鍵掃描檢測(cè)的方案下,如果主循環(huán)中有某個(gè)函數(shù)占用時(shí)間較長(zhǎng),按鍵或會(huì)發(fā)生長(zhǎng)短不一的“失靈”。對(duì)此可以將按鍵掃描放到定時(shí)器中斷里面,這樣就可周期性地檢測(cè)按鍵按下的情況,在不受主循環(huán)的影響下解析出按鍵的不同狀態(tài)。
展開(kāi)
這個(gè)實(shí)例如下:它有4個(gè)任務(wù),這4個(gè)任務(wù)為按鍵掃描、聲光報(bào)警、顯示屏刷新和超聲波測(cè)距。這個(gè)實(shí)例的具體功能是通過(guò)按鍵設(shè)置測(cè)量距離的閾值,當(dāng)測(cè)距距離低于設(shè)置的閾值時(shí),觸發(fā)聲光報(bào)警并且將測(cè)量距離實(shí)時(shí)顯示在顯示屏上(這個(gè)應(yīng)用是汽車倒車?yán)走_(dá)的具體體現(xiàn))。 2.1順序執(zhí)行的前后臺(tái)系統(tǒng) 在順序執(zhí)行的前后臺(tái)系統(tǒng)中,我會(huì)把鍵盤掃描用查詢的方式放在while(1)中,而顯示屏刷新和超聲波測(cè)距使用中斷,在中斷服務(wù)函數(shù)中獲取測(cè)量距離后進(jìn)行顯示,在主函數(shù)的循環(huán)中進(jìn)行按鍵的檢測(cè),聲光處理也放在主循環(huán)中。這樣整個(gè)程序就以變量標(biāo)志的同步方式在主循環(huán)和后臺(tái)中斷中執(zhí)行,對(duì)應(yīng)的程序代碼如圖所示: 順序執(zhí)行前后臺(tái)系統(tǒng)的主函數(shù) 順序執(zhí)行前后臺(tái)系統(tǒng)的中斷服務(wù)函數(shù) 這種架構(gòu)的優(yōu)點(diǎn)是使用簡(jiǎn)單易于理解,而缺點(diǎn)是每個(gè)任務(wù)所占的CPU時(shí)間過(guò)長(zhǎng)的話,會(huì)導(dǎo)致程序的實(shí)時(shí)性能差,就比如按鍵的檢測(cè)等。 2.2 時(shí)間片輪詢系統(tǒng)和多任務(wù)操作系統(tǒng) 時(shí)間片輪詢法實(shí)際上通常出現(xiàn)在操作系統(tǒng)中,也就是說(shuō)他屬于操作系統(tǒng),但在這里所說(shuō)的是基于前后臺(tái)系統(tǒng)的時(shí)間片輪詢。 時(shí)間片輪詢法的實(shí)質(zhì)其實(shí)就是選出一個(gè)定時(shí)器,每進(jìn)一次定時(shí)中斷對(duì)計(jì)數(shù)值進(jìn)行自加,在主循環(huán)中根據(jù)這個(gè)計(jì)數(shù)值執(zhí)行任務(wù),這個(gè)計(jì)數(shù)值也就是任務(wù)輪詢的時(shí)間片。 在這個(gè)實(shí)例中,如果采用時(shí)間片輪詢系統(tǒng)的話,首先選用主控芯片的任一定時(shí)器,定時(shí)器定時(shí)時(shí)間周期由我們決定,為了保證實(shí)時(shí)性和運(yùn)行效率,這個(gè)值通常取10ms、30ms、50ms等,我會(huì)將按鍵掃描輪值值設(shè)置為20ms,因?yàn)?em>按鍵抖動(dòng)的時(shí)長(zhǎng)一般為20ms,這樣處理既達(dá)到了消抖的目的,又不會(huì)漏掉按鍵的檢測(cè); 而顯示屏的刷新設(shè)置為30ms,如果你覺(jué)得刷新反應(yīng)慢了也可以修改這一輪詢值得到改善;而超聲波測(cè)距的輪詢值設(shè)置為100ms,即每隔100模式觸發(fā)測(cè)距一次,這個(gè)測(cè)距頻率已經(jīng)能夠滿足大多數(shù)的情況了。
展開(kāi)
這個(gè)實(shí)例如下:它有4個(gè)任務(wù),這4個(gè)任務(wù)為按鍵掃描、聲光報(bào)警、顯示屏刷新和超聲波測(cè)距。這個(gè)實(shí)例的具體功能是通過(guò)按鍵設(shè)置測(cè)量距離的閾值,當(dāng)測(cè)距距離低于設(shè)置的閾值時(shí),觸發(fā)聲光報(bào)警并且將測(cè)量距離實(shí)時(shí)顯示在顯示屏上(這個(gè)應(yīng)用是汽車倒車?yán)走_(dá)的具體體現(xiàn))。 1.順序執(zhí)行的前后臺(tái)系統(tǒng) 在順序執(zhí)行的前后臺(tái)系統(tǒng)中,我會(huì)把鍵盤掃描用查詢的方式放在while(1)中,而顯示屏刷新和超聲波測(cè)距使用中斷,在中斷服務(wù)函數(shù)中獲取測(cè)量距離后進(jìn)行顯示,在主函數(shù)的循環(huán)中進(jìn)行按鍵的檢測(cè),聲光處理也放在主循環(huán)中。 這樣整個(gè)程序就以變量標(biāo)志的同步方式在主循環(huán)和后臺(tái)中斷中執(zhí)行,對(duì)應(yīng)的程序代碼如圖所示: 順序執(zhí)行前后臺(tái)系統(tǒng)的主函數(shù) 順序執(zhí)行前后臺(tái)系統(tǒng)的中斷服務(wù)函數(shù) 這種架構(gòu)的優(yōu)點(diǎn)是使用簡(jiǎn)單易于理解,而缺點(diǎn)是每個(gè)任務(wù)所占的CPU時(shí)間過(guò) 長(zhǎng)的話,會(huì)導(dǎo)致程序的實(shí)時(shí)性能差,就比如按鍵的檢測(cè)等。 2.時(shí)間片輪詢系統(tǒng)和多任務(wù)操作系統(tǒng) 時(shí)間片輪詢法實(shí)際上通常出現(xiàn)在操作系統(tǒng)中,也就是說(shuō)他屬于操作系統(tǒng),但在這里所說(shuō)的是基于前后臺(tái)系統(tǒng)的時(shí)間片輪詢。時(shí)間片輪詢法的實(shí)質(zhì)其實(shí)就是選出一個(gè)定時(shí)器,沒(méi)進(jìn)一次定時(shí)中斷對(duì)計(jì)數(shù)值進(jìn)行自加,在主循環(huán)中根據(jù)這個(gè)計(jì)數(shù)值執(zhí)行任務(wù),這個(gè)計(jì)數(shù)值也就是任務(wù)輪詢的時(shí)間 片。
展開(kāi)
void RunPer10ms(void) { KEY_Scan(); } void KEY_Scan(void) { uint8_t i; for (i = 0; i < HARD_KEY_NUM; i++) { KEY_Detect(i); } } /* 每隔10ms所有的按鍵GPIO均會(huì)被掃描檢測(cè)一次。
按鍵掃描圖2

按鍵掃描的最新內(nèi)容

? 工作電壓 3.0-5.5V ? 內(nèi)置 RC振蕩器 ? 最大16個(gè)SEG腳,8個(gè)GRID腳 ? SEG腳只能接LED陽(yáng)極,GRID腳只能接LED陰極 ? I2C通訊接口,I2C從機(jī)地址可通過(guò)IO腳選擇 ? 16級(jí)整體亮度可調(diào) ? 最大13×3的按鍵掃描 按鍵顯示復(fù)用(需硬件電路配合) 支持組合鍵(需要電路配合) ? 讀/寫顯示/按鍵數(shù)據(jù)地址自動(dòng)加1 ? 內(nèi)置顯示RAM為16×8位 ? 內(nèi)置上電復(fù)位電路
VK16K33A是一種帶按鍵掃描接口的數(shù)碼管或點(diǎn)陣LED驅(qū)動(dòng)控制專用芯片,內(nèi)部集成有數(shù)據(jù) 鎖存器、鍵盤掃描、LED 驅(qū)動(dòng)模塊等電路。數(shù)據(jù)通過(guò)I2C通訊接口與MCU通信。SEG腳接LED陽(yáng) 極,GRID腳接LED陰極,可支持16SEGx8GRID的點(diǎn)陣LED顯示面板。最大支持13×3的按鍵。內(nèi) 置上電復(fù)位電路,整體閃爍頻率可設(shè)置,可通過(guò)命令進(jìn)入待機(jī)模式,采用SOP28封裝形式。
概述 VK16K33C是一種帶按鍵掃描接口的數(shù)碼管或點(diǎn)陣LED驅(qū)動(dòng)控制專用芯片,內(nèi)部集成有數(shù)據(jù)鎖存器、鍵盤掃描、LED 驅(qū)動(dòng)模塊等電路。數(shù)據(jù)通過(guò)I2C通訊接口與MCU通信。SEG腳接LED陽(yáng)極,GRID腳接LED陰極,可支持8SEG×8GRID的點(diǎn)陣LED顯示面板。最大支持8×3的按鍵。內(nèi)置上電復(fù)位電路,整體閃爍頻率可設(shè)置,可通過(guò)命令進(jìn)入待機(jī)模式。
概述 VK16K33B是一種帶按鍵掃描接口的數(shù)碼管或點(diǎn)陣LED驅(qū)動(dòng)控制專用芯片,內(nèi)部集成有數(shù)據(jù)鎖存器、鍵盤掃描、LED 驅(qū)動(dòng)模塊等電路。數(shù)據(jù)通過(guò)I2C通訊接口與MCU通信。SEG腳接LED陽(yáng)極,GRID腳接LED陰極,可支持12SEG×8GRID的點(diǎn)陣LED顯示面板。最大支持10×3的按鍵。內(nèi)置上電復(fù)位電路,整體閃爍頻率可設(shè)置,可通過(guò)命令進(jìn)入待機(jī)模式。
概述 VK16K33A是一種帶按鍵掃描接口的數(shù)碼管或點(diǎn)陣LED驅(qū)動(dòng)控制專用芯片,內(nèi)部集成有數(shù)據(jù)鎖存器、鍵盤掃描、LED 驅(qū)動(dòng)模塊等電路。數(shù)據(jù)通過(guò)I2C通訊接口與MCU通信。SEG腳接LED陽(yáng)極,GRID腳接LED陰極,可支持16SEG×8GRID的點(diǎn)陣LED顯示面板。最大支持13×3的按鍵。內(nèi)置上電復(fù)位電路,整體閃爍頻率可設(shè)置,可通過(guò)命令進(jìn)入待機(jī)模式。
<p>產(chǎn)品品牌:永嘉微電/VINKA</p><p>產(chǎn)品型號(hào):VK16K33C</p><p>封裝形式:SOP20</p><p>&nbsp;</p><p>概述</p><p>VK16K33C是一種帶按鍵掃描接口的數(shù)碼管或點(diǎn)陣LED驅(qū)動(dòng)控制專用芯片,內(nèi)部集成有數(shù)據(jù)鎖 存器、鍵盤掃描、LED 驅(qū)動(dòng)模塊等電路。數(shù)據(jù)通過(guò)I2C通訊接口與MCU通信。
LJQ1317 特點(diǎn) ? 工作電壓 3.0-5.5V ? 內(nèi)置 RC振蕩器 ? 最大12個(gè)SEG腳,8個(gè)GRID腳 (封裝不同SEG腳數(shù)量不同) ? SEG腳只能接LED陽(yáng)極,GRID腳只能接LED陰極 ? I2C通訊接口,I2C從機(jī)地址可通過(guò)IO腳選擇 ? 16級(jí)整體亮度可調(diào) ? 最大10×3的按鍵掃描 按鍵顯示復(fù)用需硬件電路配合
LJQ1293 特點(diǎn) ? 工作電壓 3.0-5.5V ? 內(nèi)置 RC振蕩器 ? 最大12個(gè)SEG腳,8個(gè)GRID腳 (封裝不同SEG腳數(shù)量不同) ? SEG腳只能接LED陽(yáng)極,GRID腳只能接LED陰極 ? I2C通訊接口,I2C從機(jī)地址可通過(guò)IO腳選擇 ? 16級(jí)整體亮度可調(diào) ? 最大10×3的按鍵掃描 按鍵顯示復(fù)用需硬件電路配合
LJQ1280 編輯 編輯 特點(diǎn) ? 工作電壓 3.0-5.5V ? 內(nèi)置 RC振蕩器 ? 最大16個(gè)SEG腳,8個(gè)GRID腳 ? SEG腳只能接LED陽(yáng)極,GRID腳只能接LED陰極 ? I2C通訊接口,I2C從機(jī)地址可通過(guò)IO腳選擇 ? 16級(jí)整體亮度可調(diào) ? 最大13×3的按鍵掃描按鍵顯示復(fù)用需硬件電路配合支持組合鍵需要電路配合
LJQ1253 特點(diǎn) ? 工作電壓 3.0-5.5V ? 內(nèi)置 RC振蕩器 ? 最大16個(gè)SEG腳,8個(gè)GRID腳 ? SEG腳只能接LED陽(yáng)極,GRID腳只能接LED陰極 ? I2C通訊接口,I2C從機(jī)地址可通過(guò)IO腳選擇 ? 16級(jí)整體亮度可調(diào) ? 最大13×3的按鍵掃描 按鍵顯示復(fù)用需硬件電路配合 支持組合鍵需要電路配合