中断扫描方式子程序c语言,单片机原理及应用(C语言版) 第9章 节 单片机系统配置及接口.ppt...
單片機原理及應用(C語言版) 第9章 節 單片機系統配置及接口.ppt
單片機原理及應用 (C語言版)第9章 單片機系統配置及接口;第9章 單片機系統配置及接口;本章要點
單片機主要應用于測控系統中,應用系統通常需要人的干預。本章主要講述鍵盤、顯示器、A/D轉換器、D/A轉換器、開關器件等的工作原理及接口電路。;第9章 單片機系統配置及接口;9.1 鍵盤接口;9.1.1 鍵盤基本問題;圖9-3 按鍵時的抖動;一.獨立式鍵盤獨立式按鍵是指各按鍵相互獨立地接通一條輸入數據線。當任何一個鍵按下時,與之相連的輸入數據線即可讀入數據0,而沒有按下時讀入1。;例9-1 設計一個獨立式按鍵的鍵盤接口,并編寫鍵掃描程序,電路原理圖如圖9-4所示,鍵號從上到下分別為0~7。C語言程序清單:#includevoid key(){unsigned char k;P1=0xff;//輸入時P1口置全1k=P1;//讀取按鍵狀態if(k==0xff) //無鍵按下,返回return;delay20ms();//有鍵按下,延時去抖;k=P1;if(k==0xff) //確認鍵按下return; //抖動引起,返回while(P1!=0xff); //等待鍵釋放switch(k){case:0xfe… //0號鍵按下時執行程序段break;case:0xfd… //1號鍵按下時執行程序段break;;… //2~6號鍵程序省略case:0x7f… //7號鍵按下時執行程序段break;}}匯編語言程序清單:KEY:MOVP1,#0FFH ;P1口為輸入口MOVA,P1 ;讀取按鍵狀態CPLA ;取正邏輯JZEKEY ;無鍵按下,返回; LCALL DELAY20MS ;有鍵按下,去抖 MOV A,P1 CPL A JZ EKEY ;抖動引起,返回 MOV B,A ;存鍵值KEY1:MOV A,P1 ;以下等待鍵釋放 CPL A JNZ KEY1 ;未釋放,等待 MOV A,B ;取鍵值送A JB ACC.0,PKEY0 ;K0按下轉PKEY0 JB ACC.1,PKEY1 ;K1按下轉PKEY1 …; JBACC.7,PKEY7 ;K7按下轉PKEY7EKEY: RETPKEY1:LCALLK0 ;K0命令處理程序 RETPKEY2:LCALLK1 ;K1命令處理程序 RET …PKEY4:LCALLK7 ;K7命令處理程序 RET; 二.行列式鍵盤 為了減少鍵盤與單片機接口時所占用I/O線的數目,在鍵數較多時,通常都將鍵盤排列成行列矩陣形式。每一水平線(行線)與垂直線(列線)的交叉處通過一個按鍵來連通。;圖9|5
4×4矩陣鍵盤接口; 1.行掃描法工作原理 判別鍵盤中有無鍵按下。向行線輸出全0,讀入列線狀態。如果有鍵按下,總有一列線被拉至低電平,從而使列輸入不全為1。 查找按下鍵所在位置。依次給行線送低電平,查列線狀態。全為1,則所按下的鍵不在此行;否則所按下的鍵必在此行且是在與零電平列線相交的交點上的那個鍵。 對按鍵位置進行編碼。找到所按下按鍵的行列位置后,對按鍵進行編碼,即求得按鍵鍵值。;2.鍵盤掃描識別子程序C語言程序清單:#includechar key() {char row,col, k =-1; //定義行、列、返回值P1=0xf0;if((P1&0xf0)==0xf0)return k; //無鍵按下,返回delay20ms(); //延時去抖if((P1&0xf0)==0xf0)return k; //抖動引起,返回;for(row
總結
以上是生活随笔為你收集整理的中断扫描方式子程序c语言,单片机原理及应用(C语言版) 第9章 节 单片机系统配置及接口.ppt...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab绘制烟花,[原创]利用MAT
- 下一篇: 趣图:程序员桌面对比,iOS vs 安卓