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

📄 第8次小车寻迹.asm

📁 小车程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
     SI  BIT  P2.4
     SO  BIT  P2.5
     SCK BIT  P2.3
     CLK BIT  P2.3
     DAT BIT  P2.4
     KEY BIT  P3.2
 CLK2543 BIT  P2.3
     DIN BIT  P2.4
    DOUT BIT  P2.5
  CS2543 BIT  P2.2
 PSB     BIT  P3.4
 RES     BIT  P3.5
 CS      BIT  P1.7
 STD     BIT  P2.4
 SCLK    BIT  P2.3
CS_12887 BIT  P2.0
CS_7279  BIT  P2.1
 DATA_IN EQU 020H
DATA_OUT EQU 021H
DATA_OUT1 EQU 022H
   PINGS EQU  3AH
   MIAO  EQU  25H
   FEN   EQU  26H
   MIAO1 EQU  24H
   FEN1  EQU  23H
   DO    EQU  28H
   DO_IN EQU  27H
   HDATA EQU  28H
   LDATA EQU  29H
   LQ    EQU  2AH          ;前角度
   HQ    EQU  2BH
   LH    EQU  2CH         ;后角度
   HH    EQU  2DH
   LQ1   EQU  2EH          ;前角度
   HQ1   EQU  2FH
   LH1   EQU  3AH         ;后角度
   HH1   EQU  3BH
   START EQU  30H
   COM   EQU  31H
   L12   EQU  32H
 DS_ADDR EQU  33H
   L13   EQU  34H
   DJS   EQU  35H
   L11   EQU  36H
   L14   EQU  37H
   DJS1  EQU  38H
   DJS2  EQU  39H
    ADDR EQU  3CH
      ORG 0000H
      NOP
      NOP
      NOP
      LJMP MAIN
      ORG 000BH
      LJMP ITOP
      ORG 001BH
      LJMP IT1P
      ORG 0300H
MAIN:   MOV    SP,#59H
        MOV    LQ,#6AH          ;前角度
        MOV    HQ,#01H
        MOV    LH,#0DAH         ;后角度
        MOV    HH,#02H
        MOV    LQ1,#72H          ;前角度
        MOV    HQ1,#01H
        MOV    LH1,#0DbH         ;后角度
        MOV    HH1,#02H
        CLR    CS_12887
        CLR    CS_7279
        CLR    RES
        SETB   RES             ;  可以直接接电源VDD
        SETB   CS              ;  可以直接接电源VDD
        CLR    PSB
        MOV L13,#32
        MOV L12,#90
        MOV L14,#1
        MOV L11,#5
        MOV DJS,#30H
        MOV DJS1,#30H
        MOV DJS2,#30H
        MOV TMOD,#11H
        MOV TL0,#0B0H
        MOV TH0,#3CH
        MOV TL1,#0B0H
        MOV TH1,#3CH
        CALL   LCDRESET
MAIN1: MOV    START,#0F8H     ;写入命令(11111000)
       MOV    COM,#80H    ;设定显示位置
       LCALL  LCDWRITE
       MOV    START,#0FAH
       LCALL CHUXIAN
       LCALL WAIT
KEYGET:MOV A,DATA_IN                ;判断按键并赋值
KEY1:  CJNE A,#27,KEY2
       SETB CS_7279
       LJMP JINGTAI
KEY2:  CJNE A,#28,KEY3
       SETB CS_7279
       LJMP XUNJI
KEY3:  CJNE A,#29,KEY4
       SETB CS_7279
       LJMP DONGTAI
KEY4:  CJNE A,#30,KEY5
       SETB CS_7279
       LJMP DONG
KEY5:  SJMP MAIN1
JINGTAI:LCALL  LCDRESET
        LCALL  WRITE_TIME
        LCALL  QJ
        LCALL S60
        ;LCALL  ZZ_60M
        LCALL  ZZ10
        LCALL  PDD
        LCALL  FZ30
        LCALL LCDRESET

        SETB TR0
        SETB ET0
        SETB EA
        SETB ET1
        CLR  TR1
        LCALL  READ_TIME

ZI1:    ;CALL   LCDRESET

        CALL   AD_DATA
        LCALL  ZH
        LCALL  PDZ
        LCALL  PDZ1
        JMP    ZI1
S60:   PUSH ACC
       MOV    A,DJS2
       MOV    COM,A
       LCALL  LCDWRITE
       MOV    A,DJS1
       MOV    COM,A
       LCALL  LCDWRITE
       POP  ACC
       RET
DONGTAI:LCALL  LCDRESET
        LCALL  WRITE_TIME
        ;LCALL  ZZ_60M
        LCALL  QJ
        LCALL  ZZ10
        LCALL  PDDD
        LCALL  FZ40
        LCALL  LCDRESET
        SETB EA
        SETB ET1
ZI2:    ;CALL   LCDRESET
        CALL   AD_DATA
        LCALL  ZH
        LCALL  PDZZ
        LCALL  PDZ11
        JMP    ZI2
DONG    :LCALL  LCDRESET
        LCALL  WRITE_TIME
        ;LCALL  ZZ_60M
        LCALL  QJ
        LCALL  ZZ10
        LCALL  PDD
        LCALL  FZ40
        LCALL  LCDRESET
        SETB EA
        SETB ET1
ZI22:   ;CALL   LCDRESET
        CALL   AD_DATA
        LCALL  ZH
        LCALL  PDZZ
        LCALL  PDZ11
        JMP    ZI22
XUNJI:  LCALL JIANCE2
        SJMP XUNJI
DELAY1:MOV R5,#1
D1:    MOV R6,#10
D2:    MOV R7,#100
       DJNZ R7,$
       DJNZ R6,D2
       DJNZ R5,D1
       RET
DELAY5:MOV R5,#1
D1111: MOV R6,#80
D2111: MOV R7,#100
       DJNZ R7,$
       DJNZ R6,D2111
       DJNZ R5,D1111
       RET
PDD: ;CALL   AD_DATA
     ;LCALL  DELAY05S
     CALL   AD_DATA
     LCALL  ZH
     CLR C
     MOV A,#0FAH
     XCH A,R3
     SUBB A,R3
     MOV A,#01H
     XCH A,R2
     SUBB A,R2
     JC FFF
     LCALL ZZ5
     SJMP PDD
FFF: LCALL SHORT_DELAY
     CALL   AD_DATA
     LCALL  ZH
     CLR C
     MOV A,#0FAH
     XCH A,R3
     SUBB A,R3
     MOV A,#01H
     XCH A,R2
     SUBB A,R2
     JC FFFB
     LCALL ZZ5
     SJMP PDD
FFFB:RET
PDDD: ;CALL   AD_DATA
     ;LCALL  DELAY05S
     CALL   AD_DATA
     LCALL  ZH
     CLR C
     MOV A,#70H
     XCH A,R3
     SUBB A,R3
     MOV A,#01H
     XCH A,R2
     SUBB A,R2
     JC FFFT
     LCALL JIANCE3
     SJMP PDDD
FFFT: LCALL SHORT_DELAY
     CALL   AD_DATA
     LCALL  ZH
     CLR C
     MOV A,#70H
     XCH A,R3
     SUBB A,R3
     MOV A,#01H
     XCH A,R2
     SUBB A,R2
     JC FFFBT
     LCALL JIANCE3
     SJMP PDDD
FFFBT:RET
;*************检测**********************
JIANCE:JNB P1.2,JC1
       JNB P1.3,JCC1
       JNB P1.6,JCC1
       JNB P1.5,JCC1
       SJMP JC4
JCC1:  LCALL YZBT
       RET
JC1:   JNB P1.3,JC2
       JB P1.6,JC4
JCC2:  LCALL YZBT1
       RET
JC2:   JNB P1.6,JC3
       LCALL ZZBT
       RET
JC3:   JNB P1.5,JC4
       LCALL ZZBT1
       RET
JC4:   LCALL ZZ5
       RET
;**************A检测方式3***************
JIANCE3:JNB P1.2,JCD1
        LCALL YZBT1
        RET
JCD1:   JNB P1.6,JCD2
        LCALL ZZBT1
        RET
JCD2:   LCALL ZZ5
        RET
;**************A检测方式2***************
JIANCE2:JNB P1.3,JCDD1
        JB  P1.5,JCDD4
        JB  P1.6,JCDD4
        LCALL YZBT
        RET
JCDD1:  JNB P1.2,JCDD2
        JB  P1.5,JCDD4
        JB  P1.6,JCDD4
        LCALL YZBT
        RET
JCDD2:  JNB P1.6,JCDD3
        JB  P1.3,JCDD4
        JB  P1.2,JCDD4
        LCALL ZZBT
        RET
JCDD3:  JNB P1.5,JCDD4
        JB  P1.2,JCDD4
        JB  P1.3,JCDD4
        LCALL ZZBT
        RET
JCDD4:  LCALL ZZ5
        RET
;*************判断角度*******************
PDZ:
     MOV A,R3
     MOV R4,A
     MOV A,R2
     MOV R5,A
     CLR C
     MOV A,LQ
     XCH A,R3
     SUBB A,R3
     MOV A,HQ
     XCH A,R2
     SUBB A,R2
     JNC PDF
     RET
PDF: CLR C
     MOV A,R4
     MOV R3,A
     MOV A,LH
     XCH A,R3
     SUBB A,R3
     MOV A,R5
     MOV R2,A
     MOV A,HH
     XCH A,R2
     SUBB A,R2
     JC PINGHENG
     RET
