单片机问题

以80C51串行口按工作方式1进行串行数据通信。假定波特率为1200波特,一中断方式传送数据,请编写全双工通信程序

第1个回答  2008-11-09
ORG 0000H
AJMP START ;转到初始化程序

ORG 0023H
AJMP PGUART ;转到串行中断服务子程序

START: MOV SP,#60H ;堆栈指针初始化
MOV P0,#0FFH ;P0端口初始化
MOV P1,#0FFH ;P1端口初始化
MOV P2,#0FFH ;P2端口初始化
MOV P3,#0FFH ;P3端口初始化
MOV TMOD,#20H ;定时器T1工作于模式2,自动重装载
MOV TH1,#0FDH ;TH1初值为"0FDH",
MOV TL1,#0FDH ;TL1初值为"0FDH",
MOV SCON,#50H ;串行口工作于方式1,允许接收
SETB TR1 ;启动定时器T1
SETB ES ;允许串行口中断
SETB EA ;开总中断
CLR UABIT
;----------------------RS-232接口与单片机串行通信程序设计-------------------------------

MAIN: ...... ;主程序处理其他任务,等待串口中断
AJMP MAIN

PGUART: ...... ;串口中断服务子程序,接收处理数据
RETI

END本回答被提问者和网友采纳
相似回答