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 + -
显示快捷键?