日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]前面提到了獨立按鍵,可見,獨立按鍵是由矩陣鍵盤分離而來的。接下來看的是 4*4 的矩陣鍵盤,這里使用的還是上節(jié)所使用的,延時消抖檢測。先附上矩陣鍵盤的原理圖: 在使用

前面提到了獨立按鍵,可見,獨立按鍵是由矩陣鍵盤分離而來的。接下來看的是 4*4 的矩陣鍵盤,這里使用的還是上節(jié)所使用的,延時消抖檢測。

先附上矩陣鍵盤的原理圖:

 

 

在使用據(jù)矩陣鍵盤時,J5 排針處的跳帽連接 1 腳和 2 腳,使所有按鍵的有效端口全部連接至 I/O 口。

具體的掃描方式為:

先把P3^0~P3^7高四位和第四位賦不一樣的電平值,當(dāng)確定有鍵按下時,檢測按下的是哪一行或哪一列(原本高電平的四位中有一位會變低電平),再將高四位和第四位賦與上一次相反的電平。再檢測,即可找到所按下的按鍵。

實例為:把S4~S19 這16個按鍵,從上到下、從左至右,分別設(shè)置為1~16不同的鍵值,當(dāng)S4按下時,數(shù)碼管顯示為 1;當(dāng)S19按下時,數(shù)碼管顯示為16。

其核心代碼如下(數(shù)碼管段碼,顯示函數(shù)等變量的定義,請參照前面給出的數(shù)碼管的博文):

uchar temp; //用于存儲 P3 口的狀態(tài)

uchar key_value = 0; //鍵值的定義

void matrixKeyScan()

{

P3 = 0x0f; //設(shè)置P3高四位為0,第四位為1

temp = P3; //用一個變量存儲P3口的狀態(tài),以免外界影響P3口,從而造成掃描有誤

if(temp != 0x0f)

{

delay10ms();

if(temp!= 0x0f) //確定有鍵按下

{

switch(temp) //查看P3(temp)的狀態(tài)

{

case 0x0e :key_value = 1; break; //按下的為第一行

case 0x0d :key_value = 5; break;

case 0x0b :key_value = 9; break;

case 0x07 :key_value = 13;break; //按下的為第四行

}

}

P3 = 0xf0; //再將 P3 口重新賦值,高四位為1,第四位為0

temp = P3;

if(temp != 0xf0)

{

switch(temp)

{

case 0xe0 : key_value +=3 ; break; //按下的是第四列,鍵值key_value加3

case 0xd0 : key_value +=2 ; break;

case 0xb0 : key_value +=1 ; break;

case 0x70 : key_value +=0 ; break; //按下的是第一列,鍵值key_value加0

}

}

while(P3 != 0xf0); //松手檢測,因為最近的一次賦值是P3 = 0xf0

}

}

void main()

{

while(1)

{

matrixKeyScan(); //在主函數(shù)中調(diào)用矩陣鍵盤掃描函數(shù)

if(key_value > 9) //判斷鍵值,并顯示

{

dspbuf[1] = key_value%10;

dspbuf[0] = key_value/10;

}

else

{

dspbuf[0] = key_value;

dspbuf[1] = 10; //若鍵值小于10,則十位不顯示,只顯示個位,段碼數(shù)組第10個為消影

}

display(); //數(shù)碼管顯示函數(shù)

}

}

注:在此我們基于的是89C52單片機(jī)的按鍵掃描,但是對于藍(lán)橋杯指定開發(fā)板平臺(CT107D)所用的單片機(jī)為STC15F2K61S2,它與STC89C52在矩陣鍵盤的區(qū)別的是:前者沒有P3^6和P3^7這兩個 I/O 口,他們分別用P4^2,P4^4代替,具體的可以就參照STC15F2K61S2芯片手冊(其他的區(qū)別大致有:它的運(yùn)行速度比51單片機(jī)快,工作時可以選擇是否分頻;它的中斷模式比51多,一些 I/O 口有其他功能等等……)。

這里有幾點需要注意:

1、在編程時,主函數(shù)盡可能少的進(jìn)行一些數(shù)據(jù)處理等操作,主函數(shù)主要用來調(diào)用其他的函數(shù)。

2、若使用的是STC15F2K61S2單片機(jī),則在給 P3 口的兩次賦值和高四位的電平檢測階段,需要將P4^2,P4^4單獨列出來,與其余6個P3引腳的 I/O 口一起檢測,并且在使用P4^2,P4^4之前,需要進(jìn)行sbit位定義,以及 P4 引腳的尋址(srf P4 = 0xC0)。

3、P3口的第二次賦值,應(yīng)該也囊括在第一個 if 語句之中,因為只有當(dāng)確定按下之后,才會開始行與列的掃描,行、列掃描是對于一次按鍵的掃描,所以不可分開。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機(jī)在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機(jī)燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級等不同場景。...

關(guān)鍵字: 單片機(jī) ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機(jī)予以介紹,如果你想對它的詳細(xì)情況有所認(rèn)識,或者想要增進(jìn)對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機(jī) 開發(fā)板 Keil

隨著單片機(jī)系統(tǒng)越來越廣泛地應(yīng)用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機(jī)系統(tǒng)面臨著電磁干擾(EMI)日益嚴(yán)重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機(jī) 電磁兼容

以下內(nèi)容中,小編將對單片機(jī)的相關(guān)內(nèi)容進(jìn)行著重介紹和闡述,希望本文能幫您增進(jìn)對單片機(jī)的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機(jī) 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C(jī)的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機(jī) 異常復(fù)位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C(jī)的有關(guān)報道,通過閱讀這篇文章,大家可以對它具備清晰的認(rèn)識,主要內(nèi)容如下。

關(guān)鍵字: 單片機(jī) 仿真器

單片機(jī)將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關(guān)情況以及信息有所認(rèn)識和了解,詳細(xì)內(nèi)容如下。

關(guān)鍵字: 單片機(jī) 中斷 boot

一直以來,單片機(jī)都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C(jī)的相關(guān)介紹,詳細(xì)內(nèi)容請看下文。

關(guān)鍵字: 單片機(jī) 數(shù)字信號 模擬信號
關(guān)閉