📄 61k.asm
字号:
;ACES
;61K.ASM 68HC-QT4IC/QT2-APPLIED FOR : DIM /6S.D.OFF/BUFF OFF VDD=3.67V-4.92V
;2PIN:DIM OUT/0.3V-3V/10W-32W 7PIN:NC
; (0.95-3.58V)
;3PIN:STAR LED 6PIN:POWER ON/OFF
;4PIN:0N=0V OFF=5V 5PIN:NC
;18/05/2003
PTA EQU $00
PTB EQU $01
DDRA EQU $04
DDRB EQU $05
KBIER EQU $001B
ADSCR EQU $3C
ADR EQU $3D ;READ ONLY
ADICLK EQU $3E
CONFIG1 EQU $1F
CONFIG2 EQU $1E
COPCTL EQU $0FFFF ;kan men gou set
ORG $80
RAM0 RMB 1
RAM1 RMB 1
RAM2 RMB 1
RAM3 RMB 1
RAM4 RMB 1
RAM5 RMB 1
RAM6 RMB 1
RAM7 RMB 1
RAM8 RMB 1
RAM9 RMB 1
RAM10 RMB 1
RAM11 RMB 1
RAM12 RMB 1
RAM20 RMB 1
RAM30 RMB 1
RAM31 RMB 1
RAM32 RMB 1
RAM33 RMB 1
RAM34 RMB 1
RAM35 RMB 1
ORG $EE00
INIT:
SEI ;DISABLE ALL INT
RSP ;RESET STACK POINTER
; mov #%00010011,DDRA ;I/O pin
; mov #%00111111,ADSCR ;DISABLE ADC
; mov #%00000000,ADICLK ; CLK=1MHZ
;-----------CLEAR RAM --------------------------------
LDHX #$007F ;CLEAR RAM FROM $80 TO $FF ;kan men gou
P2:
INCX ;kan men gou
CLR ,X
CPX #$0FF ;kan men gou
BNE P2 ;kan men gou
mov #%00111000,DDRA ;I/O pin
mov #%01000010,KBIER ;I/O pin
; mov #%00111111,ADSCR ;DISABLE ADC
; mov #%00000000,ADICLK ; CLK=1MHZ
mov #%00000001,CONFIG1
;mov #%01000000,CONFIG2
LDA #$FF
L111: DECA
CBEQA #$00,L0
JMP L111
L0:
LDA #0
STA RAM10
STA RAM0
LDA #$C9 ;C6-61K
STA RAM8 ;LOOP1
LDA #$36 ;39-61K
STA RAM9 ;LOOP2
LDA #1
STA RAM11
LDA #$00
STA RAM20
STA RAM30
STA RAM31
STA RAM32
STA RAM33
BSET 3,PTA
BCLR 4,PTA
LDA #$00
LDHX #COPCTL
STA ,X
WAIT
L1: BCLR 5,PTA ;ON LED
JSR LOOP1
L1D: BSET 5,PTA
JSR LOOP2
L1B: BRCLR 1,PTA,L92
LDA #$00
LDHX #COPCTL
STA ,X
JMP L1
L90:
BRSET 1,PTA,L990
JMP L992
L990: JSR LOOP41
JSR LOOP41
JSR LOOP41
JSR LOOP41
JSR LOOP41
JSR LOOP41
LDA RAM0
CMP #8
BLO L991
LDA #0
STA RAM0
JMP L1
L991:
JMP L930
LOOP900:LDA RAM10
CBEQA #1,L9001
;BSET 4,PTA
RTS
L9001: ;BCLR 4,PTA
RTS
LOOP902: CBEQA #9,L9002
RTS
L9002: LDA #8
STA RAM0
RTS
L92: JSR LOOP41
JSR LOOP41
JSR LOOP41
JSR LOOP41
JSR LOOP41
JSR LOOP41
;JSR LOOP20
;JSR LOOP900
LDA RAM0
INCA
STA RAM0
JSR LOOP902
JMP L90 ;CHEK PTA2=0
L992: JSR LOOP41
JSR LOOP41
LDA RAM10
CBEQA #$01,L94
JSR LOOP41
JSR LOOP41
BSET 4,PTA
LDA RAM8
CBEQA #$0,L93
LDA RAM9
INCA
STA RAM9
LDA RAM8
DECA
STA RAM8
;CMP #176
;BLO L98
;JMP L99
L98: CBEQA #$0,L93 ;Lamp Very Bright
JSR LOOP41
JMP L91
L93: BCLR 4,PTA
JSR LOOP93
LDA #$01
STA RAM10
JMP L91
LOOP93: LDA #$0 ;0+2
STA RAM8
LDA #$FF ;FF-1
STA RAM9
RTS
L94: JSR LOOP41
JSR LOOP41
BSET 4,PTA
LDA RAM9
CBEQA #$36,L95 ;39
LDA RAM8
INCA
STA RAM8
LDA RAM9
DECA
STA RAM9
;CMP #176
;BLO L97
;JMP L96
L97: CBEQA #$36,L95 ;39 Lamp Very Dark
JSR LOOP41
JMP L91
L95: BCLR 4,PTA
JSR LOOP95
LDA #00
STA RAM10
JMP L92
LOOP95: LDA #$36 ;39=39
STA RAM9
LDA #$C9 ;C6=C6
STA RAM8
RTS
L91: BCLR 5,PTA ;ON LED
JSR LOOP1
L91D: BSET 5,PTA
JSR LOOP2
JMP L92
L930: JMP L30
L2:
LDA #0
STA RAM0
LDA RAM10
CBEQA #$01,L4
BSET 4,PTA
LDA RAM9
INCA
STA RAM9
LDA RAM8
DECA
STA RAM8
CBEQA #$1,L3
JMP L1
L3: BCLR 4,PTA
JSR LOOP93
LDA #$01
STA RAM10
JMP L1D
L4: BSET 4,PTA
LDA RAM8
INCA
STA RAM8
LDA RAM9
DECA
STA RAM9
CBEQA #$1,L5
JMP L1
L5: BCLR 4,PTA
JSR LOOP95
LDA #00
STA RAM10
BCLR 5,PTA
JSR LOOP1
JMP L1B
LOOPF: LDA RAM35
RTS
L1W1: JMP L1
L30: LDA #0
STA RAM0
LDA RAM11
CBEQA #1,L31 ;TO POWER ON
JSR LOOP811
JSR LOOPF ;Delay 1s
CBEQA #1,LWOFF
JSR LOOP811
JSR LOOPF ;Delay 1s
CBEQA #1,LWOFF
LWOFF: JSR LOOPON ;To------Bright
L1W:
LDA #0
STA RAM35
BCLR 5,PTA
BSET 3,PTA ;POWER--OFF
BCLR 4,PTA
LDA #1
STA RAM11
LDA #$00
LDHX #COPCTL
STA ,X
WAIT
BRCLR 1,PTA,L1W1 ;OFF-CHAK PTA1
JMP L1W
L31: JMP L31L
LOOP811:
BCLR 4,PTA
BRCLR 1,PTA,LF
JSR LOOP81 ;Delay 2s
BRCLR 1,PTA,LF
JSR LOOP81
BRCLR 1,PTA,LF
BSET 4,PTA
JSR LOOP81
BRCLR 1,PTA,LF
JSR LOOP81
BRCLR 1,PTA,LF
BCLR 4,PTA
JSR LOOP81
BRCLR 1,PTA,LF
JSR LOOP81
BRCLR 1,PTA,LF
BSET 4,PTA
JSR LOOP81
BRCLR 1,PTA,LF
JSR LOOP81
BRCLR 1,PTA,LF
BCLR 4,PTA
JSR LOOP81 ;Delay 2s
BRCLR 1,PTA,LF
JSR LOOP81
BRCLR 1,PTA,LF
BSET 4,PTA
JSR LOOP81
BRCLR 1,PTA,LF
JSR LOOP81
BRCLR 1,PTA,LF
RTS
LOOP81: LDA #$6C
STA RAM33
L86: BCLR 5,PTA
JSR LOOP1
BSET 5,PTA
JSR LOOP2
LDA RAM33
DECA
STA RAM33
BRCLR 1,PTA,L85
CBEQA #0,L85
JMP L86
L85:
LDA #$00
STA RAM33
RTS
LF: LDA #1
STA RAM35
RTS
L31L: BCLR 3,PTA ;POWER ON
LDA #0
STA RAM11
LDA #1
STA RAM10
LDA #$FF
STA RAM9
LDA #$0
STA RAM8
;JSR LOOPOFF ;To-----Dark
JMP L1
LOOPON: LDA RAM9
CBEQA #1,L505
;---Bright
LONN: JSR LOOP41
JSR LOOP41
JSR LOOP41
LDA RAM8
INCA
STA RAM8
LDA RAM9
DECA
STA RAM9
CBEQA #1,L505
JMP LONN
L505: RTS
LOOPOFF:LDA RAM8 ;---Dark
CBEQA #1,L303
POFF: LDA RAM9
INCA
STA RAM9
LDA RAM8
DECA
STA RAM8
CBEQA #1,L303
JSR LOOP41
JMP POFF
L303: RTS
LOOP41: BCLR 5,PTA
JSR LOOP1
BSET 5,PTA
JSR LOOP2
LDA #$00
LDHX #COPCTL
STA ,X
RTS
LOOP1: LDA RAM8
STA RAM5
L22: LDA RAM5
DECA
STA RAM5
CBEQA #$00,L10
JSR LOOP60
JMP L22
L10: RTS
LOOP0: LDA #$0FF
L12: DBNZA L12 ;20ms
RTS
LOOP2: LDA RAM9
STA RAM5
L33: LDA RAM5
DECA
STA RAM5
CBEQA #$00,L11
JSR LOOP60
JMP L33
L11: RTS
LOOP20: LDA #$10
STA RAM12
L15 LDA RAM12
DECA
STA RAM12
CBEQA #$00,L7
JSR LOOP60
JMP L15
L7 RTS
LOOP60: LDA #$4 ;20ms
L19: DBNZA L19
RTS
************INTERRUPT ROUTINES********************************************
ADC_INT:
RTI
KEY_INT:
RTI
TIMER_OVR:
RTI
TIMER_INT1:
RTI
TIMER_INT0:
RTI
EXT_INT:
RTI
SOFT_INT:
RTI
************INTERRUPT VECTOR ADDRESS********************************************
ORG $FFDE
FDB ADC_INT ; ADC INT (NOT USE)
ORG $FFE0
FDB KEY_INT ; KEYBOARD INT (NOT USE)
ORG $FFF2
FDB TIMER_OVR ; TIMER OVERFLOW INT (NOT USE)
ORG $FFF4
FDB TIMER_INT1 ; BUZZER 2.4 KHZ
ORG $FFF6 ;
FDB TIMER_INT0 ;TIMER INT 0 X-EN & GENERAL TIMER
ORG $FFFA ;
FDB EXT_INT ; EXTERNAL INT (POWER OFF INT)
ORG $FFFC ;
FDB SOFT_INT ;SOFWARE INT (BREAK INT)
ORG $FFFE ;RESET VECTOR ADDRESS
FDB INIT ;RESET VECTOR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -