|
本帖最后由 daniu 于 2014-12-27 18:25 編輯
- ;============================================================
- ;程序編寫(xiě)人:蘭建
- ;編寫(xiě)地點(diǎn):51hei培訓(xùn)機(jī)構(gòu)
- ;時(shí)間:5月23日下午 星期六
- ;功能:本程序利用定時(shí)器中斷0方法,實(shí)現(xiàn)P0口數(shù)碼管0-9的閃爍功能
- ;=======================開(kāi)始初始化================================
- SHUCHU EQU P0 ;定義P0口為輸出口
- PIANXUAN EQU P2 ;設(shè)置P2.0為片選
- SHUZI EQU 30H
- CISHU EQU 20 ;循環(huán)20次數(shù)為1秒
- MODE EQU 01H
- C_BIT BIT 20H.0 ;數(shù)碼管閃爍標(biāo)志位設(shè)置
- ;========================程序開(kāi)始================================
- ORG 00H ;程序開(kāi)始
- LJMP START ;跳到START
- ORG 0BH ;定時(shí)器中斷0入口地址
- JMP T0_1 ;跳到定時(shí)器中斷0服務(wù)程序
- ORG 0030H ;入口地址
- START:MOV R5,#CISHU
- CALL INIT ;開(kāi)定時(shí)器中斷0,設(shè)置定時(shí)初值
- MOV PIANXUAN,#00 ;片選初始化
- MOV SHUZI,#00 ;數(shù)碼管顯示初始化
- MOV DPTR,#TAB
- MOV SHUZI,#00
- MOV SP,#30H ;移開(kāi)指針
- ;==========================主程序=================================
- MAIN:JNB C_BIT,L0 ;判斷數(shù)碼管閃爍標(biāo)志位,為1數(shù)碼管點(diǎn)亮,為0滅
- MOV A,SHUZI
- CALL CHABIAO
- CALL XIANSHI
- JMP LL
- L0:MOV SHUCHU,#0FFH ;數(shù)碼管滅
- LL:JMP MAIN ;返回主程序
- ;========================中斷設(shè)置子程序============================
- ;輸入:無(wú)
- ;輸出:無(wú)
- ;實(shí)現(xiàn)的功能:初始化定時(shí)器0,初值設(shè)置
- ;==================================================================
- INIT:MOV TMOD,#MODE ;定時(shí)器1工作方式1
- MOV TL1,#0B0H ;設(shè)定時(shí)初值
- MOV TH1,#3CH
- MOV IE,#82H
- SETB TR0
- RET
- ;====================定時(shí)器中斷0服務(wù)子程序=========================
- ;輸入:P0
- ;輸出:P0
- ;實(shí)現(xiàn)的功能:定時(shí)1S后P0口取反
- ;===================================================================
- T0_1:MOV TL0,#0B0H
- MOV TH0,#3CH
- DJNZ R5,L1
- CPL C_BIT
- JB C_BIT,L2
- INC SHUZI
- MOV A,SHUZI
- CJNE A,#10,L2
- MOV SHUZI,#00
- L2:MOV R5,#CISHU
- L1:RETI
- ;========================查表子程序===========================
- ;輸入:"DPTR"
- ;輸出:"A"
- ;實(shí)現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
- ;=============================================================
- CHABIAO:MOVC A,@A+DPTR
- RET
- ;========================顯示子程序===========================
- ;輸入:"A"
- ;輸出:"P2口"
- ;實(shí)現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
- ;=============================================================
- XIANSHI:MOV SHUCHU,A
- RET
- ;==========================共陽(yáng)查表數(shù)據(jù)=============================
- TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
- ;============================程序結(jié)束===============================
- END
復(fù)制代碼
|
|