?? w77e516雙串口演示程序.txt
字號:
;****************************************************
;W77E516雙串口演示程序
;串口0發送00H-0FH的16個數據,用定時器2作為波特率發生器
;串口1發送10H-1FH的16個數據,用定時器1作為波特率發生器
;長沙菊陽微電子有限公司 www.jywdz.com
;****************************************************
$nomod51
#include "D:\Keil\C51\ASM\reg520.inc" ;請根據您計算機上的Keil目錄進行修改
ORG 0000H
LJMP START
ORG 30H
START:
MOV SP,#5FH ;初始化堆棧
;串口0發送00H-0FH的16個數據
MOV SCON0,#01000000B ;串口0工作于方式1
MOV A,#00H ;待送的第一個數據
MOV R1,#16 ;待送的數據個數
MOV RCAP2H,#0FFH
MOV RCAP2L,#0B8H ;4800波特,#B8h 11.0592M;#88h 18.432M;#7dh 20M;#70h 22.1184M
MOV TH2,#0FFH
MOV TL2,#0B8H ;4800波特,#B8h 11.0592M;#88h 18.432M;#7dh 20M;#70h 22.1184M
MOV PCON,#00H
SETB RCLK
SETB TCLK
SETB TR2
SEND0: MOV SBUF0,A
LOOP0: JBC TI,NEXT0 ;是否送完從00H開始的16個數據?
AJMP LOOP0
NEXT0: CALL DELAY ;延時
INC A
DJNZ R1,SEND0
;串口1發送10H-1FH的16個數據
MOV TMOD,#00100000B ;定時器T1設置為方式2作波特率發生器
MOV TH1,#0FAH ;4800波特定時初值:FA,11.0592M;F6,18.432M;F5,20M;F4,22.1184M
MOV TL1,#0FAH
SETB TR1 ;定時器T1開始運行。
MOV SCON1,#01000000B ;串口1工作于方式1
MOV A,#10H ;待送的數據
MOV R1,#16
SEND1: MOV SBUF1,A
LOOP1: JBC TI1,NEXT1 ;是否送完從10H開始的16個數據?
AJMP LOOP1
NEXT1: CALL DELAY ;延時
INC A
DJNZ R1,SEND1
SJMP $
;延時程序
DELAY:
MOV R7,#10
DELAY1: MOV R6,#200
DELAY2: NOP
NOP
NOP
NOP
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -