標(biāo)題:
通過單片機(jī)外部中斷控制數(shù)碼管動(dòng)態(tài)顯示4位數(shù)字 含匯編源碼,原理圖,和hex文件
[打印本頁]
作者:
p88309479
時(shí)間:
2018-1-12 17:53
標(biāo)題:
通過單片機(jī)外部中斷控制數(shù)碼管動(dòng)態(tài)顯示4位數(shù)字 含匯編源碼,原理圖,和hex文件
這是之前做的外部中斷控制數(shù)碼管動(dòng)態(tài)顯示數(shù)字的程序,
使用匯編代碼,基于51單片機(jī),
附件包含單片機(jī)匯編源碼,
和Proteus仿真圖,以及hex文件,
完全自己原創(chuàng),望多
捕獲.PNG
(192.17 KB, 下載次數(shù): 87)
下載附件
2018-1-12 17:52 上傳
單片機(jī)匯編語言源程序:
ORG 0000H ;開始
LJMP START ;跳轉(zhuǎn)到主程序
ORG 0003H ;外部中斷0
LJMP PINT0 ;跳轉(zhuǎn)到0號(hào)中斷服務(wù)子程序
ORG 0013H ;外部中斷1
LJMP PINT1 ;跳轉(zhuǎn)到2號(hào)中斷服務(wù)子程序
ORG 0100H ;程序地址
START: MOV SP, #60H ;設(shè)置堆棧
MOV P0,#0FFH ;P0初始化為FF
MOV P2,#00H ;P2口初始化為0
SETB IT0 ;設(shè)置0號(hào)中斷觸發(fā)方式為下降沿觸發(fā)
SETB IT1 ;設(shè)置2號(hào)中斷觸發(fā)方式為下降沿觸發(fā)
SETB EA ;合上中斷總開關(guān)(允許中斷)
SETB EX0 ;合上分開關(guān)
SETB EX1 ;合上分開關(guān)
MOV R1,#00H ;R1清零
MOV R2,#00H ;R2清零
MOV R3,#00H ;R3清零
MOV R4,#00H ;R4清零
MOV A,#11H ;A設(shè)初值
LJMP MAIN ;初始化完成,進(jìn)入主程序
ORG 0200H ;主程序地址
MAIN: MOV P2,A ;選擇位選線
MOV 31H,R1 ;千位存入31H單元
MOV 32H,R2 ;百位存入32H單元
MOV 34H,R3 ;十位存入34H單元
MOV 38H,R4 ;個(gè)位存入38H單元
PUSH ACC ;保護(hù)現(xiàn)場
ANL A,#0FH ;保留A的第四位
ADD A,#30H ;使A與數(shù)位存放地址對(duì)應(yīng)
MOV R0,A ;數(shù)位存放地址存入R0
MOV A,@ R0 ;取所需數(shù)位的數(shù)字
LCALL DISPLAY ;查表
MOV P0,A ;顯示所需數(shù)字
LCALL DELAY ;延時(shí)
POP ACC ;恢復(fù)現(xiàn)場
RL A ;A左循環(huán)移位
SJMP MAIN ;死循環(huán)
ORG 0400H ;0號(hào)中斷服務(wù)子程序地址
PINT0: CJNE R4,#9,L1 ;個(gè)位不為9跳轉(zhuǎn)
CJNE R3,#9,L2 ;十位不為9跳轉(zhuǎn)
CJNE R2,#9,L3 ;百位不為9跳轉(zhuǎn)
CJNE R1,#9,L4 ;千位不為9跳轉(zhuǎn)
MOV R1,#00H ;千位置零
MOV R2,#00H ;百位置零
MOV R3,#00H ;十位置零
MOV R4,#00H ;個(gè)位置零
RETI ;中斷返回
L1:INC R4 ;個(gè)位加一
RETI ;中斷返回
L2:INC R3 ;十位加一
MOV R4,#00H ;個(gè)位置零
RETI ;中斷返回
L3:INC R2 ;百位加一
MOV R4,#00H ;個(gè)位置零
MOV R3, #00H ;十位置零
RETI ;中斷返回
L4:INC R1 ;千位加一
MOV R2,#00H ;百位置零
MOV R3,#00H ;十位置零
MOV R4,#00H ;個(gè)位置零
RETI ;中斷返回
ORG 0600H ;2號(hào)中斷服務(wù)子程序地址
PINT1: CJNE R4,#0,LA ;個(gè)位不為0跳轉(zhuǎn)
CJNE R3,#0,LB ;十位不為0跳轉(zhuǎn)
CJNE R2,#0,LC ;百位不為0跳轉(zhuǎn)
CJNE R1,#0,LD ;千位不為0跳轉(zhuǎn)
MOV R1,#9 ;千位置9
MOV R2,#9 ;百位置9
MOV R3,#9 ;十位置9
MOV R4,#9 ;個(gè)位置9
RETI ;中斷返回
LA:DEC R4 ;個(gè)位減一
RETI ;中斷返回
LB:DEC R3 ;十位減一
MOV R4,#9 ;個(gè)位置9
RETI ;中斷返回
LC:DEC R2 ;百位減一
MOV R4,#9 ;個(gè)位置9
MOV R3,#9 ;十位置9
RETI ;中斷返回
LD:DEC R1 ;千位減一
MOV R2,#9 ;百位置9
MOV R3,#9 ;十位置9
MOV R4,#9 ;個(gè)位置9
RETI ;中斷返回
ORG 0800H ;延時(shí)子程序地址
DELAY: MOV R7, #30 ;設(shè)置外層循環(huán)次數(shù)
DEL1: MOV R6,#40 ;設(shè)置內(nèi)層循環(huán)次數(shù)
DEL2: DJNZ R6,DEL2 ;內(nèi)層循環(huán)
DJNZ R7,DEL1 ;外層循環(huán)
RET ;返回
ORG 2600H ;查表子程序地址
DISPLAY: ADD A, #01H ;查表位置調(diào)整
MOVC A, @A+PC ;查表
RET ;返回
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;7段碼常數(shù)表
END ;程序結(jié)束
復(fù)制代碼
多指教全部資料51hei下載地址:
10-27-外部中斷控制數(shù)碼管動(dòng)態(tài)顯示4位數(shù)字.zip
(10.14 KB, 下載次數(shù): 55)
2018-1-12 17:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1