標題: 使用兩個按鍵控制共陽極數碼管計時的暫停和繼續(匯編語言+普中單片機) [打印本頁]
作者: 布魯克林章魚哥 時間: 2024-11-14 22:06
標題: 使用兩個按鍵控制共陽極數碼管計時的暫停和繼續(匯編語言+普中單片機)
實在是不知道怎么加兩個中斷用來開始和暫停目前只會寫以下兩種0到9共陽極數碼管循環
程序一(自動循環)
ORG 0000H
LJMP START
ORG 0040H
START: MOV DPTR,#NUMTAB ;讀數據表入口地址
MOV R0,#00H ;R0地址初始化
LOPDSP: MOV A,R0
MOVC A,@A+DPTR ;讀數字對應編碼
MOV P0,A
ACALL DELAY
INC R0 ;數字加1
CJNE R0,#0AH,LOPDSP ;大于9,再從0顯示
JMP START
DELAY: MOV R6,#0FFH
LP1: MOV R7,#0FFH
LP: DJNZ R7,LP
DJNZ R6,LP1
RET
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
程序二(按鍵按一下加一,使用一個中斷子程序)
; 使用P0接靜態數碼管
; 使用P1接LED燈(本程序中未使用)
; 使用P3.2接獨立按鍵K1,外部中斷0和P3.2引腳綁定
; 按鍵無消抖
;-------------------------------------
ORG 0000H ; ORG為程序段說明偽指令,它向匯編程序說明該程序段的起始地址,所以可以當中斷向量地址用
LJMP L_Main ; 跳轉到L_Main標號處
ORG 0013H ; 0003H為外部中斷0向量地址
LJMP I_INT1 ; 跳轉到I_INT1標號處
ORG 0030H
L_Main:
; 初始化中斷
SETB EA ; 總中斷允許控制位設置為1
SETB EX1 ; 外部中斷0允許位設置為1
SETB PX1 ; 外部中斷0優先級設置為1
SETB IT1 ; 外部中斷0設置為下降沿觸發方式
MOV DPTR,#T_table ; T_table所在地址賦值給DPTR
MOV R0,#000H ; 立即數賦值給R0,給R0賦初值,在中斷中用到
MOV P0,#0C0H ; 設置數碼管顯示的初始值(熄滅)
; 主循環
L_MainLoop:
SJMP L_MainLoop ; 無限循環
;---------------------------------------
I_INT1:
PUSH ACC ; ACC地址單元中的數據壓棧
PUSH PSW ; 程序狀態字寄存器壓棧
MOV A,R0 ; 將R0的值移動到累加器A
MOVC A,@A+DPTR ; 根據A的值和DPTR的值,從數據表中取數到A
MOV P0,A ; 將累加器A的值移動到P0口,更新數碼管顯示
INC R0 ; R0寄存器值加1
CJNE R0,#10,L_Next ; 如果R0不等于10就跳轉到L_Next
MOV R0,#000H ; 如果R0等于10,則重置為0
L_Next:
POP PSW ; 程序狀態字寄存器出棧
POP ACC ; ACC地址單元中的數據出棧
RETI ; 中斷返回
;---------------------------------------
T_table:
DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H,0F8H, 80H, 90H
END
想用普中開發板P3.2,P3.3連K1,K2兩個按鈕控制開始和暫停,求教各位大佬,謝謝
作者: 188610329 時間: 2024-11-15 08:45
P33 暫停
P32 繼續
CSEG 0000H
LJMP START
CSEG 0003H //P32, INT0
CLR IE1
RETI
MAIN_SEG segment code
RSEG MAIN_SEG
START: SETB IT0 //下降沿
SETB IT1 //下降沿
SETB EX0 //開INT0中斷
SETB EA //開總中斷
Main_Loop:
MOV DPTR,#NUMTAB ;讀數據表入口地址
MOV R0,#00H ;R0地址初始化
LOPDSP: MOV A,R0
MOVC A,@A+DPTR ;讀數字對應編碼
MOV P0,A
ACALL DELAY
JB IE1,$ //暫停
INC R0 ;數字加1
CJNE R0,#0AH,LOPDSP ;大于9,再從0顯示
JMP Main_Loop
DELAY: MOV R6,#0FFH
LP1: MOV R7,#0FFH
LP: DJNZ R7,LP
DJNZ R6,LP1
RET
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
作者: lkc8210 時間: 2024-11-15 09:39
普中板子的數碼管不是共陰的嗎?
取模應該是3FH, 06H, 5BH...
作者: 布魯克林章魚哥 時間: 2024-11-15 13:07
板子上共陽共陰都有,我用的是共陽的那個一位靜態數碼管
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |