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

📄 红外发送eeprom.asm

📁 红外线发送程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
             LCALL PUT
             MOV   A,CONBITH   			; 高8位控制字入A
             LCALL PUT   				; 发送8位
             CLR   CSCEF   	;片选			; BH1415写禁止
             CLR   DATAF   				;复位
             CLR   CLOCKF
             RET
;
             MOV   A,CONBITL   			;低8位控制字入A
             SETB  CSCEFF   	;片选			;BH1415使能(允许写)
             LCALL PUTTT
             MOV   A,CONBITH   			; 高8位控制字入A
             LCALL PUTTT   				; 发送8位
             CLR   CSCEFF   	;片选			; BH1415写禁止
             CLR   DATAFF   				;复位
             CLR   CLOCKFF  				;复位
             RET   						;返回
;
;字节发送子程序
PUT:         MOV   R3,#8   				;发送8位控制
             CLR   C   					;清C
PUT1:        RRC   A   					;带进位位右移(先发低位)
             MOV   DATAF,C   				;低位送至P3.0口
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             SETB  CLOCKF   				;锁存数据(上升沿时锁存数据)
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             CLR   CLOCKF   				;
             DJNZ  R3,PUT1   			;8位未发完转PUT1再发
             RET   						; 8位发完结束
;
;字节发送子程序
PUTT:        CLR   C   					;清C
PUTT1:       RLC   A   					;带进位位右移(先发低位)
             MOV   DATA,C   				;低位送至P3.0口
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             CLR  CLOCK   				;锁存数据(上升沿时锁存数据)
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             SETB   CLOCK
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             DJNZ  R3,PUTT1   			;8位未发完转PUT1再发
             RET
;
;字节发送子程序
PUTTT:       MOV   R3,#8
             CLR   C   					;清C
PUTTT1:      RRC   A   					;带进位位右移(先发低位)
             MOV   DATAFF,C   				;低位送至P3.0口
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             CLR  CLOCKFF   				;锁存数据(上升沿时锁存数据)
             NOP   						;延时4微秒
             NOP   						;
             NOP   						;
             NOP   						;
             SETB   CLOCKFF
             DJNZ  R3,PUTTT1   			;8位未发完转PUT1再发
             RET
;*************************************
;*                                   *
;*         编 码 发 射 程 序         *
;*                                   *
;*************************************
;发送扫描
OUT_HongWaiXian:MOV     A,#0CH     ;小位指数
                LCALL   REMOTE
                MOV     A,26H     ;26H
                INC     A
                INC     A
                LCALL   REMOTE
                MOV     A,#0DH     ;个位指数
                LCALL   REMOTE
                MOV     A,27H      ;27H
                INC     A
                INC     A
                LCALL   REMOTE
                MOV     A,#0EH     ;十位指数
                LCALL   REMOTE
                MOV     A,28H      ;28H
                INC     A
                INC     A
                LCALL   REMOTE
                MOV     A,#0FH     ;百位指数
                LCALL   REMOTE
                MOV     A,29H      ;29H
                INC     A
                INC     A
                LCALL   REMOTE
                RET
;
REMOTE:         MOV     R1,A	   ;装入发射脉冲个数
                LJMP    OUT3	   ;转第一个码发射处理
OUT:            MOV     R0,#55H	     ;1MS宽低电平发射控制数据
OUT1:           SETB    ET1	  	 	 ;开T1中断
                SETB    TR1	   		 ;开启定时器T1
                NOP	   				 ;延时
                NOP
                NOP
                NOP
                NOP
                DJNZ    R0,OUT1	     ;时间不到转OUT1再循环
                MOV     R0,#32H	     ;1MS高电平间隙控制数据
OUT2:           CLR     TR1	  	     ;关定时器T1
                CLR     ET1	  	     ;关T1中断
                CLR     HONG	   	 ;关脉冲输出
                NOP	   		    	 ;空操作延时
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                DJNZ    R0,OUT2	  	 ;时间不到转OUT2再循环
                DJNZ    R1,OUT	  	 ;脉冲未发完,转OUT再循环发射
                LCALL   DL10MS
                RET	  				 ;
OUT3:           MOV     R0,#0FFH	 ;装发谢3MS宽控制数据
                LJMP    OUT1	   	 ;转OUT1
;
;513微秒延时子程序
DL513:       MOV   R3,#0FFH
DL513LOOP:   DJNZ  R3,DL513LOOP
             RET
;
;1毫秒延时子程序(LED点亮用)
DL1MS:       MOV   R4,#02H
DL1MSLOOP:   LCALL DL513
             DJNZ  R4,DL1MSLOOP
             RET
;
;10毫秒延时子程序(消抖动用)
DL10MS:      MOV   R6,#0AH
DL10MSLOOP:  LCALL DL1MS
             DJNZ  R6,DL10MSLOOP
             RET
;
DL05S:       LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             LCALL DL10MS
             RET
;
XIANSHIA:    LCALL  JIESHUZHIINB
             MOV    A,41H
             MOV    DPTR,#TABDZI
             MOVC   A,@A+DPTR
             MOV    LCDH,A
             MOV    LCDL,#0
             LCALL  HECHENG
             MOV    A,42H
             MOV    DPTR,#TABDZI
             MOVC   A,@A+DPTR
             MOV    LCDH,A
             MOV    LCDL,#7
             LCALL  HECHENG
             MOV    A,43H
             MOV    DPTR,#TABDZI
             MOVC   A,@A+DPTR
             MOV    LCDH,A
             MOV    LCDL,#14
             LCALL  HECHENG
             MOV    A,44H
             MOV    DPTR,#TABDZI
             MOVC   A,@A+DPTR
             MOV    LCDH,A
             MOV    LCDL,#21
             LCALL  HECHENG
             MOV    B,#01110001B      ;小数点1
             LCALL  LCDPLAY
             MOV    B,#01111101B      ;小数点2
             LCALL  LCDPLAY
             MOV    B,#01111001B      ;小数点3
             LCALL  LCDPLAY
             RET
;位数指示
JIESHUZHIINB: MOV    A,WEISHU
             CJNE   A,#01H,NAGEAIQU1111
             MOV          41H,#0AH
             MOV          42H,#0AH
             MOV          43H,28H
             MOV          44H,#0AH
             AJMP   JIESHUZHOUT5555
NAGEAIQU1111: CJNE   A,#02H,NAGEAIQU2222
             MOV          41H,#0AH
             MOV          42H,27H
             MOV          43H,#0AH
             MOV          44H,#0AH
             AJMP   JIESHUZHOUT5555
NAGEAIQU2222:   CJNE   A,#03H,NAGEAIQU3333
             MOV          41H,26H
             MOV          42H,#0AH
             MOV          43H,#0AH
             MOV          44H,#0AH
             AJMP   JIESHUZHOUT5555
NAGEAIQU3333:   CJNE   A,#04H,JIESHUZHOUT4444
             MOV          41H,#0AH
             MOV          42H,#0AH
             MOV          43H,#0AH
             MOV          44H,29H
             AJMP   JIESHUZHOUT5555
JIESHUZHOUT4444:  CJNE  A,#05H,JIESHUZHOUT5555
             MOV          41H,26H
             MOV          42H,27H
             MOV          43H,28H
             MOV          44H,29H            
JIESHUZHOUT5555:RET
;读字节
DUZIJIE:MOV     A,#10100000B
	MOV	R3,#3
	CLR	P3.5	;LCD片选
        LCALL	PUTT
        RET
;
LCDPLAY:LCALL   DUZIJIE
        MOV	A,B	;字1
	MOV	R3,#10
	LCALL	PUTT
	SETB	P3.5	;LCD片选
	SETB	P3.6	;LCD时钟
	SETB	P3.7	;LCD数据
        RET
;红外发送个数
TABHONG: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
;LCD段码
TABDZI:	DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,02H,00H
;            0   1    2   3    4    5   6    7    8     9    灭     
;读
Byte_read:
      MOV   ISP_CONTR,#ENABLE_ISP
      MOV   ISP_CMD,#01             ;读指令
      MOV   ISP_ADDRH,DPH
      MOV   ISP_ADDRL,DPL
      CLR   EA
      MOV   ISP_TRIG,#46H
      MOV   ISP_TRIG,#0B9H
      NOP
      MOV    A,ISP_DATA
      SETB  EA
      ACALL  IAP_Disable
      RET
;字节编程---写
bute_program:
      MOV  ISP_CONTR,#ENABLE_ISP
      MOV  ISP_CMD,#02H          ;写指令
      MOV  ISP_ADDRH,DPH
      MOV  ISP_ADDRL,DPL
      MOV  ISP_DATA,A
      CLR  EA
      MOV  ISP_TRIG,#46H
      MOV  ISP_TRIG,#0B9H
      NOP
      SETB  EA
      ACALL IAP_Disable
      RET
;擦除扇区
sector_erase:
      MOV  ISP_CONTR,#ENABLE_ISP
      MOV  ISP_CMD,#03H         ;擦除扇区指令
      MOV  ISP_ADDRH,DPH
      MOV  ISP_ADDRL,DPL
      CLR  EA
      MOV  ISP_TRIG,#46H
      MOV  ISP_TRIG,#0B9H
      NOP
      SETB  EA
      ACALL IAP_Disable
      RET
;
trigger_ISP:
      CLR  EA
      MOV  ISP_TRIG,#46H
      MOV  ISP_TRIG,#0B9H
      NOP
      SETB  EA
      RET
;
IAP_Disable:
      MOV  ISP_CONTR,#0
      MOV  ISP_CMD,#0
      MOV  ISP_TRIG,#0
      RET
;  
             END   							;程序结束

⌨️ 快捷键说明

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