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

📄 1106.asm

📁 一个完整的制袋机控制系统,包显示程序,步进电机驱动程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
      MOV     DAT1,#018H    ;设定光标位置
      MOV     DAT2,#06H    ;设定光标位置
      MOV     COM, #21H    ;设定光标
      LCALL   PR1
      MOV     COM, #0A1H   ;光标形状设置
      LCALL   PR12 

      MOV     sign_KEY,#04H
      AJMP    examine         ;检查

enter_withdraw:;进入总数光标
      MOV  R2,  sign_LAYER
      CJNE R2,#03H, enter_withdraw_1
      MOV     DAT1,#01AH    ;设定光标位置
      MOV     DAT2,#0AH     ;设定光标位置
      MOV     COM, #21H     ;设定光标
      LCALL   PR1
      MOV     COM, #0A1H    ;光标形状设置
      LCALL   PR12  

      MOV  sign_KEY,#08H
      AJMP examine   
    
enter_withdraw_1:;进入退料光标
     MOV     DAT1,#018H    ;设定光标位置
     MOV     DAT2,#0AH     ;设定光标位置
     MOV     COM, #21H     ;设定光标
     LCALL   PR1
     MOV     COM, #0A1H    ;光标形状设置
     LCALL   PR12  

     MOV  sign_KEY,#08H
     AJMP examine          ;检查
     RET

;---------------------------------------
;增加分配2层(试切)处理
;---------------------------------------

deal_adding_1:   ;周长  
      MOV  R1,sign_KEY  
      CJNE R1,#01H, ADD_11  
      inc  girth
      LCALL LAYER21
      Lcall delay
      AJMP examine_1      ;检查

ADD_11:;速度
      MOV  R1,sign_KEY  
      CJNE R1,#02H, ADD_12
      inc   velocity
add_0:      
      mov a ,velocity
      cjne a,#101,add_1
      mov velocity,#100
add_1:
      LCALL LAYER23
      Lcall delay
      AJMP  examine_1      ;检查

ADD_12:;长度
      MOV  R1,sign_KEY  
      CJNE R1,#04H, ADD_13
      inc  extent
      LCALL LAYER22
      Lcall delay
      AJMP examine_1 ;检查
 
ADD_13:;退料
      MOV  R1,sign_KEY  
      CJNE R1,#08H, ADD_14
      inc  withdraw 
      mov a,withdraw 
      CJNE a,#21, add_03
      mov  withdraw,#20
 add_03:
      LCALL LAYER24
      Lcall delay
      AJMP examine_1 ;检查

ADD_14:
      AJMP   examine
      RET

;----------------------
;增加分配3层(寻标) 处理
;----------------------

deal_adding_2:;photoelectric
      MOV  R1,sign_KEY  

      CJNE R1,#01H, ADD_21  
      MOV  photoelectric ,#11H ;光电
      LCALL LAYER31
      Lcall delay
      AJMP examine_1      ;检查
    
ADD_21:; seek_A
      CJNE R1,#02H, ADD_22
      inc  seek_A
      mov a,seek_A
      CJNE a,#11, add_seek_A
      mov  seek_A,#10
add_seek_A:
      LCALL LAYER33
      Lcall delay
      AJMP examine_1      ;检查

ADD_22:; polarity
      CJNE R1,#04H, ADD_23   
      MOV polarity,#0BH
      LCALL LAYER32
      Lcall delay
      AJMP examine_1 ;检查

ADD_23:;seek_B
      MOV  R1,sign_KEY  
      CJNE R1,#08H, ADD_24
      inc  seek_B
      mov a,seek_B 
      CJNE a,#11, ADD_seek_B
      mov seek_B,#10
ADD_seek_B :
      LCALL LAYER34
      Lcall delay
      AJMP examine_1 ;检查
    
ADD_24:
      AJMP   examine
      RET

;----------------------
;增加分配4层(设定) 处理
;----------------------

 deal_adding_3: ;增加3
      MOV  R1,sign_KEY  
      CJNE R1,#01H, ADD_31  
      inc  alarm
      LCALL LAYER41
      Lcall delay
      AJMP examine_1      ;检查

ADD_31:;速度
      MOV  R1,sign_KEY  
      CJNE R1,#02H, ADD_32
      inc  batch
      LCALL LAYER43
      Lcall delay
      AJMP examine_1      ;检查

ADD_32:;长度
      MOV  R1,sign_KEY  
      CJNE R1,#04H, ADD_33
      inc  postpone
      MOV  A ,postpone
      CJNE a,#21,ADD_postpone
      mov postpone,#20
ADD_postpone:
      LCALL LAYER42
      Lcall delay
      AJMP examine_1 ;检查

ADD_33:;退料
      MOV  R1,sign_KEY  
      CJNE R1,#08H, ADD_34
      inc  total
      LCALL LAYER44
      Lcall delay
      AJMP examine_1 ;检查
     
ADD_34:
      AJMP   examine
      RET

;-------------------------
;减少分配2层(试切)处理
;--------------------------

deal_decrease_1: ;周长 
      MOV  R1,sign_KEY  
      CJNE R1,#01H, dec_11 
      dec   girth
      LCALL LAYER21
      Lcall delay
      AJMP examine_1 ;检查

dec_11:      ;速度
      MOV  R1,sign_KEY  
      CJNE R1,#02H, dec_12          
      dec   velocity
      mov a,velocity
      CJNE a,#49, dec_1 
      mov  velocity,#50
dec_1:
      LCALL LAYER23
      Lcall delay
      AJMP examine_1      ;检查

dec_12: ; 长度
      MOV  R1,sign_KEY  
      CJNE R1,#04H, dec_13
      dec   extent
      LCALL LAYER22
      Lcall delay
      AJMP examine_1      ;检查
dec_13: ;退料
      MOV  R1,sign_KEY  
      CJNE R1,#08H, dec_14
      dec   withdraw 

      mov a,withdraw 
      CJNE a,#0, dec_03
      mov  withdraw,#1
 dec_03:
      LCALL LAYER24
      Lcall delay
      AJMP examine_1 ;检查     

dec_14:
     AJMP   examine
     RET

;---------------------
;减少分配3层(寻标)处理
;---------------------

deal_decrease_2:;photoelectric
      MOV  R1,sign_KEY  

      CJNE R1,#01H, dec_21  
      MOV  photoelectric ,#10H ;光电
      LCALL LAYER31
      Lcall delay
      AJMP examine_1      ;检查
    
dec_21:; seek_A
      CJNE R1,#02H,dec_22
      dec   seek_A
      mov a,seek_A 
      CJNE a,#0, dec_seek_A 
      mov seek_A,#1
 dec_seek_A :
      LCALL LAYER33
      Lcall delay
      AJMP  examine_1      ;检查

dec_22:; polarity
      CJNE R1,#04H, dec_23   
      MOV polarity,#0DH
      LCALL LAYER32
      Lcall delay
      AJMP examine_1 ;检查

dec_23:;seek_B
      MOV  R1,sign_KEY  
      CJNE R1,#08H, dec_24
      dec  seek_B 
      mov a,seek_B 
      CJNE a,#0, dec_seek_B 
      mov seek_B,#1
 dec_seek_B:
      LCALL LAYER34
      Lcall delay
      AJMP examine_1 ;检查
    
dec_24:
      AJMP   examine
      RET

;-----------------------
;减少分配4层(设定) 处理
;-----------------------

deal_decrease_3:
      MOV  R1,sign_KEY  

      CJNE R1,#01H, dec_31  
      DEC    alarm
      LCALL LAYER41
      Lcall delay
      AJMP examine_1      ;检查
    
dec_31:; seek_A
      CJNE R1,#02H,dec_32
      dec   batch
      LCALL LAYER43
      Lcall delay
      AJMP  examine_1      ;检查

dec_32:; postpone
      CJNE R1,#04H, dec_33   
      DEC   postpone
      mov a, postpone
      CJNE a,#0ffH,dec_postpone
      mov postpone,#0
dec_postpone:
      LCALL LAYER42
      Lcall delay
      AJMP examine_1 ;检查

dec_33:;seek_B
      MOV  R1,sign_KEY  
      CJNE R1,#08H, dec_34
      dec   total
      LCALL LAYER44
      Lcall delay
      AJMP examine_1 ;检查    
dec_34:
      AJMP   examine
      RET

;----------------
; 批数,总数,清零
;----------------

to_clear:
        MOV  R2,  sign_LAYER
        CJNE R2,  #03H,  nonexistence
        MOV  R1,  sign_KEY  
        CJNE R1,  #02H, to_clear_1

        mov batch, #01H
        LCALL LAYER43       
to_clear_1:
        CJNE R1,   #08H, nonexistence
        mov total, #00H
	LCALL LAYER44
nonexistence:
        AJMP       examine
	RET

    

;******************************
    ;***主要的汉字显示程序**
;******************************
LAYER1:   ;汉字显示第一层    
          LCALL   CLEAR     ;清RAM	
	  MOV DPTR,#TAB1    ;取表1
          LCALL   PR5       ;写第一层_CGRAM?
	  LCALL   LAYER10   ;显示方园第1层汉字
	    
 	  LCALL   LAYER11   ;显示1233
  	  LCALL   LAYER12   ;显示1223
          RET

        	 
LAYER2:   ;汉字显示第2层
          LCALL CLEAR      ;清RAM
	  MOV DPTR,#TAB2   ;取表2
          LCALL   PR5      ;写第2层_CGRAM?   
          LCALL   LAYER20  ;显示第2层汉字

	  LCALL   LAYER21   ;显示1233
  	  LCALL   LAYER22   ;显示122
	  LCALL   LAYER23   ;显示1233
  	  LCALL   LAYER24   ;显示122
          RET
LAYER3:
	  ;汉字显示第3层
          LCALL CLEAR      ;清RAM
	  MOV DPTR,#TAB2   ;取表2
          LCALL   PR5      ;写第2层_CGRAM? 
	  LCALL LAYER30    ;显示第3层汉字

          LCALL   LAYER31   ;显示1233
  	  LCALL   LAYER32   ;显示122
          LCALL   LAYER33   ;显示1233
  	  LCALL   LAYER34   ;显示122
          RET
        

LAYER4:	  ;汉字显示第4层
           LCALL CLEAR    ;清RAM
	   MOV DPTR,#TAB2 ;取表2
           LCALL   PR5    ;写第2层_CGRAM? 
	   LCALL LAYER40  ;显示第4层汉字

   
           LCALL   LAYER41   ;显示1233
  	   LCALL   LAYER42   ;显示122 
	   LCALL   LAYER43   ;显示1233
  	   LCALL   LAYER44   ;显示122 
           RET
;==================================
;初始化
;*********************************************************
INT:      MOV         DAT1,#00H              ;设置文本显示区域首地址
          MOV         DAT2,#00H
          MOV         COM, #40H
          LCALL       PR1
          MOV         DAT1,#1EH              ;设置文本显示区域宽度
          MOV         DAT2,#00H              ;240/8=30
          MOV         COM, #41H
          LCALL       PR1
          MOV         DAT1,#00H              ;设置图形显示区域首地址
          MOV         DAT2,#02H              ;或为文本属性区域首地址
          MOV         COM, #42H
          LCALL       PR1
          MOV         DAT1,#1EH              ;设置图形显示区域宽度
          MOV         DAT2,#00H              ;或为文本属性区域宽度
          MOV         COM, #43H              ;即一行显示所占字节数
          LCALL       PR1

          MOV         DAT1,#0  
          MOV         DAT2,#0    
          MOV         COM, #21H      
          LCALL       PR1

          MOV         COM, #0A1H             ;光标形状设置
          LCALL       PR12
          MOV         COM, #80H              ;显示方式设置,逻辑"或"合成
          LCALL       PR12
          MOV         COM, #9FH              ;显示开关设置,光标显示开,光标闪烁开
          LCALL       PR12
          RET
;================================================
;清RAM子程序 
;************************************************
CLEAR:    MOV       DAT1,#00H            ;设置显示RAM首地址
          MOV       DAT2,#00H
          MOV       COM,#24H
          LCALL     PR1
          MOV       R3,#1EH               ;设置循环量
          MOV       R4,#16H
          MOV       COM,#0B0H             ;设置自动写方式
          LCALL     PR12
CLEAR1:   LCALL     ST3                   ;判状态位S2
          MOV       A,#00H                ;RAM清空
          LCALL     PR13                  ;写入数据
          DJNZ      R3,CLEAR1             ;循环
          DJNZ      R4,CLEAR1             ;YINGGAI SHI 显示区内数据全清零,使不显示
          MOV       COM,#0B2H             ;设置自动写结束
          LCALL     PR12
	  RET
;======================================================
;RD写_CGRAM 子程序 
;******************************************************
PR5:  MOV DAT1,#03H  ;03   
      MOV DAT2,#00H
      MOV COM,#22H        ;偏置寄存器设置 
      LCALL  PR1
 
      MOV DAT1,#00H       ;CGRAM地址
      MOV DAT2,#1CH;1c
      MOV COM, #24H
      LCALL PR1

      MOV COM ,#0B0H      ;设置自动写方式
      LCALL  PR12

      MOV  R1 ,#0FFH
      MOV  R2 ,#4H
      
PR51: LCALL  ST3          ;判ACC.3
      MOV  A,#00          ;清A
      MOVC A,@A+DPTR
      LCALL  PR13   
      INC  DPTR
      DJNZ R1,PR51        ;写汉字32*16=
      DJNZ R2,PR51
      MOV   COM ,#0B2H    ;设置自动写结束指令
      LCALL PR12
      RET
;*********************************************************
;显示第一层 汉字显示 子程序
;=========================================================
;光标形状设置
LAYER10: 
     MOV     DAT1,#00H    ;设定光标位置
     MOV     DAT2,#00H    ;设定光标位置
     MOV     COM, #21H    ;设定光标

⌨️ 快捷键说明

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