📄 main.asm
字号:
STA ,X
AIX #$01
LDA MYADDRESS3
STA ,X
AIX #$01
LDHX #TR_BUFF
MOV #CRCLONG,CRCLENTH
JSR MAKECRC
MOV CRCH,X+
MOV CRCL,X+
MOV #$01,SENDSTRAT
JMP SRET
S_QUERY:
DA_ER: ;'返回数据错误状态帧
;SETB DATA_ER
LDHX #TR_BUFF
LDA #MYTYPE
STA ,X
AIX #$01
LDA #LONGTH
STA ,X
AIX #$01
LDA #MYSTAT
STA ,X
AIX #$01
LDA MYADDRESS1
STA ,X
AIX #$01
LDA MYADDRESS2
STA ,X
AIX #$01
LDA MYADDRESS3
STA ,X
AIX #$01
LDHX #TR_BUFF
MOV #CRCLONG,CRCLENTH
JSR MAKECRC
MOV CRCH,X+
MOV CRCL,X+
MOV #$01,SENDSTRAT
SRET:
PULH
CLI
RTI
;** ===================================================================
;** Interrupt handler : isrINT_SCIError
;**
;** Description :
;** User interrupt service routine.
;** Parameters : None
;** Returns : Nothing
;** ===================================================================
;XDEF isrINT_SCIError
isrINT_SCIError:
; Write your interrupt code here ...
SEI
PSHH
LDHX #$EB80
LDA ,X
CMP #NOTUPDA
BNE isrINT_SCIError1
PULH
JMP $EB4C
isrINT_SCIError1:
PULH
CLI
RTI
; end of isrINT_SCIError
;** ===================================================================
;** Interrupt handler : isrINT_TIM1Ovr
;**
;** Description :
;** User interrupt service routine.
;** Parameters : None
;** Returns : Nothing
;** ===================================================================
;XDEF isrINT_TIM1Ovr
isrINT_TIM1Ovr:
; Write your interrupt code here ...
SEI
PSHH
LDHX #$EB80
LDA ,X
CMP #NOTUPDA
BNE isrINT_TIM1Ovr1
PULH
JMP $EB5E
isrINT_TIM1Ovr1:
LDA T1SC
BCLR 7,T1SC
COM PTB
PULH
CLI
RTI
; end of isrINT_TIM1Ovr
;************************************************************************
;************* '计算CRC校验码子程序 ***********
;'入口条件:(H:X) 数据首址
; ' (CRCLENTH) 数据字节数
;'出口条件:CRC码符加在数据后面(高位在先),并在(CRCH,CRCL)中带回,CRCH高字节
;************************************************************************
;ORG $E000
MAKECRC: ;RTS
CLR CRCH
CLR CRCL
MCRC01:
LDA ,X
PSHH
PSHX
EOR CRCH
STA CRCT
BRSET 7,CRCT,MCRC02
BCLR 7,CRCT
ASLA
STA CRCT
TAX
CLRH
LDA CRCTB1,X
EOR CRCL
STA CRCH
AIX #$01
LDA CRCTB1,X
STA CRCL
BRA MCRC03
MCRC02:
ASLA
STA CRCT
TAX
CLRH
LDA CRCTB2,X
EOR CRCL
STA CRCH
AIX #$01
LDA CRCTB2,X
STA CRCL
MCRC03:
PULX
PULH
AIX #$01
DBNZ CRCLENTH,MCRC01
RTS
CRCTB1: ;'前256字节
DC.B $00,$00,$10,$21,$20,$42,$30,$63
DC.B $40,$84,$50,$a5,$60,$c6,$70,$e7
DC.B $81,$08,$91,$29,$a1,$4a,$b1,$6b
DC.B $c1,$8c,$d1,$ad,$e1,$ce,$f1,$ef
DC.B $12,$31,$02,$10,$32,$73,$22,$52
DC.B $52,$b5,$42,$94,$72,$f7,$62,$d6
DC.B $93,$39,$83,$18,$b3,$7b,$a3,$5a
DC.B $d3,$bd,$c3,$9c,$f3,$ff,$e3,$de
DC.B $24,$62,$34,$43,$04,$20,$14,$01
DC.B $64,$e6,$74,$c7,$44,$a4,$54,$85
DC.B $a5,$6a,$b5,$4b,$85,$28,$95,$09
DC.B $e5,$ee,$f5,$cf,$c5,$ac,$d5,$8d
DC.B $36,$53,$26,$72,$16,$11,$06,$30
DC.B $76,$d7,$66,$f6,$56,$95,$46,$b4
DC.B $b7,$5b,$a7,$7a,$97,$19,$87,$38
DC.B $f7,$df,$e7,$fe,$d7,$9d,$c7,$bc
DC.B $48,$c4,$58,$e5,$68,$86,$78,$a7
DC.B $08,$40,$18,$61,$28,$02,$38,$23
DC.B $c9,$cc,$d9,$ed,$e9,$8e,$f9,$af
DC.B $89,$48,$99,$69,$a9,$0a,$b9,$2b
DC.B $5a,$f5,$4a,$d4,$7a,$b7,$6a,$96
DC.B $1a,$71,$0a,$50,$3a,$33,$2a,$12
DC.B $db,$fd,$cb,$dc,$fb,$bf,$eb,$9e
DC.B $9b,$79,$8b,$58,$bb,$3b,$ab,$1a
DC.B $6c,$a6,$7c,$87,$4c,$e4,$5c,$c5
DC.B $2c,$22,$3c,$03,$0c,$60,$1c,$41
DC.B $ed,$ae,$fd,$8f,$cd,$ec,$dd,$cd
DC.B $ad,$2a,$bd,$0b,$8d,$68,$9d,$49
DC.B $7e,$97,$6e,$b6,$5e,$d5,$4e,$f4
DC.B $3e,$13,$2e,$32,$1e,$51,$0e,$70
DC.B $ff,$9f,$ef,$be,$df,$dd,$cf,$fc
DC.B $bf,$1b,$af,$3a,$9f,$59,$8f,$78
CRCTB2: ;'后256字节
DC.B $91,$88,$81,$a9,$b1,$ca,$a1,$eb
DC.B $d1,$0c,$c1,$2d,$f1,$4e,$e1,$6f
DC.B $10,$80,$00,$a1,$30,$c2,$20,$e3
DC.B $50,$04,$40,$25,$70,$46,$60,$67
DC.B $83,$b9,$93,$98,$a3,$fb,$b3,$da
DC.B $c3,$3d,$d3,$1c,$e3,$7f,$f3,$5e
DC.B $02,$b1,$12,$90,$22,$f3,$32,$d2
DC.B $42,$35,$52,$14,$62,$77,$72,$56
DC.B $b5,$ea,$a5,$cb,$95,$a8,$85,$89
DC.B $f5,$6e,$e5,$4f,$d5,$2c,$c5,$0d
DC.B $34,$e2,$24,$c3,$14,$a0,$04,$81
DC.B $74,$66,$64,$47,$54,$24,$44,$05
DC.B $a7,$db,$b7,$fa,$87,$99,$97,$b8
DC.B $e7,$5f,$f7,$7e,$c7,$1d,$d7,$3c
DC.B $26,$d3,$36,$f2,$06,$91,$16,$b0
DC.B $66,$57,$76,$76,$46,$15,$56,$34
DC.B $d9,$4c,$c9,$6d,$f9,$0e,$e9,$2f
DC.B $99,$c8,$89,$e9,$b9,$8a,$a9,$ab
DC.B $58,$44,$48,$65,$78,$06,$68,$27
DC.B $18,$c0,$08,$e1,$38,$82,$28,$a3
DC.B $cb,$7d,$db,$5c,$eb,$3f,$fb,$1e
DC.B $8b,$f9,$9b,$d8,$ab,$bb,$bb,$9a
DC.B $4a,$75,$5a,$54,$6a,$37,$7a,$16
DC.B $0a,$f1,$1a,$d0,$2a,$b3,$3a,$92
DC.B $fd,$2e,$ed,$0f,$dd,$6c,$cd,$4d
DC.B $bd,$aa,$ad,$8b,$9d,$e8,$8d,$c9
DC.B $7c,$26,$6c,$07,$5c,$64,$4c,$45
DC.B $3c,$a2,$2c,$83,$1c,$e0,$0c,$c1
DC.B $ef,$1f,$ff,$3e,$cf,$5d,$df,$7c
DC.B $af,$9b,$bf,$ba,$8f,$d9,$9f,$f8
DC.B $6e,$17,$7e,$36,$4e,$55,$5e,$74
DC.B $2e,$93,$3e,$b2,$0e,$d1,$1e,$f0
;** ###################################################################
;**LED显示段码表
;** ###################################################################
SEG_EVEN:
;abcd fge
DC.B %11110101 ;0 0
DC.B %01100000 ;1 1
DC.B %11010011 ;2 2
DC.B %11110010 ;3 3
DC.B %01100110 ;4 4
DC.B %10110110 ;5 5
DC.B %10110111 ;6 6
DC.B %11100000 ;7 7
DC.B %11110111 ;8 8
DC.B %11110110 ;9 9
DC.B %11100111 ;A A
DC.B %00110111 ;B B
DC.B %10010101 ;C C
DC.B %01110011 ;D D
DC.B %10010111 ;E E
DC.B %10000111 ;F F
DC.B %00000010 ;'-' 10
DC.B %00000000 ;BLACK 11
DC.B %00000010 ;一 12
DC.B %00010010 ;二. 13
DC.B %10010010 ;三. 14
DC.B %11110101 ;O 15
DC.B %11000111 ;P 16
DC.B %01110101 ;U 17
DC.B %11100110 ;Q 18
DC.B %00100011 ;n 19
DC.B %00010101 ;L 1A
DC.B %01100111 ;H 1B
DC.B %00110011 ;0 1C
DC.B %00100000 ;1 1D
DC.B %10000101 ;FD_SR 1E
DC.B %00010111 ;FD_ST 1F
DC.B %01110110 ;FD_Y 20
DC.B %01100000 ;FD_I 21
SEG_ODD:
;bgc afed
DC.B %10101111 ;0 0
DC.B %10100000 ;1 1
DC.B %11001011 ;2 2
DC.B %11101001 ;3 3
DC.B %11100100 ;4 4
DC.B %01101101 ;5 5
DC.B %01101111 ;6 6
DC.B %10101000 ;7 7
DC.B %11101111 ;8 8
DC.B %11101101 ;9 9
DC.B %11101110 ;A A
DC.B %01100111 ;B B
DC.B %00001111 ;C C
DC.B %11100011 ;D D
DC.B %01001111 ;E E
DC.B %01001110 ;F F
DC.B %01000000 ;'-' 10
DC.B %00000000 ;BLACK 11
DC.B %01000000 ;一 12
DC.B %01000001 ;二. 13
DC.B %01001001 ;三. 14
DC.B %10101111 ;O 15
DC.B %11001110 ;P 16
DC.B %10100111 ;U 17
DC.B %11101100 ;Q 18
DC.B %01100010 ;n 19
DC.B %00000111 ;L 1A
DC.B %11100110 ;H 1B
DC.B %01100011 ;0 1C
DC.B %00100000 ;1 1D
DC.B %00001110 ;FD_SR 1E
DC.B %01000111 ;FD_ST 1F
DC.B %11100101 ;FD_Y 20
DC.B %10100000 ;FD_I 21
;** ###################################################################
;**状态标记:UPDATE:升级状态
;** NOTUPDA:非升级状态
;** ###################################################################
ORG $EB80
DC.B UPDATE
;** ###################################################################
;**状态标记:FLASH BLOCK PROTECT REGISTER(FLBPR)
;**#$EC00:**76543210******
;**76543210是对应FLBPR位
;**
;** ###################################################################
;ORG $FFCF
;DC.B %10110000
;** ###################################################################
;***** MOR - Mask Option Register; 0x0000FFD0 ***
;***** Oscillator Select Bit
;** ###################################################################
ORG MOR
DC.B $FF
;** ###################################################################
;** Interrupt vector table
;** ###################################################################
ORG $FFDE ; Interrupt vector table
_vect:
DC.W $EB40 ; Int.no. 0 INT_ADC (at FFDE) Unassigned
DC.W $EB43 ; Int.no. 1 INT_KBI (at FFE0) Unassigned
DC.W isrINT_SCITransmit ; Int.no. 2 INT_SCITransmit (at FFE2) Used
DC.W isrINT_SCIReceive ; Int.no. 3 INT_SCIReceive (at FFE4) Used
DC.W isrINT_SCIError ; Int.no. 4 INT_SCIError (at FFE6) Used
DC.W $EB4F ; Int.no. 5 INT_MMIIC (at FFE8) Unassigned
DC.W $EB52 ; Int.no. 6 Reserved6 (at FFEA) Unassigned
DC.W $EB55 ; Int.no. 7 INT_TIM2Ovr (at FFEC) Unassigned
DC.W $EB58 ; Int.no. 8 INT_TIM2CH1 (at FFEE) Unassigned
DC.W $EB5B ; Int.no. 9 INT_TIM2CH0 (at FFF0) Unassigned
DC.W isrINT_TIM1Ovr ; Int.no. 10 INT_TIM1Ovr (at FFF2) Used
DC.W $EB61 ; Int.no. 11 INT_TIM1CH1 (at FFF4) Unassigned
DC.W $EB64 ; Int.no. 12 INT_TIM1CH0 (at FFF6) Unassigned
DC.W $EB67 ; Int.no. 13 Reserved13 (at FFF8) Unassigned
DC.W $EB6A ; Int.no. 14 INT_IRQ1 (at FFFA) Unassigned
DC.W $EB6D ; Int.no. 15 INT_SWI (at FFFC) Unassigned
DC.W _Startup ; Int.no. 16 INT_RESET (at FFFE) Reset vector
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -