📄 uartsend.asm.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 + -