; Title : UART test ; By : komi ; Last update : 2007.01.07 ; Version : 0.11 ;------------------------------------------------------------------ ; use MPLAB IDE v7.20 ;------------------------------------------------------------------ PROCESSOR PIC16F88 INCLUDE P16F88.INC __CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _PWRTE_ON & _MCLR_ON & _WDT_OFF & _INTRC_IO __CONFIG _CONFIG2, _IESO_ON & _FCMEN_ON __IDLOCS H'0100' ; Ver. 1.00 ERRORLEVEL -302 ; bank message 抑制 ERRORLEVEL -312 ; page message 抑制 RADIX DEC ; base 10 ;------------------------------------------------------------------ ; Pin use plan ;------------------------------------------------------------------ ; Definition ;#define use_function ; 関数版を使用する時は定義する. #define CLOCK_FREQ D'8000000' ; CPUの動作周波数を定義する. #define _NOP_ NOP ; ブレークポイントを指定用. ; 不要になったら NOP を空白に変更する. ; マクロ行にはブレークポイントを設定できないため. ;------------------------------------------------------------------ ; Macros INCLUDE "../template/ope.inc" INCLUDE "../template/osc.inc" INCLUDE "../template/uart.inc" ;------------------------------------------------------------------ ; Variable UDATA rdata res 1 UDATA_SHR ;------------------------------------------------------------------ STARTUP CODE GOTO start_main NOP NOP NOP GOTO interrupt_main ;------------------------------------------------------------------ C_MAIN CODE start_main: set_oscillator_V1 clk8MHz wait_oscillator_stable banksel TRISB BSF TRISB, 2 ; in RX BCF TRISB, 5 ; out TX UART_init D'9600' ; set 9600bps ; send "START!" UART_send_string_V2 test_msg rc_loop: ; rdata = recive data U1_UART_receive_char rdata ; if (rdata < 'a' || rdata > 'z') goto rc_skip if_U1V1_goto rdata, _IsSmallerThan_, A'a', rc_skip if_U1V1_goto rdata, _IsLargerThan_, A'z', rc_skip ; rdata = rdata - ('a'-'A') sub_U1V1 rdata, (A'a'-A'A') rc_skip: ; send data (rdata) UART_send_char_U1 rdata GOTO rc_loop ;------------------------------------------------------------------ ; 割込みメイン C_INTR CODE interrupt_main: RETFIE ;------------------------------------------------------------------ C_DATA CODE test_msg: DT "start!\r\n", 0 ;------------------------------------------------------------------ ;------------------------------------------------------------------ END