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

📄 conrol.asm

📁 完成重量控制的程序
💻 ASM
字号:
      RS       EQU      p2.1       ;液晶口定义
       RW       EQU      P2.2
       E        EQU      P2.3
       PSB      EQU      P2.7
       RST      EQU      P2.4
       YH       EQU      30H
       YL       EQU      31H
       MON      EQU      32H
       DAY      EQU      33H
       HOUR     EQU      34H
       MIN      EQU      35H
       SEC      EQU      36H
       WEK      EQU      37H
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       COM      EQU      20H         ;公共指令口与数据口
       DAT      EQU      21H
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       BFD      EQU      23H         ;键盘口
       SFD      EQU      24H
       GFD      EQU      25h
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       DIN      EQU      P3.2        ;DA口
       SCLK     EQU      P3.1
       CSN      EQU      P3.0
       SUG      EQU      26H
       SUD      EQU      27H
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        ORG      0000H
        AJMP     MAIN

        ORG      0100H
  MAIN: NOP
       LCALL DELAY10
 ;      LCALL DELAY10
       LCALL KEY
       NOP
       AJMP KEY
ZIDONG:SETB  P3.0
       MOV  SUG,#02H
       MOV  SUD,#00H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       LCALL DELAY10

CHUSHENG:
         CLR C
         MOV A,R1
         ADD A,#1
         MOV R1,A
         CLR A
         ADDC A,R0
         MOV R0,A
         LCALL DAC
         LCALL DELAY1400
         CJNE R0,#0BH,CHUSHENG
         CJNE R1,#80H,CHUSHENG
JINGSHENG:
         CLR C
         MOV A,R1
         ADD A,#1
         MOV R1,A
         CLR A
         ADDC A,R0
         MOV R0,A
         LCALL DAC
         LCALL DELAY3900
         CJNE R0,#0DH,JINGSHENG
         CJNE R1,#80H,JINGSHENG


         MOV R5,#0C8H
BAOCHI:MOV R0,#0DH
       MOV R1,#80H
       LCALL DAC
       LCALL DELAY10
       DJNZ R5,BAOCHI
XIELIAO:CLR C
         MOV A,R1
         SUBB A,#1
         MOV R1,A
         CLR A
         MOV A,R0
         SUBB A,#0
         MOV R0,A
         CLR C
        LCALL DAC
        LCALL DELAY600
        CJNE R0,#00H,XIELIAO
        CJNE R1,#80H,XIELIAO

     AJMP MAIN




SHOUDONG:NOP
         NOP
         SETB  P3.0
       MOV  SUG,#00H
       MOV  SUD,#01H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       LCALL DELAY10
      AJMP KEY
 CHUSHENG1: SETB  P3.0
       MOV  SUG,#02H
       MOV  SUD,#00H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       LCALL DELAY600
CHUSHENG2:CLR C
         MOV A,R1
         ADD A,#1
         MOV R1,A
         CLR A
         ADDC A,R0
         MOV R0,A
         LCALL DAC
         LCALL DELAY1400
         CJNE R0,#0BH,CHUSHENG2
         CJNE R1,#80H,CHUSHENG2
         AJMP KEY
JINGSHENG1:
          SETB  P3.0
       MOV  SUG,#0BH
       MOV  SUD,#80H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       LCALL DELAY600
JINGSHENG2:CLR C
         MOV A,R1
         ADD A,#1
         MOV R1,A
         CLR A
         ADDC A,R0
         MOV R0,A
         LCALL DAC
         LCALL DELAY3900
         CJNE R0,#0DH,JINGSHENG2
         CJNE R1,#80H,JINGSHENG2
         AJMP KEY


BIAOCHI1:MOV R0,#0DH
       MOV R1,#80H
       LCALL DAC
       LCALL DELAY10
       AJMP KEY
XIELIAO1: SETB  P3.0
       MOV  SUG,#0DH
       MOV  SUD,#80H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       LCALL DELAY600
XIELIAO2:CLR C
         MOV A,R1
         SUBB A,#1
         MOV R1,A
         CLR A
         MOV A,R0
         SUBB A,#0
         MOV R0,A
         CLR C
        LCALL DAC
        LCALL DELAY600
        CJNE R0,#00H,XIELIAO2
        CJNE R1,#80H,XIELIAO2
        AJMP KEY
STEPUP:SETB  P3.0
        MOV  SUG,#00H
       MOV  SUD,#00H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       LCALL DELAY10
        CLR C
        MOV A,R1
        ADD A,#1
        MOV R1,A
        CLR A
        ADDC A,R0
        MOV R0,A
        LCALL DAC
        LCALL DELAY10
        AJMP KEY

