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

📄 1厂1主控.asm

📁 control the keyboard for workplace
💻 ASM
📖 第 1 页 / 共 2 页
字号:
FASS  BIT    P3.5
DATA1 BIT    P2.5
SLK1  BIT    P2.4
DATA2 BIT    P2.3
SLK2  BIT    P2.2
DATA3 BIT    P2.1
SLK3  BIT    P2.0
CS    BIT P1.6        ;(1)
SCK   BIT P3.2        ;(6)
SI    BIT P2.6        ;(5)
SO    BIT P1.7        ;(2)
;在中断接受中,判断窗口是否大于99,如果小于99,判断是否等于08或者13,不等于的情况下,看除以5,余数是否为0,这样排除不是窗口外的数据。
;海尔电子看板程序,用x5045的01-06存储“开始”(30.31H)“停止”(32.33H)“缺料”(34.35H)“质量异常”(36.37H)“设备故障”(38.39H)“提位呼叫”(3A.3BH)的信息
;程序流程,开始在x5045读取数据,并将16进制数据转换为10进制数据进行显示,并在主程序中进行清狗
;主程序中循环检测光电对射管的信号,无信号超过停止时间时,停止信号加1,(先读取,加1再存取,并显示)
;在串口程序中接受到数据以后,先对相应的问题读取并加1存取,把问题按键的序号在相应的数码管上闪烁显示,1分钟,5秒亮,5秒停,循环10次
;定时器中断:做一个1秒的定时,在定时器中设定标志位,
;用到的地址单元,30-3B显示存储,40-45读取x5045数据,54-5B显示缓存,5C-5F闪烁次数记录50H存取停止时间.51H无通过产品时间
      ORG  0000H
      AJMP MAIN
      ORG 000BH            ;定时器1,用于记录1s时间
      LJMP INNT0
      ORG 0023H
      LJMP TRAX
      ORG 0040H

MAIN: MOV    SP,#60H
      MOV    P1,#00H
;      LCALL  BEEP
      CLR    A
      MOV    R0,#5FH
      LCALL  RST_DOG
CLRROM:MOV   @R0,A
      DJNZ   R0,CLRROM
      LCALL  WRSR
      MOV TMOD,#21H        ;定时器0工作在方式1,基数为10ms
      MOV TH0,#0D8H        ;3CH ;
      MOV TL0,#090H        ;0B0H  ;;"0F0"
      MOV TH1,#0F3H        ;工作在方式一,且SMOD=1时,此时的波特率为4800。
      MOV TL1,#0F3H
      MOV SCON,#0F0H       ;工作方式3,多级通讯格式,SM2 置1只允许接受地址信息
                           ;SM2为“1”时多级通信方式,RB2为地址/数据标志位。
                           ;SM为“0”接受的为数据
      MOV PCON,#80H
      CLR  EA
      SETB ES
      SETB ET0
      SETB TR0
      CLR  ET1
      SETB TR1
      CLR   RI
      CLR  FASS
      LCALL RST_DOG
      LCALL DEL100MS
      SETB    P1.0
      LCALL  DUQU1
      LCALL  DIS1
      LCALL  DIS2
      LCALL  DIS3
      LCALL  DEL100MS
      LCALL  DIS1
      LCALL  DIS2
      LCALL  DIS3
      LCALL DEL10S
      CLR   RI
      SETB   EA
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 AAA: LCALL RST_DOG
      SETB  P3.4
      JNB   P3.4,WU                   ;J检测是否有产品通过,超过10s无产品通过,停止次数不累加21h.0为1时为停止一次
      LCALL DEL100MS
      JNB   P3.4,WU
      SETB 20H.2                             ;在此检测是否是有状态变换,有状态变换是清0
      JNB  20H.1,WU1
      CLR  20H.1                       ;清为低,及无通过是的标志
     ; SETB 20H.2                      ;执通过产品的标志
      MOV   4CH,#0
      MOV   4BH,#0
      CLR   P1.1
      SETB  P1.0
      LCALL DEL100MS
      LCALL DIS1
      LCALL DIS2
      LCALL DIS3
      AJMP  WU1
WU:   SETB 20H.1
      JNB  20H.2,WU1
      CLR  20H.2
     ; SETB 20H.1
      MOV   4CH,#0
      MOV   4BH,#0
      CLR   P1.1
      SETB  P1.0
      LCALL DEL100MS
      LCALL DIS1
      LCALL DIS2
      LCALL DIS3

WU1:  JNB  20H.0,AAA
      CLR  20H.0
      MOV  A,2EH
      CJNE A,#01H,NOBEEP
      INC  2FH
      MOV  A,2FH
      CJNE A,#08,NOBEEP
      MOV  2EH,#00H
      MOV  2FH,#00H
      SETB P3.3
