历史上的今天

今天是:2024年10月19日(星期六)

正在发生

2021年10月19日 | 51单片机与计算机通讯,51单片机与PC通信方法总结

发布者:数字冒险 来源: eefocus关键字:51单片机  通信方法 手机看文章 扫描二维码
随时随地手机看文章

51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。


当串行发送完毕后,将在标志位 TI 置 1,同样,当收到了数据后,也会在 RI 置 1。


无论 RI 或 TI 出现了 1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。


在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。


常用的方法有:

接收数据时,使用“中断方式”,清除 RI 后,用一个变量通知主函数,收到新数据。

发送数据时,也用“中断方式”,清除 TI 后,用另一个变量通知主函数,数据发送完毕。

这样一来,收、发两者基本一致,编写程序也很规范、易懂。


更重要的是,主函数中,不用在那儿死等发送完毕,可以有更多的时间查看其它的标志。


PC与单片机串口通信的程序,要求如下:

1、如果在电脑上发送以$开始的字符串,则将整个字符串原样返回(字符串长度不是固定的)。

2、如果接收到1,则将P00置高电平,接收到0,P10置低电平。(用来控制一个LED)

单片机是STC89C52RC/晶振11.0592/波特率要求是9600或4800。


注意:调试软件我选择“串口猎人”,串口猎人中选择“字符格式发送” 。当然STC-ISP也是可以的

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

#include

sbit LED=P0^0;

unsigned char UART_buff;

bit New_rec = 0, Send_ed = 1, Money = 0;

void main ()

{

SCON = 0x50;   //串口方式1, 10位UART(一个起始位“0”八个数据位一个停止位“1”), 允许接收.

TMOD = 0x20;   //T1方式2

TH1 = 0xFD;    //装入自动重加载的处置,9600bps@11.0592MHz

TL1 = 0xFD;    //装入初值

TR1 = 1;       //启动定时器T1

ES  = 1;       //开串口中断,但不开定时器中断,不允许定时器中断

EA  = 1;

while(Money == 0);    //等着交费,呵呵,等着接收$.

while(1)

{

if ((New_rec == 1) && (Send_ed == 1))

{  //如果收到新数据及发送完毕

SBUF = UART_buff; //那就发送.

New_rec = 0;

Send_ed = 0;

}

}

}

//----------------------------------------------

void ser_int (void) interrupt 4

{

if(RI == 1)    //如果收到.

{

RI = 0;      //清除标志.

New_rec = 1;

UART_buff = SBUF;  //接收.

if(UART_buff == '1')  LED = 1;

if(UART_buff == '0')  LED = 0;

if(UART_buff == '$')  Money = 1;

}

else  //如果送毕.

{

TI = 0;      //清除标志.

Send_ed = 1;

}

}


关键字:51单片机  通信方法 引用地址:51单片机与计算机通讯,51单片机与PC通信方法总结

上一篇:基于单片机直流电机PWM控制系统设计
下一篇:51单片机双向通信实例

推荐阅读

专为万亿智能互联设备打造,现代云端到边缘基础设施的根基 提供业界一流的性能、安全性和可扩展性,从超大规模到边缘访问,支持下一代基础架构的各种计算需求 新闻摘要:• 专注于基础架构的全新产品路线图,采用领先的制程节点,实现每年30%的系统性能提升• 拥有广泛的生态系统支持,可通过从微架构设计到硬件、软件、工具和服务的创新实现多样...
今天下午,AMD在北京举行了主题为“万众一芯 出7制胜”的第二届大中华区合作伙伴峰会。在发布会之后,AMD全球副总裁、服务器业务总经理Scott Aylor接受了媒体采访。在采访中,快科技提了两个问题,一个是有关AMD 7nm Zen2架构处理器频率的,在32nm SOI工艺下AMD曾经实现了5GHz的高频,目前7nm工艺下频率还有所不如,AMD是如何平衡频率与核心的设计呢...
今天坚果手机官方微博预告,坚果旗舰新品已经在京东开启预约,明天正式登场。  和去年推出的定位中端的坚果Pro 3不同,这次坚果将发布的是高端旗舰,这是坚果自加入字节跳动旗下之后推出的第一款旗舰手机,新品命名为坚果R2。  根据曝光的信息,坚果新机首次采用了一亿像素传感器,可能支持OIS光学防抖,影像实力相比坚果Pro 3有大幅提升...
电动汽车,并不只是“四个轮子的iPhone”那样简单。 在今年鸿海科技日上,鸿海集团创始人郭台铭将一辆电动汽车开到了现场。 伴随着《生日快乐》的BGM和现场观众的鼓掌,主持人揭晓了预热许久的三款新车——Model E、Model C以及Model T。 没错,新车采用了和特斯拉如出一辙的命名方式。 郭台铭感慨道:“今天就我个人而言,(这款车)是我71岁以来收到...

