×
单片机 > 单片机程序设计 > 详情

STC89C52串口应用实例

发布时间:2020-06-02 发布时间:
|

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
}
}


关键字:STC89C52  串口应用 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式