问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机串口通信问题

发布网友 发布时间:2023-07-04 11:57

我来回答

2个回答

热心网友 时间:2023-11-09 04:04

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar idata trdata[]={'R','I','C','H','M','C','U','R','Z','-','5','1','V','2','.','0',0x0d,0x0a,0x00};
sbit K1=P3^2; //对应开发板K1按键
/*-------------------------------------------------------------*/
//串口初始化
void UART_Init(void)
{
SCON = 0x50; //串口工作方式为1 , 串行允许接收
//SM0=0;
//SM1=1;
//REN=1;
TMOD = 0x20; //定时器1 工作在方式2
//PCON = 0x80; //SMOD = 1; 波特率加倍
TH1 = 0xfd; //波特率 9600bps fosc="11".0592MHz
TL1 = 0xfd;
ES = 1; //开串口中断
TR1 = 1; //允许定时器1工作
EA = 1; //开总中断
}

void delay1ms(uint i)
{
uchar j;
while(i--)
{
for(j=0;j<115;j++) //1ms基准延时程序
{
;
}

}
}

/*-------------------------------------------------------------*/
//串口发送一个字节
void Uart_SendChar(unsigned char dat)
{
SBUF = dat; //待发送的数据写入缓冲区
while(!TI); //等待发送完成
TI = 0; //清零发送标志位
}

/*-------------------------------------------------------------*/
//串口发送一个字符串
void Uart_SendString()
{ uchar
i=0;
while(trdata[i]!=0x00)
{
SBUF=trdata[i];
while(!TI);
TI=0;
i++;
}
}

/*-------------------------------------------------------------*/
//主函数
void main(void)
{
UART_Init(); //初始化串口
while(1)
{
if(K1==0)
{
delay1ms(20);
if(K1==0)
{
Uart_SendString(); //发送数据
while(!K1); //等待按键释放
}
}
}
}

/*-------------------------------------------------------------*/
//串口接收中断函数
void INT_UartRcv(void) interrupt 4
{
unsigned char Rcv = 0;
if(RI) //查询接收标志位(有数据发送过来时置为1)
{
RI = 0; //接收标志位清零
Rcv = SBUF; //存储缓冲区的数据
P0=SBUF;
Uart_SendChar(Rcv); //让从计算机上传到单片机的数据 , 传回的计算机显示
}
}

热心网友 时间:2023-11-09 04:04

C51单片机的程序:
1、初始化程序:
TMOD=0X20; TH1=0Xfd; TL1=0Xfd;SM0=0; SM1=1; REN=1; TR1=1; EA=1; ES=1;
2、发送程序:
void comdata_send()//串口发送数据
{
unsigned char i;
SBUF=0x2A;
while(!TI);
TI=0;
}
3、接收数据:
void comdata_receive() interrupt 4
{ if(RI)
{ RI=0;
RS485_data=SBUF;
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在厨师一个月工资是多少,炒菜和配菜,在什 成都厨房工资多少钱一个月 现在厨师一个月工资是多少,炒菜和配菜,在什么地方的价格,请详细点,谢 ... 华硕电脑上没有触摸板设置华硕笔记本电脑触摸板怎么开启 新买的光碟DVD-R是空白的,我想把他制作成一个系统光碟,谁知道怎么制 ... 请问空白光盘刻录车载DVD后,播放时只有目录放不出来是怎么回事啊?_百 ... 请问将一张DVD-R空白光盘作为数据盘使用能够重复写入或者续写数据吗?谢 ... 我现在有DVD-R盘,怎样刻录?一定需要刻录机吗? 做辣椒酱为什么要放酒 做辣椒酱为啥要放酒 2024年区块链的趋势和方向 proteus高分求教 c51独立按键程序,按下k1按键后对应的灯亮,但松开k1按键后灯还亮,k2... while(!k1)是什么意思 关于51按键功能的一个问题,求解! 单片机c语言呢编程问题:我要实现用一个按键控制一个LED的亮灭,按一次... 《生化危机5重制版》全奖杯达成白金攻略 对虾养殖后期pH值低撒了生石灰氧化钙石能马上补充肥水产品吗? 早上用生石灰消毒,下午可用 复合肥肥水吗??? 生石灰拌干牛便发酵后能肥水吗? 盐酸帕罗西汀会影响夫妻生活吗? 常州恐龙园一日游攻略常州恐龙园一日游攻略多少钱 怎么吃了盐酸帕罗西汀片,感觉没有食欲 服帕罗西汀失去情感了怎么办 生石灰能和肥料一起播撒吗 帕罗西汀片引起的性功能障碍怎么办 东北歌舞厅亲历记1——柔情似水 名震北宋京城的歌舞伎宇文柔奴竟被誉为神医? 欧美柔情歌有哪些 苹果手机电怎么充最合适? 曹操为什么说汉中“食之无味,弃之可惜”,对汉中富户做了什么? 一个按键触发控制,三位数码管倒计时,且一路LED输出,数码管倒数至0时... 慈禧太后80岁肌肤如玉堪称清朝的白前 微软研究发现有4400万用户使用被破解的密码 多功能清洁膏有毒吗用英语怎么说 有一种植物叫天竺少女是什么植物 有一种植物叫天竺少女是哪种植物 新西游记 里的天竺少女是哪一集 是谁在敲打我窗出自哪首歌曲 哦,沙里瓦,哦,沙里瓦……这首歌是李玲玉哪年唱的?86年还是87年?_百度... 《红楼梦》探春为何远嫁?探春的结局是好是坏? 螺旋风暴平民快攻卡组打法攻略 帕里斯希尔顿 发色 活生生的解释 美国电影为什么经常出现美国国旗镜头? 林正英电影里经常出现美国国旗 音乐小子 宋亚轩微信名字叫什么 爱情回来了承磊怎么就成名了 音乐小子Kimi乔任梁是自组乐队的主唱,他擅长什么乐器? 校园音乐会主持人串词5篇 ...中央音乐学院的,我说不去,又不是我偶像的演唱会,她就说