NOBEEP:MOV A,4BH
      CJNE A,#01H,HH
      AJMP IGXU
 HH:  INC  4CH
      MOV  A,4CH
      CJNE A,50H,IGXU                   ;等于设定的停止值时,记录停止一次
      LCALL RST_DOG
      MOV  4CH,#0
      MOV  3EH,#01H
      LCALL ADD1
     ; LCALL RST_DOG
     ; LCALL DUQU1
     ; LCALL RST_DOG
      MOV   R0,3FH
      LCALL VIHY
      MOV   30H,R2
      MOV   31H,R1
      LCALL RST_DOG
      MOV  4BH,#1                  ;停止为发生状态变换以前,不重新记录停止时间
      SETB  P1.1                      ;打开背景灯
      CLR  P1.0
      LCALL DEL100MS
      LCALL DIS1
      LCALL DIS2
      LCALL DIS3
      MOV  26H,#58H
      MOV  27H,#05H
      MOV  28H,#99
      LCALL FSUU


 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 IGXU:
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;在主程序中检测
;闪烁程序,分4个子程序控制下边4组数码管的闪烁,用21H.1-21H.4标示,为高时闪烁
;闪烁时数据存放在54-5A中
 UJHO1:MOV    A,47H
       CJNE    A,#01H,UJHO2;
       ;JNB   21H.1,UJHO2               ;缺料 用21h.1 22h.1标示,5ch 累计
       SETB  P1.2
       JNB   22H.1,LD1
       CPL   22H.1
       MOV   37H,#0AH
       MOV   36H,#0AH
 ;      LCALL DIS2
 ;      LCALL DEL100MS
 ;      LCALL DIS2
       AJMP  UJR1
 LD1:  MOV   37H,57H
       MOV   36H,56H
       CPL   22H.1
 ;      LCALL DIS2
 ;      LCALL DEL100MS
 ;      LCALL DIS2
 UJR1: INC   5CH
       MOV   A,5CH
       CJNE  A,#30H,URET1
       MOV   5CH,#0
       CLR   21H.1
       MOV   47H,#0
       LCALL DUQU1
;       LCALL DIS2
;       LCALL DEL100MS
;       LCALL DIS2
       CLR   P1.2
URET1: ;AJMP  AAA


UJHO2: MOV   A,48H
       CJNE A,#01H,UJHO3
       ;JNB    21H.2,UJHO3          ;质量异常,22H.2 21H.1  5DH
       SETB  P1.3
       JNB   22H.2,LD2
       CPL   22H.2
       MOV   34H,#0AH
       MOV   35H,#0AH
;       LCALL DIS2
;       LCALL DEL100MS
;       LCALL DIS2
       AJMP  UJR2
 LD2:  MOV   35H,55H
       MOV   34H,54H
       CPL   22H.2
;       LCALL DIS2
;       LCALL DEL100MS
;       LCALL DIS2
 UJR2: INC   5DH
       MOV   A,5DH
       CJNE  A,#30H,URET2
       MOV   5DH,#0
       CLR   21H.2
       LCALL DUQU1
;       LCALL DIS2
;       LCALL DEL100MS
;       LCALL DIS2
       CLR   P1.3
       MOV   48H,#0
URET2:


UJHO3:MOV A,49H
       CJNE A,#01H,UJHO4                   ;JNB   21H.3,UJHO4                  ;设备故障
       SETB  P1.4
       JNB   22H.3,LD3
       CPL   22H.3
       MOV   3AH,#0AH
       MOV   3BH,#0AH
;       LCALL DIS3
;       LCALL DEL100MS
;       LCALL DIS3
       AJMP  UJR3
 LD3:  MOV   3AH,5AH
       MOV   3BH,5BH
       CPL   22H.3
 ;      LCALL DIS3
 ;       LCALL DEL100MS
 ;     LCALL DIS3
 UJR3: INC   5EH
       MOV   A,5EH
       CJNE  A,#30H,URET3
       MOV   5EH,#0
       CLR   21H.3
       LCALL DUQU1
;       LCALL DIS3
;        LCALL DEL100MS
;      LCALL DIS3
       CLR   P1.4
       MOV  49H,#0
URET3:
UJHO4:
       MOV A,4AH
       CJNE A,#01H,URET4
       ;JNB   21H.4,URET4            ;提位呼叫
       SETB   P1.5
       JNB   22H.4,LD4
       CLR   22H.4
       MOV   39H,#0AH
       MOV   38H,#0AH
 ;      LCALL DIS3
 ;       LCALL DEL100MS
 ;     LCALL DIS3
       AJMP  UJR4
 LD4:  MOV   39H,59H
       MOV   38H,58H
       SETB  22H.4
  ;     LCALL DIS3
  ;      LCALL DEL100MS
  ;    LCALL DIS3
 UJR4: INC   5FH
       MOV   A,5FH
       CJNE  A,#30H,URET4
       MOV   5FH,#0
       CLR   21H.4
       LCALL DUQU1
 ;      LCALL DIS3
 ;       LCALL DEL100MS
 ;     LCALL DIS3
       CLR  P1.5
       MOV 4AH,#0
URET4:LCALL DIS1
      LCALL DIS2
      LCALL DIS3

       AJMP  AAA

;给计算机发送需要采集的信号
;4800,s,8,1
;3位数据,58H(通讯校检),01-05H故障类型(05超节拍)00-99H,故障公位
FSUU:   CLR EA
        SETB FASS
        MOV  R1,#26H
   FS1: MOV A,@R1
        MOV SBUF,A
        JNB TI,$
        CLR TI
        INC R1
        MOV A,R1
        NOP
        NOP
        NOP
        CJNE A,#29H,FS1
        CLR FASS
        SETB EA
        RET







;=============================================
BEEP: CLR    P3.3
      ;LCALL  DEL100mS
      MOV  2EH,#01H
      MOV  2FH,#00H
      ;SETB   P3.3
      RET
; =========================================
;串口中断
TRAX:  CLR EA
       CLR ES
       ;CLR RI
       PUSH PSW
       PUSH DPH
       PUSH DPL
       PUSH A
       CLR RI
       CLR TI
       MOV R1,#51H
       MOV A,SBUF                          ;3A3B3C3DH为接收到数序号的备份,校验正确后再送出显示
       CJNE A,#58H,TRAX0

       NOP
       NOP
       NOP
       NOP

⌨️ 快捷键说明

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