串口RS232程序知识详解

来源:本站
导读:目前正在解读《串口RS232程序知识详解》的相关信息,《串口RS232程序知识详解》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《串口RS232程序知识详解》的详细说明。
简介:程序设计了几个与上位机接口函数,可以实现接收,发字符和字符串功能,
程序使用时,要在这个文件中设定bond,
此程序可以采用中断,也直接扫描.基本上不要进行改动

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

一般程序规则:

1.命名规则

函数以功能的英文全称命名,全部小写,不同单词之间用下画线边接,如: read_data();

自定义的常量用能表达清楚的英文简写,全部字母大写. 如:#define PI 3.14

全局变量用一个完整单词,首字母大写,其余小写如:Time

局部变量用小写字母如:temp

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

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

说明: 程序设计了几个与上位机接口函数,可以实现接收,发字符和字符串功能,

程序使用时,要在这个文件中设定bond,

此程序可以采用中断,也直接扫描.基本上不要进行改动

程序是参考网上一大侠的,在这特别感谢原创作者

留给上面程度的接口函数有:

1.串口初始化 uart_int()

//实现串口初始化功能,设置波特,串口工作方式,直接调用

2.发送一个字符函数 sent_char(unsigned char char1)

//将char字符送出

3.发送一串字符串函数 sent_string(unsigned char *string)

//将字符数组中的数据发送出去

4.接收字符函数 unsigned char receive_char()

//接收数据,并返回接收到的字符

5.串口路数处理程序 uart_interrupt()

//对串口接收操作进行处理,发送处理不放在中断中进行.

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

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

函数名称:uart_int()

函数功能:初始化串口,设置波特率开中断串口工作模式

入口参数:无

出口参数:无

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

void uart_int(void)

{

TMOD = 0x20;// 定时器1工作于8位自动重载模式, 用于产生波特率

TH1 = 0xF3;// 波特率2400 公式:波特率=(1/n)*(振荡器频率/12*[256-TH1])

TL1 = 0xf3;

SCON = 0x50;// 设定串行口工作1方式;SCON的格式 |m0|m1|m2|REN|TB8|RB8|TI|RI

PCON&= 0xef;// 波特率不倍增最高位0/1 <=> 倍频带

ES = 1;//开串口中断描方式进行

EA = 1;//开总中断

//TB8=1;//设置发送的第9位

}

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

函数名称:send_char()

函数功能:从串口发送一个字符

入口参数:char

出口参数:无

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

void send_char(unsigned char char1)

{

SBUF = char1;

while(!TI);// 等特数据传送

TI = 0;// 清除数据传送标志

}

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

函数名称:send_string()

函数功能:从串口发送字符串

入口参数:无

出口参数:无

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

void send_string(unsigned char *string)

{

unsigned char i = 0;

while(string[i] != '')

{

SBUF = string[i];

while(!TI);// 等特数据传送

TI = 0;// 清除数据传送标志

i++;// 下一个字符

}

}

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

函数名称:receive_char()

函数功能:接收一个字符

入口参数:无

出口参数:无

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

unsigned char receive_char(void)

{

RI = 0;

return (SBUF);// 暂存接收到的数据

}

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

函数名称:uart_interrupt()

函数功能:中断处理函数

入口参数:无

出口参数:无

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

uart_interrupt()interrupt 4 using 0//串口中断处理程序

{

if(RI)//接引起的中断处理程序

{

send_char(receive_char());// 回传接收到的数据

RI=0;

}//发送完引起的中断不进行处理

}

提醒:《串口RS232程序知识详解》最后刷新时间 2024-03-14 01:10:32,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《串口RS232程序知识详解》该内容的真实性请自行鉴别。