史海拾趣

问答坊 | AI 解惑

我来说说几个芯币问题

第一:现在正是大赛高峰,下载的人很多,可以考虑多派送一点芯币以解燃眉之急额! 第二:对于一个附件分卷压缩,如果很小的话,的确有刷分的嫌疑,建议斑竹,管理员整理。 第三:如果是很多,确实需要分开,是不是可以考虑一下多多补偿芯币。。。 ...…

查看全部问答∨

智能化生活尽在眼前

在上海世博会的场馆中,科技为未来生活带来的,不仅是适应更快节奏的,还有更多的便捷和舒适。智能化的未来生活在人们的体验中变得便捷而有质量。在香港,宠物狗的背部肌肤下都已植入一个米粒大小的微芯片,记录着主人的信息和它接种疫苗的情况,也 ...…

查看全部问答∨

初学protues软件遇到的问题

小弟刚开始学protues软件,遇到了这样的问题,哪位能帮我解决一下,谢谢了!!! 我在选择components选项选择元件时怎么出现了如下的提示No Libraries Found!的提示,而不能像教程那样挑选元件?…

查看全部问答∨

如何访问移动设备内存

C#.NET开发的程序,如何访问WINCE5.0移动设备的内存?? 通讯的红外驱动已经装好,在电脑里可以看到有 "移动设备"这个\'盘\',但不知道如何用代码实现把这个\'盘\'里的数据拷贝到PC上,请指点.谢谢!!!…

查看全部问答∨

驱动问题

小弟刚接触vxworks,要编写adt800的驱动,谁有这方面的资料,或者类似的例子. 我把那几个函数实现,如何调试驱动程序呀 麻烦各位高手赐教,小弟不胜感激…

查看全部问答∨

lm3s811下载问题

用TI的lm3s811板子下不进去程序,本来好好的,突然就下不进去了,提示的错误是Could not initialize target device!Please power cycle the board and try again!哪位朋友知道是什么问题啊,我一开始还能下程序,就是突然就开始跳这个错误了,我 ...…

查看全部问答∨

怎样把结构体的成员变量作为参数传递?

假设结构体a已经定义,成员变量都是整形,那么怎样才能实现下面函数的功能呢?   fun(类型定义  variable, int vlu) {    a->variable = vlu; }…

查看全部问答∨

怎么更好的写程序 看程序的来龙去脉

module paomadeng(clk,ret_n,led);  input clk,ret_n;  output [7:0] led;  reg [7:0] ledn;  reg [3:0] led_cnt;  reg [3:0] cnt;      always @(posedge clk or negedge ret_n)   if(!ret_n)& ...…

查看全部问答∨

常用电源及稳压芯片名称(大部分是TI 的)

看看下列名字,估计就知道这些芯片的大概功能。收藏吧 LM2930T-5.0 5.0V低压差稳压器  LM2930T-8.0 8.0V低压差稳压器 LM2931AZ-5.0 5.0V低压差稳压器(TO-92)   LM2931T-5.0 5.0V低压差稳压器   LM2931CT 3V to 29V低压差稳压器(TO-220,5PIN) ...…

查看全部问答∨

AM335X/SAMA5D3X选哪个好

最近新开项目在犹豫选用Cortex-A8的TI AM335X还是Cortex-A5的ATMEL SAMA5D3X,对收集的资料进行了整理,在此分享给大家。 1.        内核对比 Cortex-A8:指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配N ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved