PIC单片机实现RS232串口异步通讯的设计

PIC单片机实现RS232串口异步通讯的设计,第1张

编写程序实现以下功能。在计算机上使用串口大师向开发板发每次发送1个字符。开发板每接收到一个数据,则交换该数据的高低4位,再发送回计算机。

端口初始化时使能发送与接收,使用扫描方式接收数据,接收到数据后立即交换高低四位并发送,交换高低四位方式如下:

PIC单片机实现RS232串口异步通讯的设计,PIC单片机实现RS232串口异步通讯的设计,第2张

完整程序:

* 标 题: 异步串口通讯

* 功能描述: 在计算机上使用串口大师向开发板发每次发送1个字符。

* 开发板每接收到一个数据,则交换该数据的高低4位,再发送回计算机。

#include

#define uint8 unsigned char

#define uint16 unsigned int

__CONFIG(FOSC_HS &WDTE_OFF &BOREN_OFF &PWRTE_OFF &LVP_OFF); //设置配置位

//WDTE_OFF:disable watchdog TImer 看门狗禁止

//LVP_OFF:low voltage programming disabled 低电压编程禁止

//FOSC_HS:high speed crystal/resonator 4M以上晶振选择HS高速

//PWRTDIS:disable power up TImer

//BOREN_OFF:disable brown out reset

/***************************声明函数*******************************************/

void SCI_Init(void); //串口初始化

/*******************************************************************************

* 函 数 名: SCI_Init(void)

* 函数功能: 异步串口通讯初始化

* 入口参数: 无

* 返 回: 无

*******************************************************************************/

void SCI_Init(void)

{

SPBRG = 129; //高速 波特率9600

TXSTA = 0x24; //使能发送,8位数据

RCSTA = 0xB0; //8位数据接收,使能连续接收,

TRISC6 = 1; //设置为输入状态

TRISC7 = 1;

}

/******************************************************************************

* 函 数 名: mian(void)

* 函数功能: 接收到一个数据,交换该数据的高低4位,再发送回计算机

* 入口参数: 无

* 返 回: 无

*******************************************************************************/

void main(void)

{

uint8 i;

SCI_Init(); //串口初始化

while(1)

{

if(RCIF == 1) //等待接收

{

i = ((RCREG & 0xff) 《《 4) | (RCREG 》》 4); //交换接收到的数据高低四位,存放于i

TXREG = i; //发送数据

while(TRMT == 0); //等待发送完成

}

}

}

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

原文地址: http://outofmemory.cn/dianzi/2505409.html

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

发表评论

登录后才能评论

评论列表(0条)

保存