STC89C52串口应用实例

1) 硬件设计
一般单片机的串口通信都需要通过MAX232 进行电平转换然后进行数据通信的,当然STC89C52RC单片机也不例外。图中的连接方式是常用的的一种零Modem 方式的最简单连接即3 线连接方式:只使用RXD、TXD 和GND 这三根连线,如下图

 


STC89C52串口应用实例

由于RS232 的逻辑“0”电平规定为+5~+15V,逻辑“1”电平规定为-15~-5V,因此不能直接连接
与TTL/CMOS 电路连接,必须进行电平转换。
电平转换可以使用三极管等分离器件实现,也可以采用专用的电平转换芯片,MAX232 就是其中典型
的一种。MAX232 不仅能够实现电平的转换,同时也实现了逻辑的相互转换即正逻辑转为负逻辑。
#include "stc.h" //加载"stc.h"头文件
void Delay(void) //定义Delay 函数,延时500ms
{
unsigned char i,j; //声明变量i,j
for(i=0;i<255;i++) //进行循环操作,以达到延时的效果
for(j=0;j<255;j++);
for(i=0;i<255;i++) //进行循环操作,以达到延时的效果
for(j=0;j<255;j++);
for(i=0;i<255;i++) //进行循环操作,以达到延时的效果
for(j=0;j<140;j++);
}


void UARTInit(void) //定义串口初始化函数
{
SCON =0x40; //8 位数据位
T2CON=0x34; //由T/C2 作为波特率发生器
RCAP2L=0xD9; //波特率为9600 的低8 位
RCAP2H=0xFF; //波特率为9600 的高8 位
}


void UARTSendByte(unsigned char byte)//串口发送单字节函数
{
SBUF=byte; //缓冲区装载要发送的字节
while(TI==0); //等待发送完毕,TI 标志位会置1
TI=0; //清零发送完成标志位
}
void main(void) //进入Main 函数
{
unsigned char i=0; //声明变量i
UARTInit(); //串口初始化
while(1) //进入死循环
{
UARTSendByte(i); //串口发送单字节数据
Delay(); //延时500ms
i++; //i 自加1
if(i>255)i=0; //若i>255,i=0
}
}
重点:
STC89C52RC是一种单片机,它可以通过串口进行通信。在串口通信中,一般需要使用MAX232进行电平转换。常用的连接方式是3线连接方式,只使用RXD、TXD和GND这三根连线。\[1\] 要在STC89C52RC上进行串口通信,你可以使用串口助手软件。首先选择对应的COM号,然后设置波特率为9600,接收格式选择文本格式。\[2\] 下面是一个示例代码,用于在STC89C52RC上进行串口通信初始化和发送数据。首先需要进行串口初始化,打开总中断、串口中断,设置串口工作方式为1,允许接收数据,启动定时器1,设置定时器1的工作模式为2,设置比特率为9600。然后在主循环中,通过puts函数发送数据,并通过TI标志位判断是否发送完成,然后延时一段时间再进行下一次发送。\[2\] 另外,还有一种串口初始化的方法,可以打开总中断、串口中断,设置串口工作方式为1,允许接收数据,启动定时器1,设置定时器1的工作模式为2,设置比特率为9600。这种方法也可以用于STC89C52RC的串口通信初始化。\[3\] #### 引用[.reference_title] - *1* [STC89C52串口应用实例](https://blog.csdn.net/xikangsoon/article/details/54428090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STC89C52单片机 串口通信](https://blog.csdn.net/qq_44989881/article/details/112200066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值