A. 單片機按鍵有幾種方式
按鍵檢測一般有:1、查詢、2、掃描、3中斷等方式。查詢方式佔用主循環資源,就是說主程序主要干檢測按鍵的活兒,若增加其他程序容易出錯。掃描方式效果最好,可以在性能和佔用資源間平衡,中斷方式,適用於響應速度極高的場景,但抗干擾較差。
B. 簡述單片機對單個按鍵的動作響應方式有幾種
常用的方式有2種,軟體查詢與中斷,軟體查詢方式比較靈活,適用於各個埠引腳,而中斷方式通常來說只能用指定的外部中斷引腳,當然有些新型單片機帶鍵盤中斷就另當別論了。
C. 單片機系統中使用的鍵盤分為哪兩種
單片機一般使用的是按鍵或是矩陣鍵盤,或者PS/2 介面的鍵盤。希望能幫到你!
更多學習資料可以參考www.52micromcu.com
D. 51單片機鍵盤電路的兩種方式,各自的優缺點
獨立按鍵優點:可以直接讀取,檢測佔用時間較少,不受其他因素影響
缺點:佔用IO口資源較多,每一個按鍵都獨佔一個IO口。
矩陣鍵盤優點:佔用IO口資源較少。
缺點:必須掃描檢測按鍵情況,程序復雜,佔用時間較多。
E. 單片機的鍵盤介面連接分為哪幾類說明各自的工作原理。鍵盤消抖是什麼有哪幾種方法
一般而言,單片機與鍵盤介面有3種方式:1、靜態介面方式;2、動態矩陣掃描方式;3、採用鍵盤管理晶元方式;第一種方式最簡單,主要用於按鍵不多的情況,每個按鍵佔用一條口線,第二種方式多用於按鍵較多的情況,比如用一個8位口就可以實現4x4鍵盤掃描,這種方式的優點是節省口線,缺點是佔用了較多的MCU資源,第三種方式是把管理鍵盤的任務交給了專用晶元,效率較高適用於按鍵多MCU處理任務重的應用場合。
鍵盤消抖顧名思義就是要消除鍵盤按下或抬起瞬間由於觸點抖動引起的不確定狀態,主要有軟體和硬體消抖兩種方法,軟體消抖就是監測到有鍵按下時並不立即響應,而是延時一段時間後再次判鍵把不確定狀態躲過去,硬體消抖是通過RS觸發器或施密特觸發器將鍵盤與單片機介面隔離,使得單片機讀取的是經過硬體濾波後的確定狀態。
F. 單片機系統中使用的鍵盤分為哪兩種
編碼鍵盤和非編碼鍵盤。而非編碼鍵盤又可以分為獨立式和矩陣式
G. 單片機這兩種adc掃描實現按鍵的方法有什麼不同
第一種,各個按鍵,對應的電壓,不均衡,不成線性。
第二種,各個按鍵,對應的電壓,成正比。
比較容易分辨,不易出錯。
H. 單片機中的機械觸點類型的鍵盤有哪些特性
單片機中應用的一般是機械觸點類型的。
由於按鍵是機械觸點,當機械觸點斷開、閉合時,會有抖動,。這種抖動對於人來說是感覺不到的,但對單片機來說,則是完全可以感應到的,因為單片機處理的速度是在微秒級,而機械抖動的時間至少是毫秒級,對單片機而言,這已是一段「漫長」的時間了。
當鍵處理程序採用中斷方式的時候,在響應時可能會出現按鍵有時靈、有時不靈的問題,其實就是因為這個原因。雖然只按了一次按鍵,可是單片機卻已執行了多次中斷的過程,若執行的次數正好是奇數次,那麼結果沒有影響;若執行的次數是偶數次,那結果就不對了。而如果處理程序採用查詢方式的話也會存在響應按鍵遲鈍的現象,甚至可能會漏掉信號。
I. 單片機按鍵問題,這兩個按鍵方式哪個好
其實最好還是第二種
01:它的抗干擾能力強
02:抗開關漏電的能力強
03:單片機的通用性強
說到家:若實用(非實驗室)場所
強烈建議採用第二種
J. 單片機按鍵
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP GT0
ORG 0080H
MAIN:MOV P0,#00H ;滅燈
MOV IE,#82H ;開中斷
MOV SCON,#00H ;串列發送模式
MOV TMOD,#01H ; T0方式1定時
MOV TH0,#3CH ;50毫秒初值
MOV TL0,#0B0H
MOV DPTR,#TAB ;表地址入口
CLR A
MOV 30H,A ;小時
MOV 31H,A ; 分鍾
MOV 32H,A ; 秒
MOV 33H,#1 ; 星期
MOV 34H,A ; 二進制加一演示
MOV R0,#20 ; 1秒中斷次數
SETB TR0 ; 啟動T0
M0:LCALL JIAN ; 調用查鍵
LCALL XIANSHI ;調用顯示
SJMP M0
GT0:PUSH ACC
MOV TH0,#3CH
MOV TL0,#0B6H ;重新賦值佔了6個機器周期,0B0H改為0B6H
DJNZ R0,RET0 ;不夠20次返回
MOV R0,#20
INC 32H ; 秒加一
INC 34H ;二進制演示加一,到255加一為0
MOV SBUF,34H ;串列發送
JNB TI,$ ;等待發送結束
CLR TI ;清楚發送標志
MOV A,32H
CJNE A,#60,RET0 ;比較秒是否到60
MOV 32H,#0 ;到60改為0
INC 31H ;分鍾加一
MOV A,31H
CJNE A,#60,RET0 ;比較分鍾是否到60
MOV 31H,#0 ; 到60改為0
INC 30H ;小時加一
MOV A,30H
CJNE A,#24,RET0 ;比較小時是否到24
MOV 30H,#0 ;到24改為0
INC 33H ;星期加一
MOV A,33H
CJNE A,#8,RET0 ;比較星期是否到8
MOV 33H,#1 ;到8改為1
RET0:POP ACC
RETI
XIANSHI:MOV A,30H ;小時顯示程序段
MOV B,#10
DIV AB
MOVC A,@A+DPTR ;十位
MOV P1,A
SETB P0.0 ;共陽極數碼管
DJNZ R1,$
CLR P0.0
MOV A,B
MOVC A,@A+DPTR ;個位
MOV P1,A
SETB P0.1
DJNZ R1,$
CLR P0.1
MOV A,31H ;分鍾顯示程序段
MOV B,#10
DIV AB
MOVC A,@A+DPTR ; 十位
MOV P1,A
SETB P0.2
DJNZ R1,$
CLR P0.2
MOV A,B
MOVC A,@A+DPTR ;個位
MOV P1,A
SETB P0.3
DJNZ R1,$
CLR P0.3
MOV A,32H ;秒顯示程序段
MOV B,#10
DIV AB
MOVC A,@A+DPTR ;十位
MOV P1,A
SETB P0.4
DJNZ R1,$
CLR P0.4
MOV A,B
MOVC A,@A+DPTR ;個位
MOV P1,A
SETB P0.5
DJNZ R1,$
CLR P0.5
MOV A,33H ;星期顯示程序段
MOVC A,@A+DPTR
MOV P1,A
SETB P0.6
DJNZ R1,$
CLR P0.6
RET
JIAN:PUSH ACC
PUSH PSW
JB P2.0,M1 ;查鍵,改分鍾數
J0:LCALL XIANSHI ;調顯示
JNB P2.0,J0 ;按鍵松開了才加一
INC 31H
MOV A,31H
CJNE A,#60,RET1 ;分鍾加到60就歸零
MOV 31H,#0
SJMP RET1
M1:JB P2.1,M2 ;修改小時鍵
J1:LCALL XIANSHI
JNB P2.1,J1
INC 30H
MOV A,30H
CJNE A,#24,RET1 ;小時加到24就歸零
MOV 30H,#0
M2:JB P2.2,RET1 ; 修改星期鍵
J2:LCALL XIANSHI
JNB P2.2,J2
INC 33H
MOV A,33H
CJNE A,#8,RET1 ;星期加到8就改為1
MOV 33H,#1
RET1:POP PSW
POP ACC
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END