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

📄 uartsend.asm.bak

📁 完整的PIC学习程序示例 软件功能: RT1602C驱动 UART串口输出
💻 BAK
字号:
;/**************************************************************************
;*                                                                         *
;*         Copyright (c) 2006 by JINRUN Technology Co., Ltd.               *
;*  Title  :    FPPA TM demo board---PIC PARTY
;*  FUN    :    AD,LCM Drive,Key input,LED flash,etc.,   
;*  MCU    :    PIC16F877A(PIC),PDK80C08(PDK)[FPPA TM]
;*  LCD    :    RT1602C
;*  OSC    :    8MHz(ext. HT) 
;*  WDT    :    OFF                                      
;*  Author :    Raker.Yang                                                 *
;*  FPPA TM 简介:FPPA TM是世界首创的多核心单晶片,所有RAM和ROM却能够共享
;*                目前支持8个核心(8路独立PC,STACK,ACC等)
;*                既然有了独立多核心,跑多任务程序也就更简单了。
;*                更重要的是,它可以非常方便的扩展MCU外围,如,PWM,IIC,UART等。
;*  如果你对FPPA TM技术感兴趣,欢迎访问笔者博客 http://gongkong.gkbk.com
;*  或加入作者QQ:595142970, QQ群25644462
;*  同时欢迎各路商家前来进行方案合作!
;*
;*  声明:本资料仅供个人学习PIC或FPPA TM软件设计参考,任何人都可以转载此资料。
;*        但任何单位或个人都不能将此资料作为商业用品。本资料可能存在一些缺陷,
;*        如果你将本资料用于产品,所引起的一切后果,均由使用者承担
;*                                                                        *
;**************************************************************************/
;
;---------UART SEND--------------------------------------
; Name		:UART_SENT
; Input		:MODE_REG(C), AD_VAL_REGL_BUF(D), S_LCD_DRV_REQ(C)
; Output	:PORTC.0,PORTC.1,TX(RC6)
; Temp Reg	:
; Function	:根据不同的模式,选择输出端口地址信号和发送数据
;----------------------------------------------
UART_SENT:
	BCF     TIMER_FLAG, UART_SENT_FLAG
	BTFSS   SYS_STATUS, UART_SENT_EN
	GOTO    UART_SENT_RET
	BTFSS   LCD_DRV_REQ, SCREEN_DRV_REQ
	GOTO    UART_SENT_RET
	BCF     LCD_DRV_REQ, SCREEN_DRV_REQ	
	MOVLW   SentToP1
	XORWF   MODE_REG, W
	BTFSC   STATUS, Z	
	GOTO    SENT_DATA_TO_P1
	MOVLW   SentToP2
	XORWF   MODE_REG, W
	BTFSC   STATUS, Z
	GOTO    SENT_DATA_TO_P2
	MOVLW   SentToP3
	XORWF   MODE_REG, W
	BTFSC   STATUS, Z
	GOTO    SENT_DATA_TO_P3
	MOVLW   SentToPall
	XORWF   MODE_REG, W
	BTFSC   STATUS, Z
	GOTO    SENT_DATA_TO_Pall
UART_SENT_RET:
	RETURN
SENT_DATA_TO_P1:
        BCF     ADRO0
        BCF     ADRO1
        GOTO    SENT_DATA_COM
SENT_DATA_TO_P2:
	BSF     ADRO0
	BCF     ADRO1
	GOTO    SENT_DATA_COM
SENT_DATA_TO_P3
	BCF     ADRO0
	BSF     ADRO1
	GOTO    SENT_DATA_COM
SENT_DATA_TO_Pall:
	BSF     ADRO0
	BSF     ADRO1
SENT_DATA_COM:
#if 1		
	BTFSS   PIR1, TXIF
	GOTO    $ - 1
	MOVLW   'T'	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms	
	;	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'E'	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'S'		
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'T'
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;	
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1
	MOVLW   ' '	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms	
	;
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'V'	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'O'
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;	
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'L'	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'T'	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'A'	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'G'
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;	
	
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   'E'	
	MOVWF   TXREG	
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   '='
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;	
	
	BTFSS   PIR1, TXIF
	GOTO    $ - 1	
	MOVLW   ' '	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms		
;		
;	BTFSS   PIR1, TXIF
;	GOTO    $ - 1
;	MOVLW   '0'
;	MOVWF   TXREG
;	BTFSS   PIR1, TXIF
;	GOTO    $ - 1	
;	MOVLW   'x'	
;	MOVWF   TXREG
#endif	
;
;	MOVLW   ' '
;	BTFSS   PIR1, TXIF
;	GOTO    $ - 1
;	MOVWF   TXREG	
;
	BTFSS   PIR1, TXIF
	GOTO    $ - 1												
	SWAPF   AD_VAL_REGL_BUF, W
	ANDLW   0x0F
	CALL    HEX_OUTPUT	
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;
NEXT_NIDDLE_TX:
        BTFSS   PIR1, TXIF
        GOTO    NEXT_NIDDLE_TX        	
	MOVF    AD_VAL_REGL_BUF, W
	ANDLW   0x0F
	CALL    HEX_OUTPUT
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
	;
	MOVLW   'H'
	BTFSS   PIR1, TXIF
	GOTO    $-1
	MOVWF   TXREG
	MOVLW   0x0c    
	CALL    DELAYTIME    ;delay about 2ms
;
	CALL    ENTER_INPUT
	GOTO    UART_SENT_RET    
;	 		
	MOVLW   ' '
	BTFSS   PIR1, TXIF
	GOTO    $-1
	MOVWF   TXREG
	INCF    LINE_CHAR_CNT
	MOVF    LINE_CHAR_CNT, W
	XORLW   0x0A
	BTFSC   STATUS, Z
	GOTO    SENT_LINE_FEED	
	GOTO    UART_SENT_RET
SENT_LINE_FEED:
	CLRF    LINE_CHAR_CNT
;	CALL    LINE_FEED
	CALL    ENTER_INPUT
	GOTO    UART_SENT_RET	
;-------The end of UART_SENT SUBROUTINE----------------	
;
;------------ENTER_INPUT--------------------------------
;Name		:ENTER_INPUT
;Input		:void
;Output		:void
;Function	:输出换行功能
;----------------------------------------
ENTER_INPUT:
	MOVLW   0x0A
	BTFSS   PIR1, TXIF
	GOTO    $-1
	MOVWF   TXREG
	MOVLW   0x0D
	BTFSS   PIR1, TXIF
	GOTO    $-1
	MOVWF   TXREG
	RETURN
;------------ENTER_INPUT END------------------------------
;		       		
;------------LINE FEED--------------------------------
;Name		:LINE_FEED
;Input		:void
;Output		:void
;Function	:输出换行功能
;----------------------------------------
LINE_FEED:
	MOVLW   0x0D
	BTFSS   PIR1, TXIF
	GOTO    $-1
	MOVWF   TXREG
	RETURN
;------------ENTER_INPUT END------------------------------	
			        		

⌨️ 快捷键说明

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