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

📄 tx2120.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************TX2120********************
;本程序实现MCU向2120发送多个字节数据。
;入口参数:波特率延时因子在SOU中,带发送数据的首地址在SADR中,字节数在W中。
;出口参数:无。
;占用资源:W,STATUS,FSR,RD0,RD2,020H,023H,024H,028H~02AH,3重堆栈。
;说明:    1.SOU的计算方法为: SOU=Fosc/(16*bit2120)-4。其中,Fosc为单片机的主频,
;            bit2120为由硬件选择的2120的波特率。
;          2.要保证MCP2120和单片机的波特率匹配。
;          3.本程序用在硬件选择波特率的情况下。
                            
           IFNDEF       TX21201
            #DEFINE     TX21201

#define     RXD         PORTD,1     ;来自 MCP2120 的信号
#define     TXD2120     PORTD,2     ;送到 MCP2120 的信号
#define     EN2120      PORTD,0     ;2120使能禁止信号

;*****************************************************************
 IFNDEF     RX21201
DELAY3	    MOVWF	TEMP2       ;产生波特率的延时程序
DELLP	    NOP
            DECFSZ	TEMP2,F
	    GOTO	DELLP
	    RETLW	0
 ENDIF
;********************发送一个字节数据**************************
TXSER       BCF         TXD2120     ;起始位
            NOP                    
            NOP
            NOP
            NOP            

TXDB        MOVF        TEMP3,W
            CALL        DELAY3
            NOP
            NOP
            BTFSC       SOU,0       ; bit=0 则 rxd=0 
            GOTO        TXDB1       ; bit=1 则 rxd=1

TXDB0       NOP
            NOP
            BCF         TXD2120     ;BIT=0
            RRF         SOU,F       ;字节移位
            DECFSZ      CNT,F       ;8为移完了吗?
            GOTO        TXDB        
            GOTO        TXSP
					
TXDB1       NOP                     
            BSF         TXD2120
            RRF         SOU,F       ;字节移位
            DECFSZ      CNT,F       ;8位移完了吗?
            GOTO        TXDB        
            GOTO        TXSP

TXSP        NOP            
            NOP
            NOP
            MOVLW       D'08'       
            MOVWF       CNT
            MOVF        TEMP3,w
            CALL        DELAY3
            BSF         TXD2120     ;第8个数据
	    MOVF	TEMP3,W     ;结束位
	    CALL	DELAY3
	    MOVF	TEMP3,W     ;对于速度较低的系统,再延时	
	    CALL	DELAY3	
  	    RETLW	0
;****************************************************************
TX2120      MOVWF       TEMP1        ;字节数存放在TEMP1
            MOVF        SADR,W
            MOVWF       FSR
            BSF         TXD2120      ;设置USART的静止状态
            BSF         STATUS,RP0
            BCF         TRISD,0      ;EN2120为输出
            BCF         TRISD,2      ;TXD2120为输出
            BCF         STATUS,RP0
                                    
            MOVLW       D'08'       ;位计数
            MOVWF       CNT
            MOVF        SOU,W       ;设定宿主机波特率
            MOVWF	TEMP3     
           
            BSF         EN2120      ;2120使能
	    MOVLW	D'230'	    
	    CALL	DELAY3      ;延时1MS

LOOP113     MOVF        INDF,W
            MOVWF       SOU                            
            CALL        TXSER       ;发送数据
            INCF        FSR,F
            DECFSZ      TEMP1,F
            GOTO        LOOP113     ;发送下一个数据
            BCF         EN2120      ;2120禁止工作
            RETURN

           ENDIF

⌨️ 快捷键说明

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