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

📄 无敌版.asm

📁 我替同学做的毕业设计!实现用LCD显示车速(mps和kmph两档)、里程、行驶时间以及超速报警的功能。硬件测试非常成功。希望对大家有帮助!
💻 ASM
字号:
RS EQU P3.7
RW EQU P3.6
E EQU P3.5
key1 equ p1.0 ;里程
key2 equ p1.1  ;速度
key3 equ p1.2  ;单位转换
key4 equ p1.3  ;所用时间

ORG  0000H
AJMP START

ORG 0BH
JMP TIME

org 13h
jmp shumu


ORG  0100H
START: MOV  SP,#60H
       MOV a,#00H
       MOV 6CH,#10
       MOV 6DH,A
       MOV 6EH,A
       MOV 6FH,#10
       mov 70h,a
       mov 71h,a
       mov 72h,#10
       mov 73h,a
       mov 74h,a
       mov 7ah,a
       mov 7bh,a
       mov 7ch,a
       mov 7dh,a
       mov 7eh,a
       mov 7fh,a
       MOV 2fH,A
       mov 30h,a
       mov 31h,a
       mov 32h,a
       MOV 3EH,A         ;圈数
       MOV 3FH,A
       MOV 40H,A
       MOV 41H,A         ;里程
       MOV 42H,A
       MOV 43H,A
       MOV 44H,A
       MOV 45H,A
       MOV 46H,A
       MOV 47H,A
       MOV 48H,A
       MOV 49H,A
       MOV 4aH,A
       MOV 4bH,A
       MOV 4cH,A
       MOV 4dH,A
       MOV 4eH,A
       MOV 50h,A
       MOV 51h,A
       MOV 52h,A
       MOV 53h,A
       MOV 54h,A
       MOV 55h,A


MAIN:LCALL DELAY
    MOV   P2,#01H ;清屏
    LCALL ENABLE


    MOV   P2,#06H ;输入方式
    LCALL ENABLE

    MOV   P2,#0cH  ;显示控制
    LCALL ENABLE

    MOV   P2,#01H  ;清屏
    LCALL ENABLE

    MOV   P2,#38H
    LCALL ENABLE

    MOV   P2,#38H
    LCALL ENABLE

    MOV   P2,#80H
    LCALL ENABLE
    MOV   DPTR,#TABLE1
    LCALL DISP
   ; SETB 00H
       MOV TMOD,#01H
       MOV TH0,#0D8H
       MOV TL0,#0f0H

       SETB ET0
       SETB TR0


       SETB EX1
       SETB IT1


       SETB EA

mainloop:
       MOV   P2,#80H
    LCALL ENABLE
    MOV   DPTR,#TABLE1
    LCALL DISP
       JNB KEY1,TLICHENG
       JNB key2,TDISSUDU
       JNB KEY3,Tdissudukmps
       JNB key4,TDISTIME
            MOV   P2,#0c0H
            LCALL ENABLE
            MOV DPTR,#TABLE4
            MOV   R1,#16
          LOOPkong:  MOV   A,#00H
                 MOVC   A,@A+DPTR
                 LCALL  ENABLE1
                 INC   DPTR
                 DJNZ   R1,LOOPkong  
       jmp out
     TLICHENG:lcall distenor
       jmp out
     TDISSUDU:lcall dissudu
       jmp out
     Tdissudukmps:lcall dissudukmps
       jmp out
     TDISTIME:lcall distime
  out: jmp mainloop



ENABLE: CLR   RS
    CLR   RW
    CLR   E
    LCALL DELAY1
    SETb  E
    RET

DISP:  MOV   R1,#16
LOOP:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOP
    RET


ENABLE1: MOV   P2,A
    SETB   RS
    CLR   RW
    CLR   E
    LCALL  DELAY1
    SETB   E
    RET

DELAY: MOV   R7,#255
D1:   MOV   R6,#255
D2:   DJNZ   R6,D2
    DJNZ   R7,D1
    RET

DELAY1:
   MOV   R6,#255
D0:DJNZ   R6,D0
   RET

TIME:
     PUSH A
     CLR TR0
     MOV TH0,#0D8H
     MOV TL0,#0f0H
     MOV A,#1
     ADD A,32H
     DA A
     MOV 32H,A
     JNC OUT_INT_T0

     MOV A,#1
     ADD A,31H
     da  a
     MOV 31H,A
     CJNE A,#60h,OUT_INT_T0
     lcall meter

     MOV 31H,#0
     MOV A,#1
     add a,30h
     DA A
     MOV 30H,A
     CJNE A,#60h,OUT_INT_T0

     MOV 30H,#0
     MOV A,#1
     add a,2fh
     DA A
     MOV 2fH,A
     CJNE A,#24h,OUT_INT_T0
     MOV 2fH,#0
