ga600b.asm

来自「用于DSP中FLASH的擦除和编写程序」· 汇编 代码 · 共 2,997 行 · 第 1/5 页

ASM
2,997
字号
;- - - - -  - - - - - - -  -
start35:
              ldi r16,0
              sts timl,r16
              sts timh,r16
              bst flag6,7
              brts start37
              call dispm
              call dusdnote
              jmp main00
start37:
              call displ

;- - -  - - -  - - - - - - -
main00:
               call hop

			   brts mian01
               jmp main19
mian01:
               call openirc
			   ldi r16,0x20
			   call delay

			   ldi r16,0x20
			   call delay
			   ldi r16,0x50
			   call delay

               call clrmem 

               sbic pinf,2
			   rjmp main03 
               nop
               sbic pinf,2
			   rjmp main03 


               sbic pinf,2
               rjmp mian02
               nop
               sbic pinf,2
               rjmp mian02
               set                    ;首幅
			   bld flag1,7 
               ldi r16,0
  			   sts note,r16
			   sts notev,r16
mian02:
               call exdisclr

              bst flag6,2
			  brts main02c
              bst flag6,7
			  brts main02c

              lds r16,countl
			  lds r17,counth
			  cpi r16,0
              brne main02b 
			  cpi r17,0
              brne main02b 

              ldi zl,low(tabsp*2)
			  ldi zh,high(tabsp*2) 
              ldi r21,2
              ldi r22,18
              ldi r23,3
              call dispcs

              rjmp main02c
main02b:

              ldi r21,2
              ldi r22,18
              call disp3db 

main02c:

               clr r16
			   sts countl,r16          
			   sts counth,r16

			   sts countsl,r16          
			   sts countsh,r16
               sts errcnt,r16

main03:
               clt
			   bld flag7,0
			   bld flag7,1
			   bld flag7,2
			   bld flag7,3
 			   bld flag7,4
               bld flag7,5

               bst flag6,7
			   brts main05

               bst flag6,4
			   brts main05

               sbis pinf,2
			   call clrcs 

main05:
               ldi r16,0            
               sts sx,r16
			   ldi r16,250
			   sts dltmp,r16

               sei
               bst flag0,4 
               brts main06
               call opend
main06:
              clt 
			  bld flag0,0 
main07:       
              bst flag0,0
              brts main08

			  sbic pinf,1
			  rjmp main07a
			  sbic pinf,0
			  rjmp main07a

;              call uirad
;			  sbrc flag3,2
;			  rjmp main07a
;			  sbrc flag3,6
;			  rjmp main07a


              rjmp  main07       
main07a:   
              rjmp main09   
;- - - - - - - - - - - - - - - - - - - - - - -
main08:
               lds r16,sx
			   inc r16
			   sts sx,r16

               cpi r16,30
			   brne main08a 

               lds r16,countl
			   lds r17,counth
               clr r18
			   clr r19 
			   cp  r16,r18
			   cpc r17,r19
			   breq main08a
   
               call dispcnt
main08a:

               lds r16,dltmp
			   dec r16
			   sts dltmp,r16
			   brne main06


               call hop
			   brtc  main08g
               rjmp main05
main08g:    
                bst flag6,7
				brts main08h

               call dispbiz
;			   call dispcnt
			   call dispjin 
main08h:
               call closed
;               call closeirc

               clt
			   bld flag7,0
			   bld flag7,1
			   bld flag7,2
			   bld flag7,3
 			   bld flag7,4
               bld flag7,5

               rjmp main00
;- - - - - - - - - - - - - - - - - - - - 
main09:

			  ldi r16,0
			  sts twide,r16

			  sts excnt,r16
			  sts t2cnt,r16
              
			  sts mrl,r16
			  sts mrr,r16
			  sts mrl1,r16
			  sts mrl2,r16
			  sts mrr1,r16
			  sts mrr2,r16  
			  sts flv,r16  

			  sts mtb,r16  
			  sts mtd,r16  
              sts wdadcnt,r16

              ldi r16,0
			  sts ir_aw,r16
			  sts ir_bw,r16
			  sts ir_cw,r16
			  sts ir_dw,r16

			  sts ir_ap,r16
			  sts ir_bp,r16
			  sts ir_cp,r16
			  sts ir_dp,r16

			  sts ir_law,r16
			  sts ir_lbw,r16
			  sts ir_lcw,r16
			  sts ir_ldw,r16

			  sts ir_raw,r16
			  sts ir_rbw,r16
			  sts ir_rcw,r16
			  sts ir_rdw,r16


              clt
			  bld flag2,3                
			  bld flag2,2                
			  bld flag2,1                
			  bld flag2,0                

              call inton
main10:
              bst flag1,3
              brts main11




               lds r16,twide;
			   cpi r16,250
			   brlo main10a
               rjmp main08

main10a:
              rjmp main10  
main11:
              clt  
	          bld flag1,3
			  lds r16,wdadcnt
			  inc r16
			  sts wdadcnt,r16
main12:
              call irad     
;- - - - - -
main14:
              sbrc flag2,0               
              rjmp main14b

              sbrc flag3,0
              rjmp main14a
              sbrc flag3,4
              rjmp  main14a
		      rjmp main14u   	   
main14a:			             
              ldi r16,1
			  sts ir_aw,r16

			  set
			  bld flag2,0 

              clt
			  bld flag2,4

              ldi r16,0

			  sts ir_la_suml,r16
			  sts ir_la_sumh,r16   
			  sts ir_ra_suml,r16
			  sts ir_ra_sumh,r16   

              sts mtb,r16
			  sts mtd,r16  

 
 			  sts mtd_f1,r16  
			  sts mtd_f2,r16  
			  sts mtd_f3,r16  
			  sts mtd_f4,r16  
               

 			  sts mtb_f1,r16  
			  sts mtb_f2,r16  
			  sts mtb_f3,r16  
			  sts mtb_f4,r16  



              rjmp main14v
main14b:			             
              sbrc flag3,0
              rjmp main14c
              sbrc flag3,4
              rjmp  main14c
		      rjmp main14w   	   
main14c:			             
              lds r16,ir_aw
			  inc r16
			  sts ir_aw,r16

              sbrs flag3,0
              rjmp main14d
              lds r16,ir_law
			  inc r16
			  sts ir_law,r16
main14d:			             
              sbrs flag3,4
              rjmp  main14e
              lds r16,ir_raw
			  inc r16
			  sts ir_raw,r16
main14e:			             
              sbrc flag2,4
              rjmp  main14g

              sbrs flag3,0
              rjmp main14f
              sbrs flag3,4
              rjmp  main14f
              set 
              bld flag2,4
			  lds r16,ir_aw
			  sts ir_ap,r16 

main14f:
              nop
main14g:      
	          rjmp main14v

main14u:
              rjmp main15
main14v:
              ldi xl,low(ir_la)
			  ldi xh,high(ir_la)
			  lds r16,ir_law
			  clr r17
			  add xl,r16
			  adc xh,r17
			  lds r16,ad3v
			  st x,r16   

              cpi r16,200
			  brsh main14v1
               
              lds r16,ir_la_suml
			  lds r17,ir_la_sumh
			  lds r18,ad3v
			  clr r19
			  add r16,r18
			  adc r17,r19
			  sts ir_la_suml,r16
              sts ir_la_sumh,r17
main14v1:
              ldi xl,low(ir_ra) 
			  ldi xh,high(ir_ra)
			  lds r16,ir_raw
			  clr r17
			  add xl,r16
			  adc xh,r17
			  lds r16,ad4v
			  st x,r16 
			  
              cpi r16,200
			  brsh main14v2
               
              lds r16,ir_ra_suml
			  lds r17,ir_ra_sumh
			  lds r18,ad4v
			  clr r19
			  add r16,r18
			  adc r17,r19
			  sts ir_ra_suml,r16
              sts ir_ra_sumh,r17
main14v2:
              rjmp main15
main14w:
              lds r16,ir_a_cnt
			  inc r16
			  sts ir_a_cnt,r16
                                      ;
              rjmp main15

;- - - - - -
main15:
              sbrc flag2,1               
              rjmp main15b
              sbrc flag3,1
              rjmp main15a
              sbrc flag3,5
              rjmp  main15a
		      rjmp main15u   	   
main15a:			             
              ldi r16,1
			  sts ir_bw,r16

			  set
			  bld flag2,1 

              clt
			  bld flag2,5


              ldi r16,0

			  sts ir_lb_suml,r16
			  sts ir_lb_sumh,r16   
			  sts ir_rb_suml,r16
			  sts ir_rb_sumh,r16   

              rjmp main15v
