ga600b.asm
来自「用于DSP中FLASH的擦除和编写程序」· 汇编 代码 · 共 2,997 行 · 第 1/5 页
ASM
2,997 行
lds r25,ir_rdw
cpi r25,2
brsh tim2_ovf21
rjmp tim2_ovf29
tim2_ovf21:
cpi r25,15
brsh tim2_ovf22
lds r25,mrr_f1
inc r25
sts mrr_f1,r25
rjmp tim2_ovf29
tim2_ovf22:
cpi r25,29
brsh tim2_ovf23
lds r25,mrr_f2
inc r25
sts mrr_f2,r25
rjmp tim2_ovf29
tim2_ovf23:
cpi r25,43
brsh tim2_ovf24
lds r25,mrr_f3
inc r25
sts mrr_f3,r25
rjmp tim2_ovf29
tim2_ovf24:
cpi r25,57
brsh tim2_ovf25
lds r25,mrr_f4
inc r25
sts mrr_f4,r25
rjmp tim2_ovf29
tim2_ovf25:
tim2_ovf29:
nop
;- - - - - -
tim2_ovf30:
sbis pine,7
rjmp tim2_ovf39
lds r25,mtd
inc r25
sts mtd,r25
lds r25,ir_aw
cpi r25,2
brsh tim2_ovf31
rjmp tim2_ovf39
tim2_ovf31:
cpi r25,15
brsh tim2_ovf32
lds r25,mtd_f1
inc r25
sts mtd_f1,r25
rjmp tim2_ovf39
tim2_ovf32:
cpi r25,29
brsh tim2_ovf33
lds r25,mtd_f2
inc r25
sts mtd_f2,r25
rjmp tim2_ovf39
tim2_ovf33:
cpi r25,43
brsh tim2_ovf34
lds r25,mtd_f3
inc r25
sts mtd_f3,r25
rjmp tim2_ovf39
tim2_ovf34:
cpi r25,57
brsh tim2_ovf35
lds r25,mtd_f4
inc r25
sts mtd_f4,r25
rjmp tim2_ovf39
tim2_ovf35:
tim2_ovf39:
nop
call mgser
tim2_ovf40:
lds r25,mrtmp
sbrs r25,4
rjmp tim2_ovf49
lds r25,mrr1
inc r25
sts mrr1,r25
lds r25,ir_rcw
cpi r25,2
brsh tim2_ovf41
rjmp tim2_ovf49
tim2_ovf41:
cpi r25,15
brsh tim2_ovf42
lds r25,mrr1_f1
inc r25
sts mrr1_f1,r25
rjmp tim2_ovf49
tim2_ovf42:
cpi r25,29
brsh tim2_ovf43
lds r25,mrr1_f2
inc r25
sts mrr1_f2,r25
rjmp tim2_ovf49
tim2_ovf43:
cpi r25,43
brsh tim2_ovf44
lds r25,mrr1_f3
inc r25
sts mrr1_f3,r25
rjmp tim2_ovf49
tim2_ovf44:
cpi r25,57
brsh tim2_ovf45
lds r25,mrr1_f4
inc r25
sts mrr1_f4,r25
rjmp tim2_ovf49
tim2_ovf45:
nop
tim2_ovf49:
;- - - - - -
tim2_ovf50:
lds r25,mrtmp
sbrs r25,5
rjmp tim2_ovf59
lds r25,mrr2
inc r25
sts mrr2,r25
lds r25,ir_rcw
cpi r25,2
brsh tim2_ovf51
rjmp tim2_ovf59
tim2_ovf51:
cpi r25,15
brsh tim2_ovf52
lds r25,mrr2_f1
inc r25
sts mrr2_f1,r25
rjmp tim2_ovf59
tim2_ovf52:
cpi r25,29
brsh tim2_ovf53
lds r25,mrr2_f2
inc r25
sts mrr2_f2,r25
rjmp tim2_ovf59
tim2_ovf53:
cpi r25,43
brsh tim2_ovf54
lds r25,mrr2_f3
inc r25
sts mrr2_f3,r25
rjmp tim2_ovf59
tim2_ovf54:
cpi r25,57
brsh tim2_ovf55
lds r25,mrr2_f4
inc r25
sts mrr2_f4,r25
rjmp tim2_ovf59
tim2_ovf55:
nop
tim2_ovf59:
;- - - -
tim2_ovf60:
lds r25,mrtmp
sbrs r25,3
rjmp tim2_ovf69
lds r25,mrl2
inc r25
sts mrl2,r25
lds r25,ir_lcw
cpi r25,2
brsh tim2_ovf61
rjmp tim2_ovf69
tim2_ovf61:
cpi r25,15
brsh tim2_ovf62
lds r25,mrl2_f1
inc r25
sts mrl2_f1,r25
rjmp tim2_ovf69
tim2_ovf62:
cpi r25,29
brsh tim2_ovf63
lds r25,mrl2_f2
inc r25
sts mrl2_f2,r25
rjmp tim2_ovf69
tim2_ovf63:
cpi r25,43
brsh tim2_ovf64
lds r25,mrl2_f3
inc r25
sts mrl2_f3,r25
rjmp tim2_ovf69
tim2_ovf64:
cpi r25,57
brsh tim2_ovf65
lds r25,mrl2_f4
inc r25
sts mrl2_f4,r25
rjmp tim2_ovf69
tim2_ovf65:
nop
tim2_ovf69:
;- - - - -
tim2_ovf70:
lds r25,mrtmp
sbrs r25,2
rjmp tim2_ovf79
lds r25,mrl1
inc r25
sts mrl1,r25
lds r25,ir_lcw
cpi r25,2
brsh tim2_ovf71
rjmp tim2_ovf79
tim2_ovf71:
cpi r25,15
brsh tim2_ovf72
lds r25,mrl1_f1
inc r25
sts mrl1_f1,r25
rjmp tim2_ovf79
tim2_ovf72:
cpi r25,29
brsh tim2_ovf73
lds r25,mrl1_f2
inc r25
sts mrl1_f2,r25
rjmp tim2_ovf79
tim2_ovf73:
cpi r25,43
brsh tim2_ovf74
lds r25,mrl1_f3
inc r25
sts mrl1_f3,r25
rjmp tim2_ovf79
tim2_ovf74:
cpi r25,57
brsh tim2_ovf75
lds r25,mrl1_f4
inc r25
sts mrl1_f4,r25
rjmp tim2_ovf79
tim2_ovf75:
nop
tim2_ovf79:
;- - - - - -
out sreg,r24
pop r16
reti
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tim1_capt: ; timer1 capture isr mtb
in r24,sreg
lds r25,mtb
inc r25
sts mtb,r25
lds r25,ir_aw
cpi r25,2
brsh tim1_capt31
rjmp tim1_capt39
tim1_capt31:
cpi r25,15
brsh tim1_capt32
lds r25,mtb_f1
inc r25
sts mtb_f1,r25
rjmp tim1_capt39
tim1_capt32:
cpi r25,29
brsh tim1_capt33
lds r25,mtb_f2
inc r25
sts mtb_f2,r25
rjmp tim1_capt39
tim1_capt33:
cpi r25,43
brsh tim1_capt34
lds r25,mtb_f3
inc r25
sts mtb_f3,r25
rjmp tim1_capt39
tim1_capt34:
cpi r25,57
brsh tim1_capt35
lds r25,mtb_f4
inc r25
sts mtb_f4,r25
rjmp tim1_capt39
tim1_capt35:
tim1_capt39:
out sreg,r24
reti
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tim1_compa: nop ; timer1 comparea isr
reti
tim1_compb: nop ; timer1 compareb isr
reti
tim1_ovf: nop ; timer1 overflow isr
reti
tim0_comp: nop ; timer0 compare isr
reti
;- - - - - - - - - - - - - - - - - - - - - - - - - - -
tim0_ovf: ; timer0 overflow isr
in r24,sreg
ldi r25,140
out tcnt0,r25
set
bld flag0,0
out sreg,r24
reti
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
spi_stc: nop ; spi transfer complete isr
reti
usart0_rxc: nop ; usart0 rx complete isr
reti
usart0_dre: nop ; usart0,udr empty isr
reti
usart0_txc: nop ; usart0 tx complete isr
reti
adc_cc: nop ; adc conversion complete isr
reti
ee_rdy: nop ; eeprom ready isr
reti
ana_comp: nop ; analog comparator isr
reti
tim1_compc: nop ; timer1 comparec isr
reti
tim3_capt: nop ; timer3 capture isr
reti
tim3_compa: nop ; timer3 comparea isr
reti
tim3_compb: nop ; timer3 compareb isr
reti
tim3_compc: nop ; timer3 comparec isr
reti
usart1_rxc: nop ; usart1 rx complete isr
reti
usart1_dre: nop ; usart1,udr empty isr
reti
usart1_txc: nop ; usart1 tx complete isr
reti
twi: nop ; two-wire serial interface interrupt isr
reti
spm_rdy: nop ; spm ready isr
reti
tim3_ovf: ; timer3 overflow isr
reti
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
start:
call rstmem
call lcdbl_on
call lcd_rst
ldi r16,150
call delay
call lcdinit
call viicinit
call u0init
call clrdi
; initial
call adc_init
call openhpc
call openirc
call tlc1543_init
call tm_init
call ex_init
call clrmem
;var
ldi r16,0b00000001
mov flag6,r16
ldi r16,0
sts detect,r16
sts d_c,r16
call exdisclr
ldi r22,low(888)
ldi r23,high(888)
reseta1:
call exdisinc
subi r22,1
sbci r23,0
brne reseta1
ldi r16,3
call r8563b
andi r17,0b01111111
sts ontm_m,r16
ldi r16,4
call r8563b
andi r17,0b00111111
sts ontm_h,r16
clt
bld flag0,3
jmp start10
loop20:
ldi r16,0
sts timl,r16
sts timh,r16
ldi zl,low(tabc20*2)
ldi zh,high(tabc20*2)
ldi r21,2
ldi r22,4
ldi r23,12
call dispcs
ldi zl,low(tabe20*2)
ldi zh,high(tabe20*2)
ldi r21,5
ldi r22,16
ldi r23,16
call dispes
ldi zl,low(tabe21*2)
ldi zh,high(tabe21*2)
ldi r21,5
ldi r22,2
ldi r23,10
call dispes
loop21:
ldi r16,2
call r8563b
andi r17,0b01111111
sts dts,r17
ldi r16,3
call r8563b
andi r17,0b01111111
sts dti,r17
ldi r16,4
call r8563b
andi r17,0b00111111
sts dth,r17
ldi r16,5
call r8563b
andi r17,0b00111111
sts dtd,r17
ldi r16,7
call r8563b
andi r17,0b00011111
sts dtm,r17
ldi r16,8
call r8563b
andi r17,0b11111111
sts dty,r17
lds r16,dti
andi r16,0x0f
sts dbuf2,r16
lds r16,dti
swap r16
andi r16,0x0f
sts dbuf1,r16
ldi zl,low(dbuf1)
ldi zh,high(dbuf1)
ldi r21,5
ldi r22,30
ldi r23,2
call dispres
lds r16,dth
andi r16,0x0f
sts dbuf2,r16
lds r16,dth
swap r16
andi r16,0x0f
sts dbuf1,r16
ldi zl,low(dbuf1)
ldi zh,high(dbuf1)
ldi r21,5
ldi r22,27
ldi r23,2
call dispres
lds r16,dtd
andi r16,0x0f
sts dbuf2,r16
lds r16,dtd
swap r16
andi r16,0x0f
sts dbuf1,r16
ldi zl,low(dbuf1)
ldi zh,high(dbuf1)
ldi r21,5
ldi r22,24
ldi r23,2
call dispres
lds r16,dtm
andi r16,0x0f
sts dbuf2,r16
lds r16,dtm
swap r16
andi r16,0x0f
sts dbuf1,r16
ldi zl,low(dbuf1)
ldi zh,high(dbuf1)
ldi r21,5
ldi r22,21
ldi r23,2
call dispres
lds r16,dty
andi r16,0xf
sts dbuf2,r16
lds r16,dty
swap r16
andi r16,0x0f
sts dbuf1,r16
ldi zl,low(dbuf1)
ldi zh,high(dbuf1)
ldi r21,5
ldi r22,18
ldi r23,2
call dispres
;loop22:
; brclr sci0sr1,mbit5,loop23
; call scipro
loop23:
call cmpoff
cpi r16,1
brne loop24
nop
call koff
loop24:
call key
lds r16,keyv
cpi r16,0
breq loop25
set
bld flag0,2
jmp main20
loop25:
call hop
brts loop26
jmp loop21
loop26:
jmp start35
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?