?? 網上題目3-2.asm
字號:
;單片機 AT89C51
;晶振頻率是12MHZ
;P1口 紅色發光二極管
;用51的P1口控制8個LED,1 點亮,0 熄滅。
;題目:第3,
;所有的燈逐漸從暗到全亮,再由全亮到暗。
ORG 0000H ;定義當前位置為 0000H
LJMP MIAN ;轉主程序 短轉移到 MIAN,
ORG 000BH ;定義當前位置為 000BH
LJMP ZC1 ;轉中斷程序 T0 短轉移到 ZC1,
ORG 001BH ;定義當前位置為 001BH
LJMP ZC2 ;轉中斷程序 T1 短轉移到 ZC2,
ORG 0030H ;定義當前位置為 0030H
MIAN: MOV SP, #60H ;設堆棧指針 傳送 SP,立即數60H
MOV TMOD, #11H ;定時器初始化,工作方式1. (65536) 傳送 TMOD,立即數11H
MOV TH0, #0FFH ;傳送 TH0,立即數0FFH 傳送 TH0,立即數0FFH
MOV TL0, #0F6H ;定時器T0定時10us. 傳送 TL0,立即數0F6H
MOV TH1, #0D8H ;傳送 TH1,立即數0D8H 傳送 TH1,立即數0D8H
MOV TL1, #0F0H ;定時器T1定時10ms 傳送 TL1,立即數0F0H
MOV IE, #8AH ;傳送 IE,立即數8AH 傳送 IE,立即數8AH
MOV R1, #200 ;傳送 通用寄存器1,立即數200
MOV A, R1 ;傳送 寄存器A,R1
MOV R2, #2 ;傳送 通用寄存器2,立即數2
MOV R0, #1 ;傳送 通用寄存器0,立即數1
MOV P1, #00H ;傳送 接口1,立即數00H
SETB TR1 ;開定時器T1定時5ms 位-置1 TR1,
CLR TR0 ;關定時器T0定時19US 清0 TR0,
CLR P1.0 ;清0 接口1第0位 清0 接口1第0位,
SJMP $ ;等帶 短轉移到 到本行,
ZC1: CJNE R2, #2, L1 ;比較-不等轉移 通用寄存器2,立即數2,
DJNZ R1, L ; 減一不為0轉移 通用寄存器1,
DEC A ;A減1 減1 寄存器A, 減1 寄存器A,
MOV R1, A
CJNE A, #1, L2 ;比較-不等轉移 寄存器A,立即數1,
L1: DJNZ R0, L ;減一不為0轉移 通用寄存器0,L
INC A ;A加1 加1 寄存器A, 加1 寄存器A,
MOV R0, A ;傳送 通用寄存器0,寄存器A
MOV R2, #3 ;傳送 通用寄存器2,立即數3
L2: MOV P1, #00H
L4: CLR TR0 ;清0 TR0 清0 TR0,
CJNE A, #200, L3 ;比較-不等轉移 寄存器A,立即數200
MOV R1, #200 ;傳送 通用寄存器1,立即數200
MOV R2, #2 ;傳送 通用寄存器2,立即數2
MOV R0, #1 ;傳送 通用寄存器0,立即數1
SJMP L3 ;短轉移到 L3 短轉移到 L3,
L: SETB TR0 ;位-置1 TR0 位-置1 TR0,
L3: MOV TH0, #0FFH ;傳送 TH0,立即數0FFH
MOV TL0, #0F6H ;定時器T0定時10US. 傳送 TL0,立即數0F6H
RETI ;中斷返回 中斷返回
ZC2: MOV P1, #0FFH ;傳送 接口1,立即數0FFH
MOV TH1, #0D8H ;傳送 TH1,立即數0D8H
MOV TL1, #0F0H ;定時器T1定時10ms 65536 傳送 TL1,立即數0F0H
SETB TR0 ;位-置1 TR0 位-置1 TR0,
SETB TR1 ;位-置1 TR1 位-置1 TR1,
RETI ;中斷返回 中斷返回
END ;END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -