单片机上写的串口程序是什么意思啊

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:51:51
怎么体现的,给我点具体意思
比如说是就给TMOD、SCON和SBUF赋个值是吗?谢谢了
还有如果是采用RS-232协议的,是怎么表现出来的?难道只是在和电脑串口相连的时候加上一个电平转换器MAX-232就表现的吗

单片机(MCU)也就是人们所说的微处理器。可以理解为应用于嵌入式或工业控制上的小型CPU。与我们PC中CPU不同的是,单片机是一个处理器核与一些人们常用到的硬件资源封装到一片芯片里了。

例如你这里说到的串口,它是工控中最常使用到的通信方式之一,几乎所有的MCU内都会集成串口资源。而PC中串口一般是在主板上外扩一片16C554芯片扩屏出来的。当然在需要多串口的场合,MCU也可以通过控制16C55x来扩屏出串口。

你提到的TMOD,SCON,SBUF是C51/52系列单片机中的与串口控制相关的寄存器。
为了简单说明,给你一段程序,我加上注释给你:
void InitComm() //初始化C51单片机串口
{//设置定时器1为波特率发生器
PCON |= 0x80; //设置波特率加倍
TMOD |= 0x20; //设置定时器1为方式2运行
TH1 = (unsigned char)(0xXXXX); //设置定时常数。一般0xXXXX由系统晶振与通信目标波特率所定.
TR1 = 1; //启动定时器1
SCON = 0x50; //串行口方式1,允许串行接收。
ES = 1; //允许串口中断
}

//串行中断服务程序
void it_comm(void ) interrupt 4 using 1
{
if (RI)
{//接收数据中断
RI = 0;
}
if (TI)
{//发送数据中断
TI = 0;
}
}
////////////////////////
补充:
RS232协议是串口通信协议,它是由硬件自动完成的。也就是说,像开始位,停止位,效验等等,都是由硬件自动加上去的。对于程序员来讲,可以认为是透明的。只需要初始化时定义好就可以了。
你提到的MAX232只是做电平转换用的。和RS232协议没有直接关系。

串口是单片机和电脑通信用的。
比如你单片机采集到的温度是29°