MOV A ,@R0 ;取第一个数据发送 MOV SBUF ,A ;发送第一个数据
SJMP $ ;等待中断
SERVE: JNB RI ,SEND ;TI=1,为发送中断
CLR RI
MOV A ,SBUF ;读出接收缓冲区内容 MOV @R1 ,A ;读入接收缓冲区
DJNZ R6 ,L1 ;判断数据块发送完否 SJMP L2 ;数据块接收完,转L2
L1:INC R1 ;修改数据区指针
L2:RETI ;中断返回 SEND:
CLR TI ;清除发送中断标志
DJNZ R7 ,L3 ;判断数据块发送完否
SJMP L4 ;数据块接收完,转L4
L3: MOV A ,@R0 ;取数据发送 MOV SBUF ,A ;发送数据
INC R0 ;修改数据地址 L4:
RETI ;中断返回
END
14、以89C51串行口按工作方式3进行串行数据通信。假定波特率为1200b/s,第 9数据位作 奇偶校验位,以中断方式传送数据。请编写通信程序。 解:
ORG 0000H
AJMP MAIN ;上电,转向主程序 ORG 0023H ;串行口的中断入口地址
AJMP STOP ;转向中断服务程序 ORG 0040H ;主程序
MAIN: MOV SP,#60H
MOV TMOD,#20H MOV TH1,#0E8H MOV TL1,#0E8H
SETB TR1
MOV SCON ,#0D0H MOV PCON ,#00H
MOV R0 ,#20H ;置发送数据区首地址 MOV R1 ,#40H ;置接收数据区首地址 SETB ES ;允许串行口中断 SETB EA ;CPU允许中断
- 19 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机原理及接口技术(第三版)李朝青编_课后答案详解(19)在线全文阅读。
相关推荐: