欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機中斷優先級匯編程序
[打印本頁]
作者:
daniu
時間:
2014-12-27 17:24
標題:
51單片機中斷優先級匯編程序
;============================================================
;程序編寫人:蘭建文
;編寫地點:51hei培訓機構
;時間:5月23日下午 星期六
;功能:本程序實現P0口的對2個數碼管顯示0到99,一個按鍵實現加1,
; 到99回到0;一個按鍵實現減1,減到0回到99,低電平亮
;P2口實現對數碼管的片選功能
;============================================================
;=======================開始初始化===========================
SHUCHU EQU P2 ;定義P0口為輸出口
SHUZI EQU 30H ;設置處理數據存放地址
;========================程序開始===========================
ORG 00H ;程序開始
LJMP START ;跳到MAIN
ORG 03H
JMP INIT_0
ORG 13H
JMP INIT_1
ORG 0030H ;入口地址
START:
CALL INIT
MOV SP,#60H
MOV SHUZI,#00
MOV DPTR,#TAB ;查表初始化
;==========================主程序=============================
MAIN:CALL CHULI ;計算處理
CALL XIANSHI ;顯示
JMP MAIN
;=============開啟外部中斷0和外部中斷1子程序=================
;輸入:無
;輸出:無
;實現的功能:開啟中斷0和外部中斷1
;============================================================
INIT:MOV IE,#85H
MOV TCON,#05H
SETB PX1
RET
;========================處理子程序==========================
;輸入:30H
;輸出:"A和B"
;實現的功能:把30H的數據的十位和個位分離出來,分別放A和B中
;============================================================
CHULI:MOV A,SHUZI ;數據放在A中
MOV B,#10 ;除數放在B中
DIV AB ;商放在A中,余數放在B中
RET
;========================顯示子程序==========================
;輸入:"A"
;輸出:"P0口"
;實現的功能:把A的數輸出到P0口顯示,十位和個位分開顯示
;============================================================
XIANSHI:MOVC A,@A+DPTR
MOV SHUCHU,A ;顯示十位
MOV P1,#01H
CALL DELAY
MOV SHUCHU,#0FFH
MOV A,B
MOVC A,@A+DPTR
MOV SHUCHU,A ;顯示個位
MOV P1,#02H
CALL DELAY
MOV SHUCHU,#0FFH
RET
;===================外部中斷0服務程序========================
;輸入:無
;輸出:外部中斷0
;實現的功能:響應一次外部中斷0,30H內容實現加1
;============================================================
INIT_0:MOV A,SHUZI
INC A
CJNE A,#100,NEXT0
MOV SHUZI,#00
JMP LL0
NEXT0:MOV SHUZI,A
LL0:RETI
;===================外部中斷1服務程序========================
;輸入:無
;輸出:外部中斷1
;實現的功能:響應一次外部中斷0,30H內容實現減2
;============================================================
INIT_1:
MOV A,SHUZI
CJNE A,#1,NEXT1
MOV SHUZI,#99
JMP LL1
NEXT1:CJNE A,#0,NEXT2
MOV SHUZI,#98
JMP LL1
NEXT2:SUBB A,#2
MOV SHUZI,A
LL1:RETI
;========================延時程序============================
;輸入;無
;輸出: 無
;實現的功能:延時一段時間
;============================================================
DELAY:
MOV R6,#80
L7:MOV R5,#80
DJNZ R5,$
DJNZ R6,L7
RET
;=====================共陽查表數據============================
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;=======================程序結束==============================
END
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1