单片机uart通信 程序
/*******************************************************
程序功能:串口通信测试
实验现象:电脑发送一个数据,单片机通过P1口流水灯显示,单片机发送字符到电脑
作者:张伟
班级:物电11级励志班
时间:2013-11-2
*******************************************************/
#include
#define uchar unsigned char #define uint unsigned int sbit k1=P3^2;//定义一个按键
/*********以下是延时函数**************/ void Delay_ms(uint n)
{
uint i,j;
for(i=n;i>0;i--)
for(j=115;j>0;j--);
}
//串口初始化程序
void init_chuan()
{
PCON=0X00;//最高位SMOD为0,波特率不加倍
SCON=0X50;//0101串口工作方式1,允许接受串口数据,清零中断标志
TMOD=0X20;//T1工作方式2(8位),定时,为串口提供波特率
TH1=0XFD;
TL1=0XFD;//波特率9600
EA=1; //总中断开启
ES=1; //开启串口中断
TR1=1;//开启定时器1
}
//向串口发送一个字符
void sendchar(uchar ch) {
SBUF=ch;
while(TI==0);//等待发送完毕
TI=0;
}
//向串口发送一个字符串
void sendstring(uchar *str) {
uchar k=0;
do
{
sendchar(*(str+k));
k++;
} while(*(str+k)); }
/**********************************
主函数
********************************/
void main()
{
init_chuan();//串口初始化
while(1)
{
if(k1==0)
{
Delay_ms(10);//延时去抖
if(k1==0)
{
while(!k1);//等待k1释放
sendstring("I love you ");
}
}
}
}
//串口中断函数
//串口接收中断函数
void serial () interrupt 4 using 3
{ uchar temp;
if(RI)
{
RI = 0;//清除中断标志
temp=SBUF;//保存数据
sendchar(temp);
P1=~temp;
}
}
本文档为【单片机uart通信 程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。