單片機怎么讓程序等待按鍵輸入(89c52獨立按鍵介紹?)
89c52獨立按鍵介紹?的主要設備主要包括數碼管(用于顯示倒計時時間和搶答成功的玩家人數)按鈕(主持人按鈕和玩家按鈕)。使用單獨的鍵盤,程序循環等待鍵輸入。一旦玩家按下該鍵,即單片機輸入端口為1(或0

89c52獨立按鍵介紹?的主要設備主要包括數碼管(用于顯示倒計時時間和搶答成功的玩家人數)按鈕(主持人按鈕和玩家按鈕)。使用單獨的鍵盤,程序循環等待鍵輸入。一旦玩家按下該鍵,即單片機輸入端口為1(或0,自行設置)時,阻止其他鍵輸入,并相應顯示玩家號,倒計時結束無人搶答時將失效。
單片機編程實現0---20秒計時器,并用proteus軟件設計硬件電路?
可以設置倒計時定時器的時間,并可以選擇5/15/20/30/35/45/50分鐘倒計時。倒計時時間由四個dip開關位的1/2/3控制,
第二個數字表示5分鐘,第三個數字表示15分鐘,第四個數字表示30分鐘。
5/15/20/30/35/45/50分鐘倒計時可以通過不同的組合產生。
P1.0端口的外接發光二極管為狀態LED,在計時未開始時常亮,計時過程中閃爍。
K1是開始按鈕,K2是停止按鈕。
A_bit equ 20h數碼管一位數存儲單元
B_bit equ 21h數碼管十位存儲單元
Temp equ 22h計數器值存儲位置
引導初始化
Movp3和# 0ffh初始化p3端口,并將其設置為高電平,用于按鍵輸入。
MOV P0,#0FFH關閉數碼管顯示時間。
CLR P1.0點亮L:JB P3.6,$ loop確定開始按鈕K1是否按下?
呼叫延遲10延遲10毫秒觸點抖動消除
JB P3.6,如果是干擾,START返回。
JNB P3.6,$等待按鈕被釋放。
讀取dip開關的狀態,并獲得倒計時時間。
S:
MOV A,#0先清除A。
JB P2.0,A1判斷dip開關第二位是否連接,如果連接則A加5。
添加一個,#5
A1: JB p 2.1和A2判斷dip開關第三位是否接通,如果接通則A加15。
加一個,#15
A2: JB p 2.2和A3判斷dip開關的第四位是否接通,如果接通則A加30。
加一個,#30
A3:·MOV臨時雇員
此時,T:
CLR P2.4釋放繼電器1并開始計時(啟動時繼電器處于吸合狀態)。
CLR P2.3釋放繼電器2并開始計時(啟動時繼電器處于吸合狀態)。
MOV·R2 #120
AB1: MOV R3,編號250
TIM: MOV一,臨時轉換成十進制數臨時十六進制數。
Mov b,#10 10十進制/10 =十進制
分部ab
Mov b_bit,一個十在一個。
Mov a_bit,b位在b中。
Mov dptr,#numtab指定查找表的起始地址。
mov r0,#4
dpl1: mov R1,#250
Dplop: MOV A,A _ BIT取個位數。
MOVC A,@A DPTR,用個位數查7段碼。
Mov p0,a發送7位代碼。
Clr p2.7打開位顯示。
呼叫延遲1顯示1毫秒。
Setb p2.7關閉單元顯示器以防止重影。
Mov a,b_bit取十位數。
MOVC一個,@ DPTR一個,檢查十位數的7段碼。
Mov p0,a發送七段十位數的代碼。
Clr p2.6打開十位數顯示。
呼叫延遲1顯示1毫秒。
Setb p2.6關閉十位數顯示,防止重影。
插入一個程序段,判斷計時過程中是否有按鍵輸入。
C1: JB p 3.6,B1
呼叫延遲10延遲10毫秒以消除抖動。
JB P3.6,C1
JNB P3.6,$等待按鈕被釋放。
AJMP集合1
B1: JB p 3.7,M33
呼叫延遲10延遲10毫秒以消除抖動。
JB P3.7,B1
JNB P3.7,$等待按鈕被釋放。
AJMP結束
M33: DjNZ R3,時間12 ms循環執行250次,時間約為0.5秒。
CPL P1.0使LED每1秒閃爍一次。
Djnz r2,AB1循環在1分鐘內執行120次。
十二月溫度零下1度整整一分鐘。
MOV A,臨時
JNZ顯示
判斷TEMP的值是否為0?不為0的周期。
結束計時
over CHO 15-@ . com clr p 1.0 L:·MOV·R4,排名第二D1: MOV R5,編號248
DJNZ R5,美元
D1 DJNZ R4
浸水使柔軟
10毫秒延遲子程序
D:MOV R4,#20
D2: MOV R5,編號248
DJNZ R5,美元
D2 DJNZ R4
浸水使柔軟
實驗板上7個數碼管的0 ~ 9位的常用負顯示碼。
NUMTAB:DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH
結束