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

📄 ph2.asm

📁 用51单片机及MT8880制作的可以识别电话号码的ASM源程序。
💻 ASM
字号:
         ORG  0000H
         LJMP  MAIN
          ORG  0003H
          LJMP  INTRET
         ORG  000BH
         LJMP  TIMRET
          ORG  0013H
          LJMP  OUTINT1                    ; 外部中断1,遥控接收用
         ORG  0030H
MAIN:    MOV  P1,#0FFH
         SETB  P3.7                        ; 关灯
         LCALL  YS1S
         MOV  A,#90H              ; 1001 0000
         LCALL  WRMT88
       ;    MOV  A,#90H
       ;    LCALL  WRMT88
         MOV  A,#98H              ; 1001 1000
         LCALL  WRMT88            ; CRA
         MOV  A,#90H
         LCALL  WRMT88            ; 1001 0000 CRB
         MOV  A,#94H              ;94
         LCALL  WRMT88            ; 1001 1100

 REV:  LCALL  RDMT88
       JNB  ACC.2,REV
       LCALL  RDMT8A
         CLR  P3.7
         LCALL  YS80MS          ; 160MS
         SETB  P3.7
       ANL  A,#0FH
       CJNE  A,#0BH,REV         ; *
    HUIL: MOV  R3,#00           ; 3S内
    TTR:  MOV  R2,#0FFH
    BUS:  LCALL  RDMT88
          JNB  ACC.2,REVWAB
          LJMP  GOON            ; 有键按下
  REVWAB: DJNZ  R2,BUS
          DJNZ  R3,TTR
          LJMP  REV             ; 重来
    REVGG: CJNE  A,#0BH,REV     ; 这里先按8 *的情况,只要按*8即可,刚才另个还有用
           LJMP  TTR            ; 再从0BH *开始
    GOON: LCALL  RDMT8A
          CLR  P3.7
          LCALL  YS80MS
          SETB  P3.7
          ANL  A,#0FH
          CJNE  A,#0BH,REVGG    ; *
     TT:  CLR  P3.7
           MOV  R3,#3
     PPT:  MOV  R2,#20
    PPQT:  MOV  B,#20
   JXYS:   LCALL  YS808
           CPL  P3.5            ; 绿灯亮,SPK响SPK
           DJNZ  B,JXYS
           DJNZ R2,PPQT
           SETB  P3.5
           LCALL  YS260MS
           LCALL  YS260MS
           DJNZ  R3,PPT
           SETB  P3.7
           LJMP  REV












  WRMT88: CLR  P1.7      ; CLK   0           ; CLK  RW   CS   RS0
          CLR  p1.5      ; CS    0
          SETB  P1.4     ; RS0   1
          CLR  P1.6      ; RW    0
          MOV  P1,A      ; 1001              ;  0    0    0    1 写控制寄存器
          SETB  p1.7     ; clk 1
          NOP
          CLR  P1.7      ; CLK 0
          SETB  P1.6     ; RW  1
          CLR  P1.4      ; RS  0
          SETB  P1.5     ; CS  1
          RET

 RDMT88:  MOV  A,#0FFH
          MOV  P1,A
          NOP
          CLR  P1.7      ; CLK              ; CLK  RW   CS   RS0
          CLR  p1.5      ; CS
          SETB  P1.4     ; RS0
          SETB  P1.6     ; RW               ;  0    0    0    1 写控制寄存器
          SETB  p1.7     ; clk
          MOV  A,P1
          NOP
          CLR  P1.7      ; CLK
          NOP
          CLR  P1.6      ; RW
          CLR  P1.4      ; RS
          SETB  P1.5     ; CS
          RET

  RDMT8A: MOV  A,#0FFH
          MOV  P1,A
          NOP
          CLR  P1.7      ; CLK              ; CLK  RW   CS   RS0
          CLR  p1.5      ; CS
          CLR  P1.4      ; RS0
          SETB  P1.6     ; RW               ;  0    1    0   0 写控制寄存器
          SETB  p1.7     ; clk
          MOV  A,P1
          NOP
          CLR  P1.7      ; CLK
          NOP
          CLR  P1.6      ; RW
          SETB  P1.4     ; RS
          SETB  P1.5     ; CS
          RET




      ;   CLR  IE1                           ; 中断标志
      ;   SETB  EA
      ;   SETB  IT1                          ; 下降沿
      ;   SETB  EX1                          ; EX1允许 , 遥控解码程序
         LJMP  $



OUTINT1:   CLR  EA                          ; 遥控引起的中断,PT2213用户遥控
           SETB  P3.7
  ZJEXIT:  CLR  IE1
           SETB  EA
           RETI


 YS808:   MOV  R7,#06H                 ; FOR  12.00M HZ FOR - PT2213
  YS1:    MOV  R6,#50H
  YS2:    DJNZ  R6,YS2
          DJNZ  R7,YS1
          RET
 YS10MS:  MOV  R6,#22                  ; 11.291MS
 YSYS0:   MOV  R7,#0FFH
          DJNZ  R7,$
          DJNZ  R6,YSYS0
          RET
 YS80MS:  MOV  R6,#9CH
  YS80A:  MOV  R7,#0FFH
          DJNZ  R7,$
          DJNZ  R6,YS80A
          RET
YS130MS:  MOV  R6,#0FDH
 YSYS1:   MOV  R7,#0FFH
          DJNZ  R7,$
          DJNZ  R6,YSYS1
          RET
 YS260MS: MOV  R5,#2
  YS26A:  LCALL  YS130MS
          DJNZ  R5,YS26A
          RET
 YS1S:    MOV  R5,#07H
 YS1SA:   LCALL  YS130MS
          DJNZ  R5,YS1SA
          RET
  YS2S:   MOV  R5,#14
 YS1SB:   LCALL  YS130MS
          DJNZ  R5,YS1SB
          RET

INTRET:  NOP                   ; 软件冗余防跑飞
         RETI
TIMRET:  NOP
         RETI
      LJMP  MAIN               ; 软件冗余防跑飞
      ORG   03F0H
      LJMP  MAIN

⌨️ 快捷键说明

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