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

📄 iicmwp.asm

📁 本程序实现ASCII码转化为一位十六进制数 原ASCII码在SOU中 结果在SOU中,若原ASCII码超出范围则STATUS:C为1
💻 ASM
字号:
;********************IICMWP********************
;本程序实现IIC主控方式连续发送数据。
;入口参数:从机地址在SADR中,待发送的数据首地址在DADR中,EEPROM字地址在SADRH中,
;          数据个数在CNT中。
;出口参数:无。
;占用资源:W,STATUS,FSR,020H~023H,028H,07FH,07EH,17FH,SSP模块,1重堆栈。
;说明:    1.使用该程序需在中断入口程序中填入如下两条指令
;           BTFSC	PIR1,SSPIF
;           GOTO	MWPINT
;          2.同步时钟频率为100K
;          3.本程序可以向EEPROM中写入一页数据:SADRH中为字地址,DADR为数据首地址,
;           SADR中为EEPROM的控制字,CNT中为字节数(不能超过一页)。

           IFNDEF       IICMWP1
            #DEFINE     IICMWP1

SAVEW      EQU          07FH            ;现场保护中保存W的地址
SAVES      EQU          07EH
            
            INCLUDE     "INITIICM.ASM"

IICMWP     MOVF         DADR,W
           MOVWF        FSR
           GOTO         INITIICM        ;初始化
           
;*****************中断服务程序***************
MWPINT     MOVWF        SAVEW
           SWAPF        STATUS,W
           CLRF         STATUS
           MOVWF        SAVES           ;保护现场
           
           BCF          PIR1,SSPIF
           BSF          STATUS,C
           RLF          TEMP1,F
           BTFSS        TEMP1,1
           GOTO         PROG001         ;第一次进入中断
           BTFSS        TEMP1,2
           GOTO         PROG002         ;第二次进入中断
           MOVF         CNT,F
           BTFSC        STATUS,Z
           GOTO         PROG004         ;数据发送完毕
           GOTO         PROG003         ;第三次进入中断

PROG001    MOVF         SADR,W
           ANDLW        0FEH            ;R/W=0,发送模式
           MOVWF        SSPBUF          ;发送地址
           GOTO         DONE19
PROG002    MOVF         SADRH,W
           MOVWF        SSPBUF          ;发送字地址 
           GOTO         DONE19
PROG003    MOVF         INDF,W
           MOVWF        SSPBUF          ;发送数据
           INCF         FSR,F
           DECF         CNT,F
           GOTO         DONE19                  
PROG004    BSF          STATUS,RP0
           BSF          SSPCON2,PEN     ;发送停止位
           BTFSC        SSPCON2,PEN     ;停止位结束? 
           GOTO         $-1
           BCF          STATUS,RP0                 
           BCF          SSPCON,SSPEN    ;释放总线
           BSF          STATUS,RP0
           BCF          PIE1,SSPIE      ;SSP中断禁止
           BCF          STATUS,RP0
           BCF          PIR1,SSPIF
           
DONE19     SWAPF        SAVES,W
           MOVWF        STATUS
           SWAPF        SAVEW,F
           SWAPF        SAVEW,W         ;恢复现场
           RETFIE
          ENDIF

⌨️ 快捷键说明

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