?? 2.asm
字號:
;*******************************************************
;
; HT48RA0A 自動照明樣板
;
;*******************************************************
INCLUDE HT48RA0A.INC
DATA .SECTION AT 20H 'DATA'
;------------------------------------------------
counter0 db ?;
counter1 db ?;
keycount db ?;
keystatus DB ?;
;------------------------------------------------
CODE .SECTION
ORG 00H
Jmp initial
;------------------------------------------------
ORG 010H
Initial: ;清除所有的通用存儲單元
;20H to 3FH
mov A,20H
mov MP,A
jmp clramloop
clramloop:
clr R0
inc MP
mov A,0BFH
sub A,MP
sz STATUS.0
jmp clramloop ;MP0<3FH 跳轉至clramloop
;------------------------------------------------
;------------------------------------------------
; -- 主程序 --
;------------------------------------------------
initial_mode:
clr keycount
mov A,00000011B ;設置 PA0 和 PA1 輸出
;″1″
mov PA,A
mov A,00000000B ;
mov PC,A
;------------------------------------------------
mov A,0E0H;
mov counter1,A ;100×256×32=第一次點火時間
; (4MHz=E0H=0.8 秒)
;................................................
;................................................
sign_test:
sz keystatus.0 ;檢測PB5 引腳電平
jmp ignite ;如果 PB5 電平為低,點亮
;燈管
calldelay_46:
sz PB5
jmp clr_sign
inc keycount
mov A,0FAH
sub A,keycount
sz status.0
jmp sign_test
set keystatus.0 ;
jmp sign_test
clr_sign:
clr keycount
mov A,00000011B ;設置 PA0 和 PA1 輸出
;″1″
jmp sign_test
;................................................
ignite:
clr keycount
call ignite_sub ;點火模式: 第一次時間
;子程序
;
mov A,0FCH ;4MHz=FCH=0.1 秒
mov counter1,A ;110×256×4=第二次點火
;時間
ignite_se: ;點火模式: 第一次時間
mov A,00000001b
clr pa
mov PA,A
call delay_46
nop
nop
nop
nop
;..
mov A,00000010b
clr pa
mov PA,A
call delay_46
nop
siz counter0
jmp ignite_se
siz counter1
jmp ignite_se
;................................................
run_mode: ;運作模式: 穩定頻率在
;22kHz
mov A,00000001b
clr pa
mov PA,A
call delay_run
snz keystatus.0 ;
jmp initial_mode ;PB5 為高電平, 熄滅
;燈管
;.......
mov A,00000010b
clr pa
mov PA,A
call delay_run
jmp run_mode
;--------------------------------------------------
; -- 子程序 --
;--------------------------------------------------
;delay_run:
clr wdt
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
ret
;
delay_run:
clr wdt
snz PB5 ;檢測PB5 引腳電平
jmp delay_run1 ;如果PB5 電平為高,熄滅
;燈管
inc keycount
mov A,0FAH
sub A,keycount
sz status.0
jmp delay_run2
clr keystatus.0
jmp delay_run3
delay_run1:
nop
jmp $+1
jmp $+1
delay_run2:
jmp $+1
delay_run3:
jmp $+1
ret
delay_46:
clr wdt
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
jmp $+1
nop
ret
;--------------------------------------------------
; -- 子程序 --
;--------------------------------------------------
ignite_sub:
mov A,00000001b
mov PA,A
;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;
mov A,00000010b
mov PA,A
;.......
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;.......
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;.....
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;.....
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
;..
mov A,00000001b
mov PA,A
;;
mov A,00000010b
mov PA,A
clr wdt
siz counter0
jmp ignite_sub
siz counter1
jmp ignite_sub
clr pa
;..................................
ret
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -