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

📄 hong.asm

📁 红外线发射程序 可以利用c51单片机 和红外线发射管简单元件就可以无线传播了
💻 ASM
字号:
count1  data     054H
count2  data     053H
flag    data     033H
iraddr1   data    032H
iraddr2   data    030H
endcount1 data   031h
endcount2 data  0e1h
op        equ     20H.0
  LJMP    begai
      NOP      
    NOP      
      NOP      
      NOP      
      NOP      
      NOP      
       NOP      
     NOP      
    LJMP     timeint
main:           CLR      A
           MOV      count1,A
           MOV      count2,A
           MOV      flag,A
           CLR      op
           CLR      P3.4
           SETB     EA
           MOV      TMOD,#0x11
           SETB     ET0
           MOV      TH0,#0xFF
           MOV      TL0,#0xE8
           MOV      iraddr1,#0x03
           MOV      iraddr2,#0xFC
           SETB     TR0
main1:     LCALL    delay
           MOV      R7,#count2
           LCALL    sendirdata
           SJMP    main1
	   using  0 
timeint:    
           
          PUSH     ACC
          PUSH     PSW
          MOV      TH0,#0xFF
          MOV      TL0,#0xE6
          INC       count2

          MOV      A,count2
          JNZ      INTER11
          INC      count1
INTER11:  MOV      A,flag
          CJNE     A,#0x01,INTER22
          CPL      op
          SJMP     INTER33
INTER22:CLR        op
INTER33:MOV        C,op
          MOV      P3.4,C
          POP      PSW
          POP      ACC
RETI


sendirdata:
         MOV      R6,0x07
         MOV      endcount1,#0x00
         MOV      endcount2,#0xE1
         MOV      flag,#0x01
         CLR      A
         MOV      count1,A
         MOV      count2,A
ir2:     CLR      C
         MOV      A,count2
         SUBB     A,endcount2
         MOV      A,count1
         SUBB      A,endcount1
         JC       ir2
         MOV      endcount1,#0x00
         MOV      endcount2,#0x75
          CLR      A
          MOV      flag,A
         MOV      count1,A
         MOV      count2,A
ir1:     CLR      C
         MOV      A,count2
         SUBB     A,endcount2
         MOV      A,count1
         SUBB     A,endcount1
         JC       ir1
         MOV      R6,iraddr1
         CLR      A
         MOV      R5,A
         MOV      R4,A
ir8:     MOV      endcount1,#0x00
         MOV      endcount2,#iraddr2
         MOV      flag,#0x01
         CLR      A
         MOV      count1,A
         MOV      count2,A
ir3:     CLR      C
         MOV      A,count2
         SUBB     A,endcount2
         MOV      A,count1
        SUBB     A,endcount1
         JC       ir3
         MOV      A,R6
         MOV      C,0xE0.7
         RRC      A
         ADD      A,ACC
         MOV      R3,A
         CLR      C
         MOV      A,R6
         SUBB     A,R3
         JZ       ir4
         MOV      endcount1,#0x00
         MOV      endcount2,#0x29
         SJMP     ir5
ir4:     MOV      endcount1,#0x00
         MOV      endcount2,#0x0F
ir5:         CLR      A
         MOV      flag,A
         MOV      count1,A
         MOV      count2,A
ir6:        CLR      C
         MOV      A,count2
         SUBB     A,endcount2
         MOV      A,count1
         SUBB     A,endcount1
         JC       ir6
         MOV      A,R6
         MOV      C,0xE0.7
         RRC      A
         MOV      R6,A
         INC      R5
         CJNE     R5,#0x00,ir7
         INC      R4
ir7:        MOV      A,R5
        XRL      A,#flag
        ORL      A,R4
        JNZ      ir8
        MOV      R6,iraddr2
        CLR      A
        MOV      R4,A
        MOV      R5,A
ir13:   MOV      endcount1,#0x00
        MOV      endcount2,#iraddr2
        MOV      flag,#0x01
        CLR      A
        MOV      count1,A
        MOV      count2,A
ir9:         CLR      C
        MOV      A,count2
        SUBB     A,endcount2
        MOV      A,count1
        SUBB     A,endcount1
        JC       ir9
        MOV      A,R6
        MOV      C,0xE0.7
        RRC      A
        ADD      A,ACC
        MOV      R3,A
        CLR      C
        MOV      A,R6
        SUBB     A,R3
        JZ       ir10
        MOV      endcount1,#0x00
        MOV      endcount2,#0x29
        SJMP     ir11
ir10:   MOV      endcount1,#0x00
        MOV   endcount2,#0x0F
ir11:         CLR      A
         MOV      flag,A
        MOV      count1,A
        MOV      count2,A
ir12:          CLR      C
         MOV      A,count2
         SUBB     A,endcount2
         MOV      A,count1
         SUBB     A,endcount1
           JC       ir12
          MOV      A,R6
           MOV      C,0xE0.7
           RRC      A
       MOV      R6,A
       INC      R5
       CJNE     R5,#0x00,ir14
       INC      R4
ir14:          MOV      A,R5
       XRL      A,#flag
        ORL      A,R4
         JNZ      ir13
    MOV      R6,0x07
      CLR      A      
      MOV      R4,A
     MOV      R5,A
ir20:     MOV      endcount1,#0x00
      MOV      endcount2,#iraddr2
      MOV      flag,#0x01
      CLR      A
     MOV      count1,A
     MOV      count2,A
ir15:       CLR      C
   MOV      A,count2
    SUBB     A,endcount2
   MOV      A,count1
    SUBB     A,endcount1
     JC       ir15
     MOV      A,R6
    MOV      C,0xE0.7
     RRC      A
   ADD      A,ACC
      MOV      R3,A
      CLR      C
       MOV      A,R6
      SUBB     A,R3
     JZ       ir16
  MOV      endcount1,#0x00
  MOV      endcount2,#0x29
     SJMP     ir17
ir16:     MOV  endcount1,#0x00
  MOV      endcount2,#0x0F
ir17:          CLR      A
    MOV      flag,A
     MOV      count1,A
    MOV      count2,A
ir18:        CLR      C
    MOV      A,count2
   SUBB     A,endcount2
    MOV      A,count1
    SUBB     A,endcount1
     JC       ir18
     MOV      A,R6
   MOV      C,0xE0.7
       RRC      A
      MOV      R6,A
      INC      R5
  CJNE     R5,#0x00,ir19
     INC      R4
ir19:         MOV      A,R5
    XRL      A,#flag
      ORL      A,R4
  JNZ      ir20
     MOV      A,R7
      CPL      A
       MOV      R6,A
      CLR      A
      MOV      R4,A
     MOV      R5,A
ir26:    MOV      endcount1,#0x00
   MOV      endcount2,#iraddr2
  MOV      flag,#0x01
      CLR      A
     MOV      count1,A
     MOV      count2,A
ir21:         CLR      C
    MOV      A,count2
    SUBB     A,endcount2
     MOV      A,count1
     SUBB     A,endcount1
     JC       ir21
      MOV      A,R6
    MOV      C,0xE0.7
      RRC      A
   ADD      A,ACC
      MOV      R7,A
      CLR      C
      MOV      A,R6
       SUBB     A,R7
   JZ       ir22
  MOV      endcount1,#0x00
  MOV      endcount2,#0x29
    SJMP     ir23
ir22:   MOV      endcount1,#0x00
   MOV      endcount2,#0x0F
ir23:       CLR      A
    MOV      flag,A
    MOV      count1,A
    MOV      count2,A
ir24:          CLR      C
     MOV      A,count2
   SUBB     A,endcount2
     MOV      A,count1
  SUBB     A,endcount1
    JC       ir24
     MOV      A,R6
   MOV      C,0xE0.7
      RRC      A
       MOV      R6,A
      INC      R5
   CJNE     R5,#0x00,ir25
       INC      R4
ir25:          MOV      A,R5
    XRL      A,#flag
     ORL      A,R4
   JNZ      ir26
  MOV      endcount1,#0x00
  MOV      endcount2,#iraddr2
  MOV      flag,#0x01
    CLR      A
    MOV      count1,A
     MOV      count2,A
ir27:       CLR      C
     MOV      A,count2
    SUBB     A,endcount2
     MOV      A,count1
    SUBB     A,endcount1
    JC       ir27
     CLR      A
    MOV      flag,A
      RET      
     
           delay:
      CLR      A
      MOV      R7,A
      MOV      R6,A
delay4:      CLR      A
      MOV      R5,A
      MOV      R4,A
delay5:      INC      R5
      CJNE     R5,#0x00,delay1
      INC      R4
delay1: MOV      A,R5
      XRL      A,#0x64
      ORL      A,R4
      JNZ     delay5
      INC      R7
      CJNE     R7,#0x00,delay2
      INC      R6
delay2: CJNE     R6,#0x01,delay4
      CJNE     R7,#P1,delay4
      RET      
begai:      MOV      R0,#0x7F
      CLR      A
delay3:MOV      @R0,A
      DJNZ      R0,delay3
      MOV        SP,#0x20
      LJMP     main
end

⌨️ 快捷键说明

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