历史上的今天
返回首页

历史上的今天

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

正在发生

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

2021-10-19 来源:eefocus

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;

}

}


推荐阅读

史海拾趣

ANSHAN [Anshan Suly Electronics]公司的发展小趣事

在快速发展的过程中,ANSHAN公司始终把人才队伍建设放在首位。公司注重引进和培养高素质的技术人才和管理人才,为他们提供广阔的发展空间和良好的工作环境。同时,公司还建立了完善的培训体系和激励机制,鼓励员工不断学习新知识、掌握新技能。这些举措不仅提升了员工的综合素质和能力水平,也为公司的长远发展提供了有力的人才保障。

台湾富致(FUZETEC)公司的发展小趣事

1962年,Futaba推出了无线电控制设备和冲压金属模用部件,旨在提升工业品质并缩短模具开发周期。这一举措不仅解决了当时工业控制领域中的供应商问题,还引领了模具制造行业的标准。随着技术的不断进步,Futaba开始涉足无线电传输模组(R/C)的生产和销售,并逐渐在无线遥控领域崭露头角。特别是高频无线展频通讯技术的实现,使Futaba的无线遥控技术在工业用机器人和工业控制设备上得到了广泛应用,进一步巩固了其在该领域的领先地位。

CNC Tech公司的发展小趣事

CNC Tech公司深知,在竞争激烈的电子行业中,品质是赢得客户信任和市场口碑的关键。因此,公司始终坚持品质至上的原则,从原材料采购到生产制造的每一个环节都严格把控品质。CNC Tech还建立了完善的品质管理体系,通过严格的质量检测和持续的技术改进,确保每一台出厂的设备都能达到客户的期望和要求。正是凭借这种对品质的执着追求,CNC Tech赢得了广大客户的信赖和好评。

全鹏(CHAMPION)公司的发展小趣事

随着全鹏在巴西市场的稳固地位,公司决定在2006年创立C3 TECH品牌,以进一步提升其品牌影响力。C3 TECH品牌的创立不仅增强了全鹏在巴西市场的竞争力,还为公司带来了更多的商机。通过精心策划的市场营销活动和优质的产品质量,C3 TECH品牌迅速获得了当地消费者的认可,并在市场上树立了良好的口碑。

Esterline Power Systems公司的发展小趣事

在质量管理方面,Esterline Power Systems始终坚持以客户为中心,追求卓越品质。公司引入了先进的质量管理体系,并通过了ISO 9001等国际标准认证。同时,公司还建立了严格的质量检测机制,确保每一件产品都符合高标准的质量要求。此外,公司还鼓励员工提出改进建议,通过持续改进来不断提升产品质量和客户满意度。

ZTE高新兴(Gosuncn)公司的发展小趣事

随着公司产品的技术成熟和品质提升,Esterline Power Systems开始寻求国际市场的拓展。公司高层制定了明确的国际化战略,包括在欧洲和亚洲设立分支机构,与当地合作伙伴建立紧密的合作关系。通过参展国际航空展、加强与全球航空公司的技术交流与合作,公司逐渐打开了国际市场的大门,产品销售遍及全球多个国家和地区。

问答坊 | AI 解惑

电子琴

1.实验任务 (1).由4X4组成16个按钮矩阵,设计成16个音。 (2).可随意弹奏想要表达的音乐。 2.电路原理图                            &nbs ...…

查看全部问答>

ARM编程-ADS软件

我编完程序,在ADS1.2中编译时,在2410init.s中有2个错误。error 1, unkonwn opcode: AREA Init,CODE,READONLY,程序接下来是ENTRY ,报错,error 2 ,A label was found which was in no AREA,请教大家,这是怎么回事?…

查看全部问答>

?ARM9200求合作 高薪聘请

   项目工程,寻找合作伙伴,大概情况是这样的:ATmel芯片的ARM9200板子已经做好了,可以正常的启动,程序也可以运行。 现在这个板子的USB口可以识别FAT和FAT32格式的硬盘,不能识别NTFS格式的硬盘。板子的上所有的应用程序是在linux2.6 ...…

查看全部问答>

100分求助:WINCE下如何设置触摸屏有效范围???

请问各位:     如何设置触摸屏的有效触摸范围,如原来320*240 现在想让触摸屏的有效触摸范围小一圈如:315*235 在有效范围之外不会触发中断 请问如何设置或者修改 谢谢各位!…

查看全部问答>

如何在Linux下与串口建立连接?

我按照文章《Linux 下串口编程入门》(IBM)试着在Linux下和GPRS Modem的串口建立连接,实现收发短信。 open( \"/dev/ttyS0\", O_RDWR | O_NOCTTY | O_NDELAY )过后,向串口设备写入命令用的是Linux的write(fd, \"AT\\r\", 3),从串口中读用的是 ...…

查看全部问答>

无接触式人体体温计

比赛使用过这个传感器,一直想做好,但是没做,呵呵…

查看全部问答>

【LaunchPad】 MSP430 LaunchPad新手引导贴

最近很多新同学都拿到了团购的开发板,但是很多同学和我一样第一次接触MSP430,拿到板子之后感觉无从下手,但是感谢论坛的各位大大,为我们提供了非常多的资料和教程,所以just follow~~~step1:下载并安装开发环境。MSP430的开发环境有IAR和CCS两 ...…

查看全部问答>

ALTERA Cyclone V 评估板 电路图 共36张

PDF文件: [ 本帖最后由 dontium 于 2012-12-6 14:42 编辑 ]…

查看全部问答>

【嵌入式】 wince 移植 必杀技

    结束了嵌入式生涯,现在改行了,以前的东西会慢慢被淡忘,真滴好担心,因此每天晚上都抽时间温习下,让自己每天都进步,我把自己的总结贴出来跟大家一起分享:   1.arm上wince的移植概要 需要的仅仅是bsp包,常常由厂家提 ...…

查看全部问答>

帮忙看看这烙铁头哪家淘宝店有卖

烙铁头用了很久,都钝了。帮忙看看这烙铁头哪家淘宝店有卖。 …

查看全部问答>