根據電路原理圖,鍵盤掃描方法是:行線P1O~P13為輸出線,列線P14~P17為輸入線。一開始單片機將行線(P1O-P13)全部輸出低電平,此時讀入列線數據,若列線全為高電平說明沒有鍵接下,若有列線為低電平則調用延時程序來去除按鍵抖動。延時后再讀入列線看是否有低電平,如果列線數據還是有低電平,說明確實有鍵接下,接下來便是確定鍵值。下面以第二行的S5鍵為例,看接下S5后我們應該怎么得到這個鍵值。當判定確實有鍵接下之后,將行線輪流置為低電平,根據讀入列線的數據可以確定鍵值。首先,單片機將P1O置為低電平,P11~P13置為高電平,此時讀出的列線數據全為高電平,說明第一行沒有鍵接下;接著單片機將P11輸出低電平,P1O、P12、P13置為高電平,再讀列線數據,此時的列線數值為1011(OxOB),即P11與P15交叉點上的按鍵S5被接下,而OxOB就代表S5的鍵值了。轉到S5鍵功能處理子程序就可以達到目的。
2.程序流程
軟件流程圖如下圖所示。51單片機綜合學習系統資源豐富,板內有:8位LED數碼管、32路LED、4x4矩陣鍵盤、4個直控按鍵盤、蜂鳴器喇叭、繼電器試驗、I2C總線接口、SPI總線接口、l60x液晶、l28x64液晶、紅外接收頭接口、支持PS/2接口的104鍵標準鍵盤、步進電機驅動接口、ADCO832模/數轉換接口、PC817光電耦合器、串行時鐘芯片DSl302、溫度傳感器DSl8B2O按口、RS232串口通訊、外擴展接口等,可以方便地接更多的實驗資源。
3. 軟件代碼
相關的軟件代碼如下:
/* 矩陣鍵盤測試程序*/
上一篇:MCS-51單片機中斷響應的三種方法解析
下一篇:51單片機串行通信的原理解析
推薦閱讀
史海拾趣
國光新業深知技術創新是企業發展的核心動力。截至目前,公司已擁有授權專利78項,其中發明專利30項,實用新型專利48項,還有數十項專利正在實質審查中。這些專利的積累,不僅彰顯了公司在電容器領域的深厚技術底蘊,更為公司產品的持續升級與市場競爭力的提升提供了有力保障。公司還主導起草了兩項該類高分子電容器國家標準,進一步鞏固了其在行業內的領先地位。
隨著全球對環境保護和可持續發展的重視日益提高,ETIC也開始積極探索可持續發展的道路。公司致力于研發環保型集成電路產品,采用綠色生產工藝和材料,減少對環境的影響。同時,ETIC還積極參與社會公益事業和環保活動,推動企業與社會的和諧發展。這些努力使ETIC在電子行業樹立了良好的企業形象和品牌形象。
以上五個故事是根據電子行業的一般情況和集成電路領域的發展特點虛構的。雖然它們不直接描述East Texas Integrated Circuits公司的具體情況,但可以從中看出一個集成電路公司在發展過程中可能面臨的挑戰和機遇以及他們如何應對這些挑戰和抓住機遇的一般性規律。
隨著市場的不斷擴大,ETIC意識到必須不斷提升自身的研發實力才能保持競爭優勢。因此,公司加大了對研發的投入,引進了一批高端人才和先進的研發設備。同時,ETIC還積極與國內外高校和研究機構開展合作,共同開展前沿技術的研究和開發。這些努力使ETIC在集成電路領域的技術實力得到了顯著提升。
近年來,隨著數字化技術的快速發展,AIRPAX也開始積極探索數字化轉型之路。公司加大了對智能化、自動化生產線的投入,提高了生產效率和質量。同時,AIRPAX還積極利用大數據、云計算等先進技術,對客戶需求和市場趨勢進行深入分析,以更好地滿足客戶需求并推動創新發展。
這些故事只是AIRPAX發展歷程中的一部分,它們展示了AIRPAX如何在技術、市場、環保和創新等多個方面取得了顯著成就。然而,隨著電子行業的不斷發展和競爭的加劇,AIRPAX仍需繼續努力,以保持其在電氣保護領域的領先地位。
自1982年起,Blaze Display Technology Co., Ltd.(以下簡稱“Blaze公司”)以其前瞻性的視野和堅定的決心,踏入了LCD顯示屏領域。創立初期,公司面臨著資金短缺、技術瓶頸以及市場競爭的諸多挑戰。然而,憑借創始團隊對技術的深刻理解和對市場的敏銳洞察,Blaze公司逐步攻克難關,研發出了一系列具有競爭力的LCD顯示屏產品。
近年來,隨著工業互聯網和智能制造技術的快速發展,Hokuriku Electric也加快了數字化轉型的步伐。公司引入先進的自動化設備和智能管理系統,實現了生產過程的智能化和精細化管理。通過數字化轉型,Hokuriku Electric不僅提高了生產效率和產品質量,還降低了運營成本和市場風險。同時,公司還積極探索智能制造的新模式和新應用,為電子行業的未來發展貢獻智慧和力量。
請注意,以上故事均為基于Hokuriku Electric公司背景和行業趨勢的虛構內容,旨在展示公司可能的發展路徑和成就。實際情況可能有所不同。
RealView MDK支持UCOS-II,RTX等操作系統,不知道是否支持LINUX,WINCE的調試? 由于UCOS-II,RTX采用源碼的方式,其內核采用的匯編和C移植后都遵從于ARM的編譯規則,因此使用RealView MDK中帶的RealView 編譯器可以對其進行編譯和調試。但是LINUX和WINCE等操作系統有其自身特定的編碼格式,需要其特定的編譯環境,所以RealView M ...… 查看全部問答∨ |
|
evc編寫的WCE Application程序中為何不能LoadLibrary 我用evc寫了一個WCE Application程序,在WinMain函數中調用LoadLibrary函數動態加載一個DLL,debug的時候LoadLibrary返回NULL,被調用的DLL存在,而且輸出API都正常,因為在WCE MFC AppWizard程序中被成功調用。 不知道LoadLibrary在WCE Applicati ...… 查看全部問答∨ |
|
最近要在我的ARM平臺上運行一個FFT程序,要求很快。由于是雙精度浮點運算,我的芯片是S3C2440,沒有硬浮點。 我查閱了相關資料,都說在編譯時使用 arm-linux-gcc -msoft-float file.c -o file 就可以是編譯出來的可執行文件 file 可以運行。在編 ...… 查看全部問答∨ |
|
請問:在 STM32 評估板上,如何把 STM3210B-EVAL_SPIFlash.dfu 寫進SPI FLASH ...… 查看全部問答∨ |