PDZ1:MOV A,R4
     MOV R3,A
     MOV A,R5
     MOV R2,A
     CLR C
     MOV A,LQ
     XCH A,R3
     SUBB A,R3
     MOV A,HQ
     XCH A,R2
     SUBB A,R2
     JNC PDF1
     LCALL FZ1
     LCALL LCDRESET
     LCALL HT
     LCALL S60
     MOV L14,#1
     MOV L11,#5
     MOV DJS,#30H
     CLR TR1
     LCALL TING5S
     RET
PDF1:CLR C
     MOV A,R4
     MOV R3,A
     MOV A,LH
     XCH A,R3
     SUBB A,R3
     MOV A,R5
     MOV R2,A
     MOV A,HH
     XCH A,R2
     SUBB A,R2
     JC PINGHENG
     LCALL LCDRESET
     LCALL QJ
     LCALL S60
     LCALL ZZ1
     MOV L14,#1
     MOV L11,#6
     MOV DJS,#30H
     CLR TR1
     LCALL TING5S
     RET
PINGHENG:
     LCALL AD_DATA
     LCALL ZH
     MOV    START,#0F8H     ;写入命令(11111000)
     MOV    COM,#80H    ;设定显示位置
     LCALL  LCDWRITE
     MOV    START,#0FAH
     LCALL PING
     LCALL S60
PDZ2:MOV A,R3
     MOV R4,A
     MOV A,R2
     MOV R5,A
     CLR C
     MOV A,LQ
     XCH A,R3
     SUBB A,R3
     MOV A,HQ
     XCH A,R2
     SUBB A,R2
     JNC PDF2
     RET
PDF2:CLR C
     MOV A,R4
     MOV R3,A
     MOV A,LH
     XCH A,R3
     SUBB A,R3
     MOV A,R5
     MOV R2,A
     MOV A,HH
     XCH A,R2
     SUBB A,R2
     JC PINGHENG1
     RET
PINGHENG1:
       MOV    START,#0F8H     ;写入命令(11111000)
       MOV    COM,#88H    ;设定显示位置
       LCALL  LCDWRITE
       MOV    START,#0FAH
       MOV    A,DJS
       MOV    COM,A
       LCALL  LCDWRITE
       SETB   ET1
       SETB   TR1
       LCALL AD_DATA
       LCALL ZH
       RET
;***********DONG TAI
PDZZ: MOV A,R3
     MOV R4,A
     MOV A,R2
     MOV R5,A
     CLR C
     MOV A,LQ1
     XCH A,R3
     SUBB A,R3
     MOV A,HQ1
     XCH A,R2
     SUBB A,R2
     JNC PDFF

     RET
PDFF: CLR C
     MOV A,R4
     MOV R3,A
     MOV A,LH1
     XCH A,R3
     SUBB A,R3
     MOV A,R5
     MOV R2,A
     MOV A,HH1
     XCH A,R2
     SUBB A,R2
     JC PINGHENG11
     RET
PDZ11:MOV A,R4
     MOV R3,A
     MOV A,R5
     MOV R2,A
     CLR C
     MOV A,LQ1
     XCH A,R3
     SUBB A,R3
     MOV A,HQ1
     XCH A,R2
     SUBB A,R2
     JNC PDF11
     LCALL FZ1
     LCALL LCDRESET

     MOV    START,#0F8H     ;写入命令(11111000)
       MOV    COM,#80H    ;设定显示位置
       LCALL  LCDWRITE
       MOV    START,#0FAH
     LCALL HT
     MOV L14,#1
        MOV L11,#6
        MOV DJS,#30H
     CLR TR1
     LCALL TING5S
     RET
PDF11:CLR C
     MOV A,R4
     MOV R3,A
     MOV A,LH1
     XCH A,R3
     SUBB A,R3
     MOV A,R5
     MOV R2,A
     MOV A,HH1
     XCH A,R2
     SUBB A,R2
     JC PINGHENG11
     MOV    START,#0F8H     ;写入命令(11111000)
       MOV    COM,#80H    ;设定显示位置
       LCALL  LCDWRITE
       MOV    START,#0FAH
     LCALL QJ
     LCALL ZZ1
     MOV L14,#1
        MOV L11,#6
     MOV DJS,#30H
     CLR TR1
     LCALL TING5S
     RET
PINGHENG11:
     LCALL AD_DATA
     LCALL ZH
     MOV    START,#0F8H     ;写入命令(11111000)
       MOV    COM,#80H    ;设定显示位置
       LCALL  LCDWRITE
       MOV    START,#0FAH
     LCALL PING
PDZ22:MOV A,R3
     MOV R4,A
     MOV A,R2
     MOV R5,A
     CLR C
     MOV A,LQ1
     XCH A,R3
     SUBB A,R3
     MOV A,HQ1
     XCH A,R2
     SUBB A,R2
     JNC PDF22
     RET
PDF22:CLR C
     MOV A,R4
     MOV R3,A
     MOV A,LH1
     XCH A,R3
     SUBB A,R3
     MOV A,R5

⌨️ 快捷键说明

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