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

📄 74ls04cx20106.txt

📁 超声波发射电路主要由74LS04缓冲反向器和超声波换能器构成
💻 TXT
📖 第 1 页 / 共 2 页
字号:
            LCALL DELAY1    ;
                SETB  CS
       PUSH  ACC
       MOV  R0,#8
       MOV  A,#11111000B
COMM1:
                CLR  C
       RLC  A
       MOV  SID,C
       CLR  SCLK
                SETB SCLK
       DJNZ R0,COMM1
       POP  ACC
       MOV  R5,A
       ANL  A,#0F0H
       MOV  R0,#8
COMM2:         CLR  C
       RLC  A
       MOV  SID,C
       CLR  SCLK
       SETB SCLK
       DJNZ R0,COMM2
       MOV  A,R5
       SWAP A
       ANL  A,#0F0H
       MOV  R0,#8
COMM3:         CLR  C
       RLC  A
       MOV  SID,C
       CLR  SCLK
       SETB SCLK
       DJNZ R0,COMM3
       CLR  CS
            RET
;
;***********串行数据写入子程序****************
;写入数据字在A中
WRITE_DAT:
       LCALL DELAY1
                SETB CS
       PUSH  ACC
       MOV  R0,#8
       MOV  A,#11111010B
DATA1:         CLR  C
       RLC  A
       MOV  SID,C
       CLR  SCLK
       SETB SCLK
       DJNZ R0,DATA1
       POP  ACC
       MOV  R5,A
       ANL  A,#0F0H
       MOV  R0,#8
DATA2:         CLR  C
       RLC  A
       MOV  SID,C
       CLR  SCLK
       SETB SCLK
       DJNZ R0,DATA2
       MOV  A,R5
       SWAP A
       ANL  A,#0F0H
       MOV  R0,#8
DATA3:         CLR  C
       RLC  A
       MOV  SID,C
       CLR  SCLK
       SETB SCLK
       DJNZ R0,DATA3
       CLR  CS
            RET
;
;**************延时子程序**********************
;0.544ms
DELAY1:
    MOV  R7,#010H
D11:   MOV  R6,#010H
    DJNZ R6,$
    DJNZ R7,D11
    RET
;0.13s
DELAY:
    MOV  R1,#00H
D2: MOV  R2,#00H
    DJNZ R2,$
    DJNZ R1,D2
    RET
;5.2s
DELAY5S:MOV  R3,#40
DE5S:   LCALL DELAY
        DJNZ R3,DE5S
        RET
DELAY1S:MOV  R3,#9
DE1S:   LCALL DELAY
        DJNZ R3,DE1S
        RET
;
;************16*8点阵字写入子程序共16个******************
WRITE_ASCII:
       MOV  R4,#16
DDDD:          CLR  A
       MOVC A,@A+DPTR
       LCALL WRITE_DAT
       INC  DPTR
       DJNZ R4,DDDD
       RET
;************16*8点阵字写入子程序共7个******************
WRITE_ASCII7:
       MOV  R4,#7
DDDD7:         MOV  A,@R0
       LCALL WRITE_DAT
       INC  R0
                DJNZ R4,DDDD7
       RET
;************16*16点阵汉字写入子程序共7个***********
WRITE_HZ:    ;WRITE 7 CHINESE TO LCD
       MOV  R4,#7
DD:         CLR  A
       MOVC A,@A+DPTR
       INC  DPTR
       LCALL WRITE_DAT
       CLR  A
       MOVC A,@A+DPTR
       INC DPTR
       LCALL WRITE_DAT
       DJNZ R4,DD
       RET
;************16*16点阵汉字写入子程序共2个***********
WRITE_HZ2:      ;WRITE 8 CHINESE TO LCD
       MOV  R4,#2
DD4:           CLR  A
       MOVC A,@A+DPTR
       INC  DPTR
       LCALL WRITE_DAT
       CLR  A
       MOVC A,@A+DPTR
       INC DPTR
       LCALL WRITE_DAT
       DJNZ R4,DD4
       RET
;
;*****************************16*8点阵的字符代码表**********************************
TABLE1: DB     30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3AH,3BH,3CH,3DH,3EH,20H
;               0   1   2   3   4   5   6   7   8   9   :   ;   <   =   > "不显"
;**********************************自造字符地址表***********************************
;
;******************"这里是16*16点阵的汉字代码表"************************************
CHINESE:  DB "浙江海洋学院—   "
CHINESE1: DB "单片机实验室     "
CHINESE3: DB "C03 电本(2) 班   "
CHINESE4: DB "楼然苗设计制作   "
CHINESE2: DB "距离:     厘米   "
CHINESE6: DB "报警:     厘米    "
CHINESE7: DB "警告! 距离太近    "
CHINESE8: DB "超声波测距器-J   "       ; 近报警状态
CHINESE9: DB "超声波测距器-Y   "       ; 远报警状态
CHINESE10:DB "警告! 距离太远    "
;;;;;;;;;;;;;;;;;;;;;;
BAOJ:               PUSH  ACC
                    PUSH  PSW
                    MOV    A,60H
                    CJNE   A,40H,BAO1
                    CLR    C
                    MOV    A,61H
                    CJNE   A,41H,BAO1
                    CLR    C
                    MOV    A,62H
                    CJNE   A,42H,BAO1
                    CLR    C
                    MOV    A,63H
                    CJNE   A,43H,BAO1
        BAOJING:
                    CLR    LAMPBLAK
                    CLR    LED1
                ;    CLR    BELL
                    MOV  A,#80H          ;第一行左第一个字开始
                LCALL WRITE_COM
                MOV  DPTR,#CHINESE7     ;警告! 距离太近
                LCALL WRITE_HZ
                    POP    PSW
                    POP    ACC
                    RET
           BBAO:    SETB   LAMPBLAK
                    SETB   LED1
                ;    SETB   BELL
                    MOV  A,#80H          ;第一行左第一个字开始
                LCALL WRITE_COM
                MOV  DPTR,#CHINESE8     ;超声波测距器--
                LCALL WRITE_HZ
                    POP    PSW
                    POP    ACC
                    RET
;
         BAO1:      JC     BBAO
                    LJMP   BAOJING
;
YBAOJ:              PUSH  ACC
                    PUSH  PSW
                    MOV    A,60H
                    CJNE   A,40H,BAO11
                    CLR    C
                    MOV    A,61H
                    CJNE   A,41H,BAO11
                    CLR    C
                    MOV    A,62H
                    CJNE   A,42H,BAO11
                    CLR    C
                    MOV    A,63H
                    CJNE   A,43H,BAO11
        BAOJING1:
                    CLR    LAMPBLAK
                    CLR    LED1
                ;    CLR    BELL
                    MOV  A,#80H          ;第一行左第一个字开始
                LCALL WRITE_COM
                MOV  DPTR,#CHINESE10     ;警告! 距离太远
                LCALL WRITE_HZ
                    POP    PSW
                    POP    ACC
                    RET
           BBAO1:    SETB   LAMPBLAK
                    SETB   LED1
              ;      SETB   BELL
                    MOV  A,#80H          ;第一行左第一个字开始
                LCALL WRITE_COM
                MOV  DPTR,#CHINESE9     ;超声波测距器-Y
                LCALL WRITE_HZ
                    POP    PSW
                    POP    ACC
                    RET
;
         BAO11:      JC     BAOJING1
                    LJMP    BBAO1
;以下为报警距离设定程序
        SAFESET:    CLR    EA
                    CLR    TR0
                    MOV  A,#90H          ;第二行左第一个字开始
                LCALL WRITE_COM
                MOV  DPTR,#CHINESE6    ;显示报警:
                LCALL WRITE_HZ
                    CLR   LAMPBLAK
                    MOV    50H,40H
                    MOV    51H,41H
                    MOV    52H,42H
                    MOV    53H,43H
                     MOV    40H,60H
                     MOV    41H,61H
                     MOV    42H,62H
                     MOV    43H,63H
                     LCALL   DATAUP
       SAFESET1:    JNB     KEY0,SAFESET1

       SAFESET10:   LCALL   DATAUP
                    JNB     KEY0,SAFESET2
                    JNB     KEY1,SAFEADD1
                    JNB     KEY2,SAFESUBB1
                    LJMP    SAFESET10
       SAFESET2:    LJMP    SAFESET20
       SAFEADD1:    MOV     R7,43H
                    LCALL   ADD1
                    MOV     43H,A
                    LJMP    SAFESET10
       SAFESUBB1:   MOV     R7,43H
                    LCALL   SUBB1
                    MOV     43H,A
                    LJMP    SAFESET10

       SAFESET20:    CLR   BELL
                    JNB     KEY0,SAFESET20
                    SETB   BELL
                    LCALL   DATAUP
                    JNB     KEY0,SAFESET3
                    JNB     KEY1,SAFEADD2
                    JNB     KEY2,SAFESUBB2
                    LJMP    SAFESET20
       SAFESET3:    LJMP    SAFESET30
       SAFEADD2:    MOV     R7,42H
                    LCALL   ADD1
                    MOV     42H,A
                    LJMP    SAFESET20
       SAFESUBB2:   MOV     R7,42H
                    LCALL   SUBB1
                    MOV     42H,A
                    LJMP    SAFESET20

       SAFESET30:   JNB     KEY0,SAFESET30
                    LCALL   DATAUP
                    JNB     KEY0,SAFESET4
                    JNB     KEY1,SAFEADD3
                    JNB     KEY2,SAFESUBB3
                    LJMP    SAFESET30
       SAFESET4:    LJMP    SAFESET40
       SAFEADD3:    MOV     R7,41H
                    LCALL   ADD1
                    MOV     41H,A
                    LJMP    SAFESET30
       SAFESUBB3:   MOV     R7,41H
                    LCALL   SUBB1
                    MOV     41H,A
                    LJMP    SAFESET30

       SAFESET40:   JNB     KEY0,SAFESET40
                    LCALL   DATAUP
                    JNB     KEY0,SAFESET5
                    JNB     KEY1,SAFEADD4
                    JNB     KEY2,SAFESUBB4
                    LJMP    SAFESET40
       SAFESET5:    LJMP    SAFESET50
       SAFEADD4:    MOV     R7,40H
                    LCALL   ADD1
                    MOV     40H,A
                    LJMP    SAFESET40
       SAFESUBB4:   MOV     R7,40H
                    LCALL   SUBB1
                    MOV     40H,A
                    LJMP    SAFESET40

       SAFESET50:   JNB    KEY0,SAFESET50
                    MOV    60H,40H
                    MOV    61H,41H
                    MOV    62H,42H
                    MOV    63H,43H
                     MOV    40H,50H
                     MOV    41H,51H
                     MOV    42H,52H
                     MOV    43H,53H
                     MOV  A,#90H         ;第二行左第一个字开始
                 LCALL WRITE_COM
                 MOV  DPTR,#CHINESE2    ;WORD 16*16点阵TEST
                 LCALL WRITE_HZ
                     SETB  LAMPBLAK
                    SETB    EA
                    SETB    TR0
                    LJMP    START1

       ADD1:        MOV    A,R7
                    ADD    A,#01H
       ADD20:
                    CLR    C
                    MOV    R3,A
                    SUBB   A,#0AH
                    JC     ADD10
                    MOV    A,#00H
                    JNB    KEY1,ADD20
                    RET
       ADD10:       MOV    A,R3
                    JNB    KEY1,ADD20
                    RET

       SUBB1:       MOV    A,R7
                    DEC    A
       SUBB20:      CLR    C
                    MOV    R3,A
                    SUBB   A,#0AH
                    JC     SUB12
                    MOV    A,#09H

                    JNB    KEY2,SUBB20
                    RET
       SUB12:       MOV    A,R3
                    JNB    KEY2,SUBB20
                    RET
;

        END                 ;程序结束

⌨️ 快捷键说明

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