|
- ;==================================================================
- ;程序編寫人:蘭建文
- ;編寫地點(diǎn):51hei培訓(xùn)機(jī)構(gòu)
- ;時(shí)間:6月8日下午星期一
- ;功能:本程利用節(jié)拍法,三個(gè)按鍵,一個(gè)實(shí)現(xiàn)正轉(zhuǎn)到反轉(zhuǎn)的切換,
- ;一個(gè)實(shí)現(xiàn)反轉(zhuǎn)到正轉(zhuǎn)的切換,一個(gè)實(shí)現(xiàn)步進(jìn)電機(jī)哦暫停。
- ;===============================================================
- ;=========================開始初始化============================
- SHUCHU EQU P2 ;定義P2口為輸出口
- ZANT BIT 20H.0 ;設(shè)置暫停標(biāo)志位
- ZHENGZ BIT 20H.1 ;設(shè)置正轉(zhuǎn)標(biāo)志位
- FANZ BIT 20H.2 ;設(shè)置反轉(zhuǎn)標(biāo)志位
- BIT0 BIT 20H.3 ;設(shè)置中斷定時(shí)器0標(biāo)志位
- MODE EQU 01H
- ;========================程序開始==============================
- ORG 00H ;程序開始
- LJMP START ;跳到START
- ORG 0BH ;中斷定時(shí)器0入口地址
- JMP T0_1 ;跳到定時(shí)器0服務(wù)程序
- ORG 0030H ;入口地址
- ;=========================主程序===============================
- START:MOV SP,#60H ;移開指針
- MOV A,#0EEH
- CALL INIT ;開中斷
-
- CLR ZANT ;暫停按鍵標(biāo)志位清0
- CLR ZHENGZ ;正轉(zhuǎn)按鍵標(biāo)志位清0
- CLR FANZ ;反轉(zhuǎn)按鍵標(biāo)志位清0
- SETB BIT0 ;中斷標(biāo)志位置1
-
- MAIN:JNB BIT0,MAIN ;等待中斷
- CLR BIT0 ;中斷標(biāo)志位清0
- JB ZANT,ZANCHULI ;判斷暫停標(biāo)志位是否為1,為1則暫停
- JB P1.0,L1
- SETB ZANT
- CLR ZHENGZ
- CLR FANZ
- JMP MAIN
- L1:JB ZHENGZ,ZHENGCHULI ;判斷正轉(zhuǎn)標(biāo)志位是否為1,為1則正轉(zhuǎn)
- JB P1.1,L2
- SETB ZHENGZ
- CLR ZANT
- CLR FANZ
- JMP MAIN
- L2:JB FANZ,FANCHULI ;判斷反轉(zhuǎn)標(biāo)志位是否為1,為1則反轉(zhuǎn)
- JB P1.2,MAIN
- SETB FANZ
- CLR ZANT
- CLR ZHENGZ
- JMP MAIN
- ZANCHULI: ;暫停處理
- MOV SHUCHU,#0FFH
- JB P1.1,L3
- CLR ZANT
- SETB ZHENGZ
- CLR FANZ
- L3:JB P1.2,MAIN
- SETB FANZ
- CLR ZANT
- CLR ZHENGZ
- JMP MAIN
- ZHENGCHULI: ;正轉(zhuǎn)處理
- RR A
- MOV SHUCHU,A
- JB P1.2,MAIN
- CLR ZANT
- CLR ZHENGZ
- SETB FANZ
- JMP MAIN
- FANCHULI: ;反轉(zhuǎn)處理
- RL A
- MOV SHUCHU,A
- JMP MAIN
- ;====================定時(shí)中斷0服務(wù)子程序========================
- ;輸入:無(wú)
- ;輸出:無(wú)
- ;實(shí)現(xiàn)的功能:實(shí)現(xiàn)定時(shí)20MS,影響標(biāo)志位BIT0.
- ;===============================================================
- T0_1:MOV TL0,#0E0H ;設(shè)置定時(shí)初值
- MOV TH0,#0B1H
- SETB BIT0 ;定時(shí)標(biāo)志位清0
- RETI
- ;========================中斷設(shè)置子程序=========================
- ;輸入:無(wú)
- ;輸出:無(wú)
- ;實(shí)現(xiàn)的功能:初始化設(shè)置定時(shí)器,設(shè)置初值
- ;===============================================================
- INIT:MOV TMOD,#MODE ;定時(shí)器0工作方式1
- MOV TL0,#0E0H
- MOV TH0,#0B1H
- MOV IE,#82H ;開定時(shí)器中斷0
- SETB TR0 ;開定時(shí)器0
- RET
- ;=======================程序結(jié)束================================
- END
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|