历史上的今天
今天是:2025年01月03日(星期五)
2020年01月03日 | PIC单片机实现RS232串口异步通讯的设计
2020-01-03 来源:elecfans
编写程序实现以下功能。在计算机上使用串口大师向开发板发每次发送1个字符。开发板每接收到一个数据,则交换该数据的高低4位,再发送回计算机。
端口初始化时使能发送与接收,使用扫描方式接收数据,接收到数据后立即交换高低四位并发送,交换高低四位方式如下:

完整程序:
* 标 题: 异步串口通讯
* 功能描述: 在计算机上使用串口大师向开发板发每次发送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); //等待发送完成
}
}
}
史海拾趣
|
一台三菱帕杰罗车用音响,故障现象为无声,其余功能工作正常,经查为功放集成电路TA8205AH损坏。TA8205AH为东芝公司生产的22W×2双声道音频功率放大集成电路,采用17引脚封装。每一声道由前置放大级和功率放大级组成,功率放 ...… 查看全部问答> |
|
在WinCE上实现一个软件界面,通过我们的软件界面上网,有什么好的建议? 一个PDA上要实现无线上网功能,通过WinCE的IE已以上网。要实现一个软件界面,通过我们的软件上网,有什么好的建议?… 查看全部问答> |
|
最近很苦恼,想着开发一款产品。里面需要个三维控制杆,不过对控制杆高度要求很严,最好小于70mm,霍尔的电位计的都行(最好是霍尔的),不知道大家有没有知道的牌子推荐下啊 ,在网上搜实在是找不到了。… 查看全部问答> |
|
LaunchPad 430 G2553 硬件i2c读写EEPROM 24C02的程序 如题,LaunchPad 430 G2553 读写EEPROM 24C02的程序 根据TI官方的SLAA208C的application note修改,理论上支持24c01/02/04/08/16的读写,不过手边只有24C02,所以只在24C02上测试过 硬件:launchpad上的vcc,通过两个5.1k的电阻,将i2c的sda和scl ...… 查看全部问答> |
|
在《PSoC4心得_点亮LED》的基础上,添加LCD功能,用以显示ADC值。 一、添加LCD模块,设置如下: 二、添加程序 三、出现的问题 显示的数字乱跳: 1、添加延时--for(i=0;i… 查看全部问答> |