main15b:			             
              sbrc flag3,1
              rjmp main15c
              sbrc flag3,5
              rjmp  main15c
		      rjmp main15w   	   
main15c:			             
              lds r16,ir_bw
			  inc r16
			  sts ir_bw,r16

              sbrs flag3,1
              rjmp main15d
              lds r16,ir_lbw
			  inc r16
			  sts ir_lbw,r16
main15d:			             
              sbrs flag3,5
              rjmp  main15e
              lds r16,ir_rbw
			  inc r16
			  sts ir_rbw,r16
main15e:			             
              sbrc flag2,5
              rjmp  main15g

              sbrs flag3,1
              rjmp main15f
              sbrs flag3,5
              rjmp  main15f
              set 
              bld flag2,5
			  lds r16,ir_bw
			  sts ir_bp,r16 
main15f:
              nop 
main15g:
	          rjmp main15v

main15u:
              rjmp main16

main15v:
              ldi xl,low(ir_lb)
			  ldi xh,high(ir_lb)
			  lds r16,ir_lbw
			  clr r17
			  add xl,r16
			  adc xh,r17
			  lds r16,ad2v
			  st x,r16   

              cpi r16,200
			  brsh main15v1
               
              lds r16,ir_lb_suml
			  lds r17,ir_lb_sumh
			  lds r18,ad2v
			  clr r19
			  add r16,r18
			  adc r17,r19
			  sts ir_lb_suml,r16
              sts ir_lb_sumh,r17
main15v1:
              ldi xl,low(ir_rb) 
			  ldi xh,high(ir_rb)
			  lds r16,ir_rbw
			  clr r17
			  add xl,r16
			  adc xh,r17
			  lds r16,ad5v
			  st x,r16   

              cpi r16,200
			  brsh main15v2
               
              lds r16,ir_rb_suml
			  lds r17,ir_rb_sumh
			  lds r18,ad5v
			  clr r19
			  add r16,r18
			  adc r17,r19
			  sts ir_rb_suml,r16
              sts ir_rb_sumh,r17
main15v2:
              ldi xl,low(fl_a) 
			  ldi xh,high(fl_a)
			  lds r16,ir_bw
			  clr r17
			  add xl,r16
			  adc xh,r17
			  lds r16,ad8v
			  st x,r16   

              cpi r16,60
			  brlo main15v3
              lds r16,flv
              inc r16
			  sts flv,r16
main15v3:
              rjmp main16

main15w:
              lds r16,ir_b_cnt
			  inc r16
			  sts ir_b_cnt,r16
                                   ;
              rjmp main16

;- - - - - -
main16:
              sbrc flag2,3               
              rjmp main16b
              sbrc flag3,3
              rjmp main16a
              sbrc flag3,7
              rjmp  main16a
		      rjmp main16u   	   
main16a:			             

    

              ldi r16,1
			  sts ir_dw,r16

			  set
			  bld flag2,3 

              clt
			  bld flag2,7

              ldi  r16,0
			  sts t2cnt,r16

              ldi r16,0

			  sts ir_ld_suml,r16
			  sts ir_ld_sumh,r16   
			  sts ir_rd_suml,r16
			  sts ir_rd_sumh,r16   

			  sts ir_lc_suml,r16
			  sts ir_lc_sumh,r16   
			  sts ir_rc_suml,r16
			  sts ir_rc_sumh,r16   

              sts mrl,r16
              sts mrr,r16
              sts mrl1,r16
              sts mrl2,r16
              sts mrr1,r16
              sts mrr2,r16

              sts mrl_f1,r16
              sts mrl_f2,r16
              sts mrl_f3,r16
              sts mrl_f4,r16
  
              sts mrr_f1,r16
              sts mrr_f2,r16
              sts mrr_f3,r16
              sts mrr_f4,r16

              sts mrl1_f1,r16
              sts mrl1_f2,r16
              sts mrl1_f3,r16
              sts mrl1_f4,r16
  
              sts mrr1_f1,r16
              sts mrr1_f2,r16
              sts mrr1_f3,r16
              sts mrr1_f4,r16

              sts mrl2_f1,r16
              sts mrl2_f2,r16
              sts mrl2_f3,r16

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?