OUT_INT_T0:
     lcall datas
     POP A
     SETB TR0
     RETI

METER:mov 44h,#00h
      mov 43h,#00h
      mov 42h,#00h
      MOV R1,#50
  QQQ:MOV A,40H      ;41h,42H,43H,44H中放T+1秒里程
      ADD A,44H      ;45H,46H,47H,48h中放T秒里程
      DA A              ;49H,4AH,4b,4c中放T秒速度 ;显示速度放4dH,4eH,4fH
      MOV 44H,A

      MOV A,43H
      ADDC A,#0H
      DA A
      MOV 43H,A

      MOV A,42H
      ADDC A,#0H
      DA A
      MOV 42H,A

      MOV A,41H
      ADDC A,#0H
      DA A
      MOV 41H,A


      DJNZ R1,QQQ

      MOV R1,#50
  QQQ1:MOV A,3fH
      ADD A,43H
      DA A
      MOV 43H,A

      MOV A,42H
      ADDC A,#0H
      DA A
      MOV 42H,A

      MOV A,41H
      ADDC A,#0H
      DA A
      MOV 41H,A



      DJNZ R1,QQQ1
      MOV R1,#50
QQQ2:MOV A,3eH
      ADD A,42H
      DA A
      MOV 42H,A

      MOV A,41H
      ADDC A,#0H
      DA A
      MOV 41H,A


      DJNZ R1,QQQ2


      mov r1,#44h
      mov r0,#48h
      clr c
      LCALL BSUB
      MOV 4cH,A
      LCALL BSUB
      MOV 4bH,A
      lcall bsub
      mov 4Ah,a
      lcall bsub
      mov 49h,a

      MOV A,41H
      MOV 45H,A
      MOV A,42H
      MOV 46H,A
      MOV A,43H
      MOV 47H,A
      MOV A,44H
      MOV 48H,A

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

      mov 56h,#00h                 ;56,57,58,59h放速度(kmph)
      mov 57h,#00h
      mov 58h,#00h
      mov 59h,#00h
      MOV R1,#36
  QQQ59:MOV A,4cH
      ADD A,59H
      DA A
      MOV 59H,A

      MOV A,58H
      ADDC A,#0H
      DA A
      MOV 58H,A

      MOV A,57H
      ADDC A,#0H
      DA A
      MOV 57H,A

      MOV A,56H
      ADDC A,#0H
      DA A
      MOV 56H,A


      DJNZ R1,QQQ59

      MOV R1,#36
  QQQ58:MOV A,4bH
      ADD A,58H
      DA A
      MOV 58H,A

      MOV A,57H
      ADDC A,#0H
      DA A
      MOV 57H,A

      MOV A,56H
      ADDC A,#0H
      DA A
      MOV 56H,A



      DJNZ R1,QQQ58
      MOV R1,#36
QQQ57:MOV A,4aH
      ADD A,57H
      DA A
      MOV 57H,A

      MOV A,56H
      ADDC A,#0H
      DA A
      MOV 56H,A


      DJNZ R1,QQQ57


  MOV A,4bH
  ANL A,#0F0H
  SWAP A
  MOV 4DH,A

  MOV A,4bH                          ;速度显示(mps)4d,4e,4f
  ANL A,#0FH
  MOV 4eH,A

  MOV A,4cH
  ANL A,#0F0H
  SWAP A
  MOV 4fH,A
  
  MOV A,57H                   ;速度(kmph)显示放79,7a,7b,7c,7d,7e
  ANL A,#0FH
  MOV 79H,A

  MOV A,57H
  ANL A,#0F0H
  SWAP A                            
  MOV 7aH,A

  MOV A,57H
  ANL A,#0FH
  MOV 7bH,A

  MOV A,58H
  ANL A,#0F0H
  SWAP A
  MOV 7cH,A

  MOV A,58H
  ANL A,#0FH
  MOV 7dH,A

  MOV A,59H
  ANL A,#0F0H
  SWAP A
  MOV 7eH,A
  
  MOV A,47H                     ;50h,51h52h53h放里程显示
  ANL A,#0F0H
  SWAP A
  MOV 50H,A

  MOV A,47H
  ANL A,#0FH
  MOV 51H,A

  MOV A,48h
  ANL A,#0F0H
  SWAP A
  MOV 52H,A

  MOV A,48H
  ANL A,#0FH
  MOV 53H,A
  RET
bsub:mov a,#9ah
     subb a,@r0
     add a,@r1
     da a
     DEC r0
     DEC r1
     cpl c
     ret



DATAS:
      MOV A,2fH                        ;6d,6e,6f,70,71,72,73,74放时间显示
      anl a,#0fh
      MOV 6EH,A
      mov a,2fh
      anl a,#0f0h
      swap a
      MOV 6DH,A
      MOV A,30H
      anl a,#0fh
      MOV 71H,A
      mov a,30h
      anl a,#0f0h
      swap a
      MOV 70H,A
      MOV A,31H
      anl a,#0fh
      MOV 74H,A
      mov a,31h
      anl a,#0f0h
      swap a
      MOV 73H,A
      RET



dissudukmps:            ;速度kmph
    MOV   P2,#38H
    LCALL ENABLE

    MOV   P2,#0C0H ;位置
    LCALL ENABLE

      MOV DPTR,#TABLE3
      MOV   R1,#6
LOOPSUDU6:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPSUDU6


    MOV DPTR,#TABLE2
    MOV A,#10            ;XIE:
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e
    
    MOV   r0,#7ah        ;小数点前1
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    MOV   r0,#7bh        ;小数点前2
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    MOV   r0,#7ch        ;小数点前3
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    MOV A,#12            ;XIE.
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    inc r0               ;小数点后1
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e


      MOV DPTR,#TABLE7
      MOV   R1,#4
LOOPkmps:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPkmps
    RET

dissudu:
    MOV   P2,#38H
    LCALL ENABLE

    MOV   P2,#0C0H ;位置
    LCALL ENABLE

      MOV DPTR,#TABLE3
      MOV   R1,#6
LOOPSUDU:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPSUDU


    MOV DPTR,#TABLE2
    MOV A,#10            ;XIE:
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e


    MOV   r0,#4dh        ;小数点前1
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    MOV   r0,#4eh        ;小数点前2
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    MOV A,#12            ;XIE.
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    inc r0               ;小数点后1
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e


      MOV DPTR,#TABLE6
      MOV   R1,#3
LOOPmps:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPmps
    MOV DPTR,#TABLE4
      MOV   R1,#2
LOOPms:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPms
    RET

distime:            ;时间显示
    MOV   P2,#38H
    LCALL ENABLE

    MOV   P2,#0C0H ;位置
    LCALL ENABLE

    MOV DPTR,#TABLE5
      MOV   R1,#4
LOOPSHIJIAN:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPSHIJIAN

    mov dptr,#table2
    MOV   r0,#06ch   ;;;
    mov r1,#9
dlp:mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e
    inc r0
    djnz r1,dlp

    mov dptr,#table2
    mov r1,#3
qing:mov a,#11
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e
    djnz r1,qing
    ret


distenor:            ;路程显示
    MOV   P2,#38H
    LCALL ENABLE
    MOV   P2,#0c0H
    LCALL ENABLE

      MOV DPTR,#TABLE8
      MOV   R1,#6
LOOPtenor:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPtenor


    MOV DPTR,#TABLE2
    MOV A,#10            ;XIE:
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e


    MOV   r0,#50h        ;千
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    MOV   r0,#51h        ;百
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e

    inc r0               ;十
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e


    inc r0               ;个
    mov a,@r0
    movc a,@a+dptr
    mov p2,a
    setb rs
    clr rw
    clr e
    lcall delay1
    setb e


      MOV DPTR,#TABLE6
      MOV   R1,#1
LOOPm:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPm
    MOV DPTR,#TABLE4
      MOV   R1,#4
LOOPk:  MOV   A,#00H
    MOVC   A,@A+DPTR
    LCALL  ENABLE1
    INC   DPTR
    DJNZ   R1,LOOPk
    RET

shumu:           ;送霍尔脉冲
                 ;至3e,3f,40H,
     push psw
     push a
     clr EX1
     MOV A,#1
     ADD A,40H
     DA A
     MOV 40H,A
     JNC fanh

     MOV A,#1
     ADD A,3fH
     da  a
     MOV 3fH,A

     JNC fanh
     MOV A,#1
     ADD A,3eH
     da  a
     MOV 3eH,A

 fanh:
     setb EX1
      pop a
      pop psw
      reti






TABLE1: DB " control system "
table2: db "0123456789: ."
table3: db " speed"
table4: db "                "
table5:db "Time"
TABLE6: DB "mps"
TABLE7:DB  "kmph"
table8:db " tenor"

⌨️ 快捷键说明

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