历史上的今天

今天是:2024年11月19日(星期二)

2018年11月19日 | C51语言编程:单片机与 PC 串口通信程序

发布者:学海飘香 来源: eefocus关键字:C51  语言编程  单片机  串口通信 手机看文章 扫描二维码
随时随地手机看文章

单片机接收PC机发来的指令信号,然后单片机又向PC机发送字符串。具体要求如下:


当接收指令信号为:'go',单片机向PC机发送字符串:WELCOME TO CHINA!;


当接收指令信号为:'who',单片机向PC机发送字符串:MY NAME IS LIMING;


当接收指令信号为:'home',单片机向PC机发送字符串:  


YINGYONGKEXUEXUEYUAN。


PC机上的串口调试软件,会在窗口显示出单片机送回来相应字符串;


如果接送的字符串不正确,单片机不响应。


采用C语言。


题目链接:http://zhidao.baidu.com/question/282477940.html


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


做而论道回答如下:


看看下面的。


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


#include


#include


#define uchar unsigned char


#define uint unsigned int


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


uchar idata trdata1[] = {


'W','E','L','C','O','M','E',' ','T','O',' ','C','H','I','N','A','!',0x0d,0x0a,0x00};


uchar idata trdata2[] = {


'M','Y',' ','N','A','M','E',' ','I','S',' ','L','I','M','I','N','G',0x0d,0x0a,0x00};


uchar idata trdata3[] = {


'Y','I','N','G','Y','O','N','G','K','E','X','U','E','X','U','E','Y','U','A','N',0x0d,0x0a,0x00};


uchar RxBuf[5], Rx_p, Rx_i, TX_p, Tx_i;


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


void UART_Init(void) //串口初始化


{


PCON = 0x00;


SCON = 0x50; //串口工作方式为1,允许接收.


TMOD = 0x20; // T1 定时方式2


TH1 = 0xfd; //波特率 9600bps @ fosc = 11.0592MHz


TL1 = 0xfd;


TR1 = 1; //启动T1


ES = 1; //开串口中断.


EA = 1; //开总中断.


}


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


void main()


{


UART_Init();


Rx_p = 0;


Rx_p = 2;


while(1) {


if (Rx_p != 0) {


TX_p = Rx_p;//字符串1 2 3


Tx_i = 0; //字符指针.


Rx_p = 0; //清零.


Rx_i = 0;


TI = 1; //启动发送中断.


} }


}


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


void Uart_INT(void) interrupt 4 //串口中断函数


{


uchar Tcv = 0;


if(RI) { //接收?.


RI = 0; //标志位清零.


RxBuf[Rx_i] = SBUF;


if((RxBuf[Rx_i - 1] == 'g') && (RxBuf[Rx_i] == 'o')) Rx_p = 1;


if((RxBuf[Rx_i - 2] == 'w') && (RxBuf[Rx_i - 1] == 'h') && (RxBuf[Rx_i] == 'o')) Rx_p = 2;


if((RxBuf[Rx_i - 3] == 'h') && (RxBuf[Rx_i - 2] == 'o') && (RxBuf[Rx_i - 1] == 'm') && (RxBuf[Rx_i] == 'e')) Rx_p = 3;


P1 = Rx_p; //在P1显示收到的信息.


Rx_i++;


Rx_i %= 5;


}


else {


TI = 0;


if (TX_p == 1) Tcv = trdata1[Tx_i]; //取来待发字符.


if (TX_p == 2) Tcv = trdata2[Tx_i];


if (TX_p == 3) Tcv = trdata3[Tx_i];


if (Tcv != 0) {SBUF = Tcv; Tx_i++;} //不是0就发送.


}

 

}


关键字:C51  语言编程  单片机  串口通信 引用地址:C51语言编程:单片机与 PC 串口通信程序

上一篇:51单片机--巧记步进电机相关知识
下一篇:利用8031单片机,设计跑马灯和流水灯

推荐阅读

Christoph KäemmererADI公司 科技和工业的发展不断将人类进步推向新的高度。技术发展历史上的巨大飞跃(或里程碑)称之为工业革命。现在,我们已经迈入一个新阶段:工业4.0。 第一次、第二次和第三次工业革命分别带来蒸汽动力和水力生产、大规模电气化生产以及计算机技术,第四次革命的重点则转向了数字自动化工厂。企业全面广泛运用数字自动化技术,通...
都说做生意不容易,在争取合作时,组织一场充分体现产品、服务优势的报告,能让客户更直观、深入地了解公司实力,比起口头表达,文字、图表等展现形式更显专业。 但如果呈现报告的商务投影仪效果欠佳,就令人头秃。能想象吗?下午约客户到公司,一行人日常商业互吹,气氛融洽。但打开会议室商务投影仪后,却发现屏幕很暗,看不清楚,即使关灯、拉窗帘后,...
关注数码及耳机的朋友应该知道,三星的“豌豆”耳机非常有名。三星“豌豆”即Galaxy Buds系列包括3款无线耳机,除了基础的Galaxy Buds,还有Galaxy Buds+和Galaxy Buds Live两个升级版。那么,Buds+和Buds Live到底有啥区别?11月18日,@中国三星 分享了一张长图,为我们解答这个问题。 一图看懂三星Buds+和Buds Live耳机异同 ...
- 国内碳化硅产业化带有“学研”基因极为突出,“产学研用”已成国内碳化硅衬底领域的重要特色;- 国内SiC商业化衬底以4英寸为主,逐步向6英寸过渡,与国际主流相比,我国大尺寸SiC单晶衬底制备技术仍不成熟,单晶衬底尺寸仍然偏小;- 国内SiC单晶材料领域在以下方面存在一定风险:一是SiC单晶企业无法为国内已经/即将投产的6英寸芯片工艺线提供高质量...

史海拾趣

问答坊 | AI 解惑

鼓励大家把好的创意或者Diy拿出来秀哦

如题,希望把这个板块做好,有些国外的帖子也很好,可以给大家一点启发的,可能很多人都不知道,您发了,大家就看到了,就会多些创意思路,光说不练是不对的,马上发贴 ,另外,一分耕耘一分收获,…

查看全部问答∨

莫名其妙有输出?

两个单片机之间的通信,只要一上电,其中一个单片机上的输出信号端口就一直发送脉冲信号,程序中应该是在一个标志位的控制下才会发送数据的。已经检测外围电路,并没有干扰,就是由单片机自身发出的信号。造成这种现象的原因可能是什么啊?…

查看全部问答∨

DSP6713开发板,DSP开发板,6713开发板

开发板中心网址:http://www.huanor.com 开发板中心论坛:http://www.huanor.com/bbs 淘宝网址:http://shop36289907.taobao.com QQ: 1060087047或者871001268 手机:13466617480或者15801405586 座机:010-82534219 Email:huanor_sales@hot ...…

查看全部问答∨

数字湿度计有没有人弄成功啊!!!

昨晚准备开始调试代码,上电时发现有点不对劲,一摸才知道SHT21非常烫,而且在我的手上留下了深深的烙印,经过检查,没有发现什么问题,但是电压输出只要2V多点,很奇怪。不知道大家有没有弄成功的,都不敢上电了,不知道我的传感器坏了没有。。。…

查看全部问答∨

高效率嵌入式ARM程序开发

在多媒体、通信等计算复杂度高的应用中,为了满足制造费用、功耗、性能以及实时性等诸多**条件的要求,嵌入式系统程序往往需要特殊设计。这使得设计师在设计面向特定应用的嵌入式软件时,需要有一套切实可行的编程准则。而在实际程序设计中,工程师 ...…

查看全部问答∨

求问windows驱动开发NT、WDM与wince的区别

本人是最近才接触windows驱动编程的新人,正在将一份代码从vxworks操作系统移植到windows操作系统下,当时参考了一本书《windows驱动开发技术详解》,用了NT模式,虽然知道这个模式比较老,但是基本功能都可以实现。现在遇到的问题是它的实时性很差 ...…

查看全部问答∨

2010英特尔杯获奖作品--皮影艺术,凌动舞台

针对皮影戏这一国家非物质文化遗产逐步淡出人们视线的现状,以唤回人们对皮影的关注为目的,设计了皮影表演系统。系统将现代计算机技术与传统皮影艺术相结合,使用高效能的基于Intel(R) Atom(TM)处理器的嵌入式平台,结合自主设计的数字控制机械系 ...…

查看全部问答∨

北京招聘两个嵌入式软件工程师

人手不够啊,想招两个嵌入式搞软件的专职人员,一个有工作经验的,可以直接上手干活的,另一个可以是应届的新手,慢慢培养。 招聘职位:嵌入式软件工程师 职位要求: 相关专业毕业,专科以上学历; 一年以上相关工作经验; 熟悉C语言,及嵌入 ...…

查看全部问答∨

出青风 QF-TM4C123 TI LM4F232 Cortex-M4 开发板

本帖最后由 nwcheroes 于 2014-7-21 23:48 编辑 青风QF-TM4C123开发板,做毕设的时候用过一段时间,做完就放着吃灰了。现在和jlink打包一起出,资料光盘都有 http://item.taobao.com/item.htm?id=40208434125 …

查看全部问答∨

一些电子模块、板子、相机

本帖最后由 ddllxxrr 于 2016-1-7 16:23 编辑 准备离校了,开始清仓换点生活费。 现在还在整理当中,整理好后,统一发图及链接。 东西还会陆续更新,什么电饭煲啊,电磁炉啊,低音炮,捷安特660,什么乱七八糟的都出了 …

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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