?? uart_t2.a51
字號:
$INCLUDE (reg_c51.INC)
org 000h
ljmp begin
org 23h
ljmp serial_IT
;/**
; * FUNCTION_PURPOSE: This file set up uart in mode 1 (8 bits uart) with
; * timer 2 in baud rate generator mode.
; * FUNCTION_INPUTS: void
; * FUNCTION_OUTPUTS: void
; */
org 0100h
begin:
MOV SCON,#50h; /* uart in mode 1 (8 bit), REN=1 */
ANL T2CON,#0F0h; /* EXEN2=0; TR2=0; C/T2#=0; CP/RL2#=0; */
ORL T2CON,#30h; /* RCLK = 1; TCLK=1; */
MOV TH2,#0FFh; /* init value */
MOV TL2,#0FDh; /* init value */
MOV RCAP2H,#0FFh; /* reload value, 115200 Bds at 11.059MHz */
MOV RCAP2L,#0FDh; /* reload value, 115200 Bds at 11.059MHz */
SETB ES; /* Enable serial interrupt */
SETB EA; /* Enable global interrupt */
SETB TR2; /* Timer 2 run */
JMP $; /* endless */
;/**
; * FUNCTION_PURPOSE: serial interrupt, echo received data.
; * FUNCTION_INPUTS: P3.0(RXD) serial input
; * FUNCTION_OUTPUTS: P3.1(TXD) serial output
; */
serial_IT:
JNB RI,EMIT_IT ; test if it is a reception
CLR RI ; clear reception flag for next reception
MOV A,SBUF ; read data from uart
MOV SBUF,A ; write same data to uart
LJMP END_IT
EMIT_IT:
CLR TI ; clear transmition flag for next transmition
END_IT:
RETI
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -