假定波特率为1200bps,以中断方式传送数据,的全双工通信程序怎么编写?

假定波特率为1200bps,以中断方式传送数据,的全双工通信程序怎么编写?,第1张

电信091的答案

ORG0000H

AJMP MAIN

AJMP SERVE

ORG0023H

MAIN: MOVSP,#60H ;置堆栈指针

MOVTOMD,#20H ;置T1工作于模式2

MOVTH1,#0E8H ;赋T1计数初值

MOVTL1,#0E8H ;赋T1重装值

SETB TR1 ;启动T1

MOVSCON,#50H;置串行接口工作于方式1,允许接收

ANLPCON,#7FH ;设SMOD=0

MOVR0,#20H ;置发送数据区首址

MOVR1,#40H ;置接收数据区首址

MOVR7,#10H ;置发送字节长度

MOVR6,#10H ;置接收字节长度

SETE ES ;CPU允许中断

SETE EA ;允许串行接口

MOVA,@R0 ;取第一个数据发送

MOVSBUF,A ;发送数据

LOOP: SJMP $;等待中断

SERVE: JNBR1,SEND ;不是接收中断,转发送

JNCR1, LOOP ;是接收中断,清除接收中断标志拦贺

MOVA,SBUF ;接收数据

MOV@R1,A ;将接收数据送入接收数据区

DJNZ R1,L1 ;数据简册派块未接收完,转L1

SJMP L2 ;数据块接收完,转L2

L1: INCR1 ;修改数据区指针

L2: RETI;中断返回

SEND: JNCR1, LOOP ;是发送中断,清除发送中断标志

DJNZ R1,L3 ;数据块未发送完,转L3

SJMP L4 ;数据姿拿块发送完,转L4

L3: MOVA,@R0 ;取数据发送

MOVSBUF,A ;发送数据

INCR1 ;修改数据区指针

L4: RETI;中断返回

///////////////////////////////////////////////////////////

// 设计题目: 基于51单片机的串口通信

// 功能:

// 说明: 晶振用12M,

///////////////////////////////////////////////////////////

#include <reg51.h> // 12M 晶振

#define uchar unsigned char

#define uint unsigned int

//////////////纳燃纳/////////////////////////////////////////////

// Name : 串口发送函数

// In:

// Out :

// Function :

// Explain :

///////////////////////////////////////////////////////////

void send(uchar x)

{

SBUF=x// 将数据放到缓冲区,发送

while(!TI) // 等待发送完成

TI=0// 清标志位

}

/////////////////////////////洞没//////////////////////////////

// Name : 初始化函数

// In:

//段辩 Out :

// Function :

// Explain :

///////////////////////////////////////////////////////////

void init(void)

{

TMOD=0x20 // T1工作在方式2,自动重载

TH1=0xe6

TL1=0xe6 // 设置波特率为1200

SM0=0

SM1=1 // 串口方式1

TR1=1 // 打开定时器1

}

///////////////////////////////////////////////////////////

// Name : 主函数

// In :

// Out :

// Function :

// Explain :

///////////////////////////////////////////////////////////

void main(void)

{

uchar i

init() // 初始化

while(1)

{

for(i=0i<10i++)

{ send(i)}

}

}

(1)、用间接寻址方式,把外部20H内容送到内部RAM的20H单元。

(2)、依据第四题接线图,写出启动0809第3通道A/D转换的程序段。

(3)、编写串行口方式1串行发送初始化程简拍培序。(省略拦唯波特率发生贺衡器初始化)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12319410.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存