⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.asm

📁 永磁同步电机驱动控制
💻 ASM
📖 第 1 页 / 共 2 页
字号:
PEDATDIR      .SET    7095H  
led1    .set    6000h
led2    .set    8000h
led3    .set    0a000h 

        
        .bss  	confirm,1
        .bss  	key_read_time,1
        .bss  	key_temp,1
        .bss  	point_flag,1
        .bss  	led_pos,1
        .bss  	pos,1
        .bss  	flash_num,1    
        .bss  	show_num,1
        .bss  	flash_code,1  
        .bss  	led_send_flag,1
        .bss  	temp_high,1
        .bss  	temp_low,1
        .bss  	buffer,1
        .bss  	led_data,1
        .bss  	set_data,1   
        .bss  	count_value,1  
        .bss  	count_value2,1
        
        .bss  	led01,1
        .bss  	led02,1
        .bss  	led03,1
        .bss  	led04,1
        .bss  	led05,1
        .bss  	led06,1
        
        .bss  	ledcode01,1
        .bss  	ledcode02,1
        .bss  	ledcode03,1
        .bss  	ledcode04,1
        .bss  	ledcode05,1
        .bss  	ledcode06,1
        
        .bss  	ledcodeflash01,1
        .bss  	ledcodeflash02,1
        .bss  	ledcodeflash03,1
        .bss  	ledcodeflash04,1
        .bss  	ledcodeflash05,1
        .bss  	ledcodeflash06,1
        
        .bss  	Temp1,1 
        
        .bss    neg_flag,1
        .bss    neg_flag_1,1
        
        .def _led_show
        .global _led_show


;===========================================================
;键盘程序
;===========================================================
;===========================================================
;读键盘,E1=MODE;E2=SHIFT;E3=+,E4=-,E5=SET
;=========================================================== 
key_read:
     setc   SXM
     ldpk   key_read_time
     lacc   key_read_time
     add    #1
     sacl   key_read_time
     sub    #200
     bnz    ret_key
READKEY:
		LDP 	#PEDATDIR>>7
		LACC	PEDATDIR   
    and   #003Eh
    ldpk  key_temp
    sacl  key_temp
    sub   #03Eh
    bnz   have_key  
    call   getcode     
    splk  #0,key_read_time 
	b     ret_key


have_key: 
		  
    splk  #-4000,key_read_time      ;每个按键需要处理时间200ms,在这200ms内不相应其他键值
		lacc  key_temp
		and   #002h
		bz    key_s1                    ;模式键
		
    lacc  key_temp
		and   #04h
		bz    key_s2                    ;移位键    
		
    lacc  key_temp
		and   #08h
		bz    key_s3                    ;+键 
    lacc  key_temp
		and   #010h
		bz    key_s4                    ;+键 
	
    lacc  key_temp
		and   #020h
		bz    key_s5                    ;确定键
  
    b    ret_key
		
	
ret_key:
	ret		 
	

;===========================================================
;键处理程序
;===========================================================
;================
;mode key
;================ 
key_s1: 
    
		lacc   confirm   	
		add    #10h
		sacl   confirm
		sub    #30h
		bnz    led_mode_select
    splk  #0,confirm	
led_mode_select:
    lacc  confirm
    bz    start_state
    sub   #10h
    bz    mode_show
    sub   #10h
    bz    mode_set
    splk  #0,confirm
    b     led_mode_select
start_state:
    splk #0,point_flag
    splk #0,led_pos
    splk  #19h,   led01         ;p
        splk  #0fh,  led02         ;S
        splk  #018h,   led03        ;d  
        splk  #01ah,  led04         ;_
        splk  #0Ch,   led05          ;H
        splk  #017h,  led06         ;T
    b     ret_key
mode_show:
    splk #0,point_flag
    splk #1,led_pos
    splk #0ah,led01          ;_
    splk #0ah,led02    	     ;show__;_
    splk #11h,led03          ;0
    splk #11h,led04          ;0
    splk #0ch,led05          ;H 
    splk #0fh,led06          ;S
    b    ret_key
mode_set:
    splk #0,point_flag
    splk #1,led_pos
    splk #0ah,led01          ;_
    splk #0ah,led02    	     ;_
    splk #011h,led03          ;set__;0
    splk #017h,led04          ;T
    splk #0bh,led05          ;E
    splk #0fh,led06          ;S
    b    ret_key          

;====================
;+ key
;====================
key_s3:
		lacc  confirm
		bz    ret_key
		sub   #11h
		bz    ret_key
		lacc  led_pos         ;led_pos=1 =low bit
		sub   #1
		bz    led01_add
		sub    #1
		bz    led02_add
		sub    #1
		bz    led03_add
		sub    #1
		bz    led04_add
		sub    #1
		bz    led05_add
		sub    #1
		bz    led06_add
    splk  #1h,led_pos
    b     ret_key
    
led01_add:  
    lacc  led01
    add   #1
    sacl  led01
    sub   #0ah
    blz   ret_key
    splk  #0,led01
    b     ret_key  
led02_add:  
    lacc  led02
    add   #1
    sacl  led02
    sub   #0ah
    blz   ret_key
    splk  #0,led02
    b     ret_key 
led03_add:  
    lacc  led03
    add   #1
    sacl  led03
    sub   #0ah
    blz   ret_key
    splk  #0,led03
    b     ret_key 
led04_add:  
    lacc  led04
    add   #1
    sacl  led04
    sub   #0ah
    blz   ret_key
    splk  #0,led04
    b     ret_key 
led05_add:  
    lacc  led05
    add   #1
    sacl  led05
    sub   #0ah
    blz   ret_key
    splk  #0,led05
    b     ret_key 
led06_add:  
    lacc  led06
    sub   #17
    bz    aabb
    splk  #17,led06
    b  ret_key
aabb:
    splk  #20,led06
    b     ret_key 
;====================
;- key
;====================
key_s4:
		lacc  confirm
		bz    ret_key
		sub   #11h
		bz    ret_key
		lacc  led_pos         ;led_pos=1 =low bit
		sub   #1
		bz    led01_add_1
		sub    #1
		bz    led02_add_1
		sub    #1
		bz    led03_add_1
		sub    #1
		bz    led04_add_1
		sub    #1
		bz    led05_add_1
		sub    #1
		bz    led06_add_1
    splk  #1h,led_pos
    b     ret_key
    
led01_add_1:  
    lacc  led01
    SUB   #1
    sacl  led01
    bgez   ret_key
    splk  #9,led01
    b     ret_key  
led02_add_1:  
    lacc  led02
    SUB   #1
    sacl  led02
    bgez   ret_key
    splk  #9,led02
    b     ret_key 
led03_add_1:  
    lacc  led03
    SUB   #1
    sacl  led03
    bgez   ret_key
    splk  #9,led03
    b     ret_key 
led04_add_1:  
    lacc  led04
    SUB   #1
    sacl  led04
    bgez   ret_key
    splk  #9,led04
    b     ret_key 
led05_add_1:  
    lacc  led05
    SUB   #1
    sacl  led05
    bgez   ret_key
    splk  #9,led05
    b     ret_key 
led06_add_1:  
    lacc  led06
    sub   #17
    bz    efgh
    splk  #17,led06
    b  ret_key
efgh:
    splk  #20,led06
    b     ret_key 


;=======================
;shift key
;=======================
key_s2:		 
		lacc  confirm
		bz    ret_key
		sub   #11h
		bz    ret_key
		lacc  confirm
		sub   #21h
		bz    shift_all
shift_two:
    lacc  led_pos
    add   #1
    sacl  led_pos
    sub   #3
    blz   ret_key
    splk  #1,led_pos
    b     ret_key
shift_all:
    lacc  led_pos
    add   #1
    sacl  led_pos
    sub   #7
    blz   ret_key
    splk  #1,led_pos
    b     ret_key
;==========================
;set key
;==========================
key_s5:
    lacc   confirm
    bz     ret_key
    sub    #10h
    bz     show_mode
    lacc   confirm
    sub    #11h
    bz     ret_key
    lacc   confirm
    sub    #20h
    bz     set_mode
    lacc   confirm
    sub    #21h
    bz     set_value
    b      ret_key
;=========================
;show_mode
;=========================
show_mode:
    lacc   led01
    add    led02,3
    add    led02,1
    sacl   led_data
    ;call   value_show 
    splk   #0,led_pos
    splk   #11h,confirm
    b      ret_key   
    
value_show:  
    lacc   show_num
    add    #1
    sacl   show_num
    sub    #0400H
    bgz    show_value
    ret
show_value:
    splk   #1,show_num 
    lacc   confirm
    sub    #11h
    bz    show_value_on
    ret
show_value_on:
    lacc   led_data
    sub    #1
    bz     value_no1_show
    sub    #1
    bz     value_no2_show 
    sub    #1
    bz     value_no3_show 
    sub    #1
    bz     value_no4_show 
    sub    #1
    bz     value_no5_show
    sub    #1
    bz     value_no6_show
    ret
    
value_no1_show:  
    ldpk  _current_uqref
    lacc  _current_uqref
    bgez   value_no1_aa
    ldpk   neg_flag_1
    splk   #1,neg_flag_1
    b      value_no1_bb
value_no1_aa:
    ldpk   neg_flag_1
    splk   #0,neg_flag_1
value_no1_bb:    
    ldpk   _current_uqref
    lacc   _current_uqref
    abs
    ldpk   buffer
    sacl   buffer
    call   chd
    ret
    
value_no2_show:  
    ldpk  _isq
    lacc  _isq
    bgez   value_no2_aa
    ldpk   neg_flag_1
    splk   #1,neg_flag_1
    b      value_no2_bb
value_no2_aa:
    ldpk   neg_flag_1
    splk   #0,neg_flag_1
value_no2_bb:    
    ldpk   _isq
    lacc   _isq
    abs
    ldpk   buffer
    sacl   buffer
    call   chd
    ret
    
value_no3_show:  

⌨️ 快捷键说明

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