STEPDOWN:SETB  P3.0
       MOV  SUG,#0DH
       MOV  SUD,#80H
       MOV  R0,SUG
       MOV  R1,SUD
       LCALL DAC
       lcall delay10
       CLR C
         MOV A,R1
         SUBB A,#1
         MOV R1,A
         CLR A
         MOV A,R0
         SUBB A,#0
         MOV R0,A
         CLR C
        LCALL DAC
        LCALL DELAY10
        AJMP KEY



DELAY1400:           ;27*255*0.2=1.4ms  改为1。56ms
  MOV R7,#1BH
D141:
  MOV R6,#0FFH
D142:
  DJNZ R6,D142
  DJNZ R7,D141
  RET

DELAY3900:          ;76*255*0.2=3.9ms
  MOV R7,#4DH
D391:
  MOV R6,#0FFH
D392:
  DJNZ R6,D392
  DJNZ R7,D391
  RET

DELAY600:           ;11*255*0.2=0.6MS
  MOV R7,#0BH
D61:
  MOV R6,#0FFH
D62:
  DJNZ R6,D62
  DJNZ R7,D61
  RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAX539
;DA:MOV SCON,#00H        ;设置串行口通信方式为0方式,TXD开始输出移位脉冲
 ;  CLR CSN              ;片选信号置0,选中MAX539
  ; MOV A,SUG            ;将待转换的高四位数据和伪数据送交SBUF
  ;MOV SBUF,A
  ; CLR 99H              ;清除发送中断标志位
  ; MOV A,SUD            ;将待转换的低8位数据送交SBUF
  ; MOV SBUF,A
  ; CLR 99H              ;清除发送中断标志位
  ; SETB CSN             ;片选信号置1,将待转换的数据送入DAC,开始D/A转换
  ; RET



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DAC: CLR P3.0                ;TLC5615,高位R0,低位R1,最后两位虚位,MAX539试用,无虚位
     MOV R2,#4
     MOV A,R0
     SWAP A
     LCALL WRDATA
     MOV R2,#8
     MOV A,R1
     LCALL WRDATA
     CLR P3.1
     SETB P3.0
     RET
WRDATA:NOP
LOOP:CLR P3.1
     RLC A
     MOV P3.2,C
     SETB P3.1
     DJNZ R2,LOOP
     RET


DELAY10:              ;延时10ms
  MOV R7,#0C4H
D1:MOV R6,#0FFH
D2:DJNZ R6,D2
   DJNZ R7,D1
  RET



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;键盘扫描P2


KEY:  setb rs0
      LCALL KST
     CJNE A,#0F0H,KEY1
      CALL DELAY10
      RET
KEY1:
      LCALL DELAY10
      LCALL KST
      CJNE A,#0F0H,KEY2
      JMP KEY
KEY2:
     MOV A,#00
     MOV R0,A
     MOV R1,A
     MOV R3,#0FEH
KEY3:
      MOV A,R3
      MOV P2,A
      NOP
      NOP
      NOP
      MOV A,P2
      MOV R1,A
      ORL A,#0FH
      CPL A
      JNZ KEY4
      INC R0
      SETB C
      MOV A,R3
      RLC A
      MOV R3,A
      MOV A,R0
      CJNE A,#4,KEY3
KEY4:
      MOV A,R1
      JNB ACC.4,SKEY5
      JNB ACC.5,SKEY6
      JNB ACC.6,SKEY7
      JNB ACC.7,SKEY8

SKEY5:
      MOV A,#00H
      MOV R2,A
      AJMP DKEY
SKEY6:
      MOV A,#01H
      MOV R2,A
      AJMP DKEY
SKEY7:
      MOV A,#02H
      MOV R2,A
      AJMP DKEY
SKEY8:
      MOV A,#03H
      MOV R2,A
      AJMP DKEY
DKEY:
     MOV A,R0
     ACALL DECODE
     LJMP KEY
DECODE:
       MOV A,R0
       MOV B,#4
       MUL AB
       ADD A,R2

keytel:
       MOV DPTR,#TABLE
       CLR C
       RL A
       JMP @A+DPTR
 clr rs0
      RET

KST:
      MOV P2,#0F0H
      MOV A,P2
      ANL A,#0F0H
      RET

TABLE:AJMP ZIDONG
      AJMP SHOUDONG
      AJMP CHUSHENG1
      AJMP JINGSHENG1
      AJMP BIAOCHI1
      AJMP XIELIAO1
      AJMP STEPUP
      AJMP STEPDOWN
      AJMP MAIN

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

⌨️ 快捷键说明

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