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

51单片机和计算机之间实现串口通信的电路图32

发布网友 发布时间:2023-10-27 16:03

我来回答

4个回答

热心网友 时间:2024-12-11 21:41

串口通讯参考程序如下:

来源:深入浅出AVR单片机

#include<reg51.h>

unsigned char UART_RX; //定义串口接收数据变量

unsigned char RX_flag; //定义穿行接收标记

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

函数名:UART串口初始化函数

调  用:UART_init();

参  数:无

返回值:无

结  果:启动UART串口接收中断,允许串口接收,启动T/C1产生波特率(占用)

备  注:振荡晶体为12MHz,PC串口端设置 [ 4800,8,无,1,无 ]

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

void UART_init (void){

 EA = 1; //允许总中断(如不使用中断,可用//屏蔽)

 ES = 1; //允许UART串口的中断

 TMOD = 0x20; //定时器T/C1工作方式2

 SCON = 0x50; //串口工作方式1,允许串口接收(SCON = 0x40 时禁止串口接收)

 TH1 = 0xF3; //定时器初值高8位设置

 TL1 = 0xF3; //定时器初值低8位设置

 PCON = 0x80; //波特率倍频(屏蔽本句波特率为2400)

 TR1 = 1; //定时器启动    

}

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

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

函数名:UART串口接收中断处理函数

调  用:[SBUF收到数据后中断处理]

参  数:无

返回值:无

结  果:UART串口接收到数据时产生中断,用户对数据进行处理(并发送回去)

备  注:过长的处理程序会影响后面数据的接收

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

void UART_R (void) interrupt 4  using 1{ //切换寄存器组到1

 RI = 0;   //令接收中断标志位为0(软件清零)

 UART_RX = SBUF; //将接收到的数据送入变量 UART_data

 RX_flag=1;  //标记接收

 //用户函数内容(用户可使用UART_data做数据处理)

 

 //SBUF = UART_data; //将接收的数据发送回去(删除//即生效)

 //while(TI == 0); //检查发送中断标志位

 //TI = 0;  //令发送中断标志位为0(软件清零)

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

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

函数名:UART串口发送函数

调  用:UART_T (?);

参  数:需要UART串口发送的数据(8位/1字节)

返回值:无 

结  果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式

备  注:

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

void UART_T (unsigned char UART_data){ //定义串口发送数据变量

 ES=0;    //禁止穿行中断

 SBUF = UART_data; //将接收的数据发送回去

 while(TI == 0);  //检查发送中断标志位

 TI = 0;   //令发送中断标志位为0(软件清零)

 ES=1;   //打开穿行中断

}

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

函数名:UART串口发送字符串函数

调  用:UART_S (?);

参  数:需要UART串口发送的数据(8位/1字节)

返回值:无 

结  果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式

备  注:

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

void UART_S(unsigned char *str)

{

 while(1)

 {

  if(*str=='\0') break;

  UART_T(*str++);

 }

}

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

函数名:主函数

调  用:main();

参  数:

返回值:无 

结  果:

备  注:

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

void main()

{

 unsigned char Buf_data[]={"      welcome to MCU world.     \n\r"};

 UART_init();

 UART_S(Buf_data);

 while(1){

  if(RX_flag==1)

  {

   UART_T(UART_RX);

   RX_flag=0;

  }

 }

祝愿楼主马到功成

热心网友 时间:2024-12-11 21:41

12 和11脚接 MCU 51 的P3,0 P3.1

热心网友 时间:2024-12-11 21:42

单片机 板上有 DB9 嘛?其实 就是 MAX232?

有的 话,和 电脑 可以直接 连

否则 用 E232TTL RS232/TTL电平无源转换器

请看 武汉鸿伟光电 有 连接示意图

热心网友 时间:2024-12-11 21:42

RS232,MAX232,好好看,网上有
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
网络宣传文案心碎,句句获赞! 关于朋友圈上万人点赞转发的说说 人生看的很透彻的经典句子 超现实超扎心的说说大全2019最新 心脏血管堵塞吃什么食物 投资理财有什么前景 pp理财什么情况 P2P理财行业的前景如何? 中国目前的财富管理现状是什么情况? 呼吸皮沙发寿命多久 “皮沙发的呼吸寿命” 呼吸皮沙发寿命多久 在proteus中怎么仿真单片机与PC机之间的串口通信?5 关于PC与C51单片机串行通信仿真2 电子设备中PCB印制板,允许飞线吗?12 ...是了多次,提示短时间内试的次数过多请稍候再试。请问多久我才可以再... 馨世注册过商标吗?还有哪些分类可以注册? 京东团购是最垃圾的!买的水果送来都烂了!!!40 求一本小说名字谢谢各位大神1 一部手机怎么登录两个?7 世界上最深的河流 应该说具体上是水下最深的河流.有人问过峡谷... 一个手机号码能可以开通几个码72 换机油传感器算大修吗 怎么通过qq注册新1 怎么用QQ号申请新的微信? 一年内怎么改第二次 一年内第二次修改技巧 单片机与PC机串行通信 proteus仿真1 怎样把电线焊接在电路板上(步骤)40 焊接电路板时如果有飞线,可以将飞线穿到电路板的背面么 freja为什么跟大猫分了 ?40 好高兴啊,我终于换了一个新手机,这是一个全新的一天,哈哈7 当格格巫爱上蓝精灵电子书txt全集下载10 ...是操作频率过快,请稍后重试。要多久后才能注册? 寻爱蓝精灵txt全集下载 冬天长的柠檬还没长大,春天又开花了怎么办1 柠檬在什么季节开花什么季节结果156 请问怎么改?1599 盆栽柠檬入冬开花怎么办1 和妈妈玩玩过两天我就出门去了你有看不见我了怎么回答? 上海火车站到闸北区共和新路3088号详腾财富广场怎么走 反复的近义词是什么?3 反复的近义词有什么4 外表是黑色的宝石但是灯光一照里面是红色的,那是什么石头啊?23 黑色的石头有哪些53 一首女唱的粤语歌,有一句歌词好像是是 做生做死有天有地 不知道对不... 经常的近义词是啥?379 为什么进出口额占GDP的比重会超过100%?25 一个手机号码能可以开通几个码72 vivox6d在哪里查看手机待机时间3 女生对我说我又不是白雪公主什么意思?我该怎么回答?4 请问怎样在同一部手机上申请两个、已经有一个了、再想申请...2