说明:

MCU系列文章为我们的球队文章的其他成员。发表在原创和非网络。章集中于此

原地址:http://www.eefocus.com/bbs/article_1156_541662.html

转载须注明原地址

首先说下。我和另外一位同学是在智能家居系统中负责单片机部分的成员,我们是计算机专业的,初次接触单片机。下面内容仅适合菜鸟的单片机新手教程。

我们想要实现的功能是PC和51单片机的串口通信,即PC发指令给51。51可以做出对应的反应,51那边按了有关button后,PC能收到这个信号。这对于电气。动机专业的同学来说是再简单只是的事了。可是我是学计算机软件的,对硬件不懂。所以以下我要写的内容都是我一步一步摸索的过程。希望对那些还没有入门的同学有一些帮助。

我打定主意要学51后。就去网上搜资料。加了2个51群。

有什么不懂的就去群里问。

他们都推荐先看郭天祥的《新概念51单片机        C语言 教程》(绝非打广告)。

于是网上下了一个PDF(附件太大了就不上传了,自己去网上搜)。一点点開始看,当然了。对于学计算机的我来说,C语言还是懂一点的,所以看起书来比較轻松,一边看一边对着KEIL和proteus练习、仿真。总结起来就一点:查表。

各种芯片。哪个管脚有什么功能等等都是查表。然后敲代码,有点繁琐,于是我就直接看和我的任务有关的部分,就是51和PC的串口通信那部分。

关于这一部分,网上也都有非常多教程,因为当时我还没有买各种元件,所以打算先在笔记本上仿真。于是我找了非常多资料。但都说得模棱两可,并且有关于笔记本和51通信的资料非常少,当中我看到一篇文章描写叙述的还算清楚。百度文库地址:http://wenku.baidu.com/view/49c49c0d6c85ec3a87c2c5f0.html
我照着上面的步骤做。PC和51还是不能通信。后来能够说是经过我的各种折腾吧,也不知道怎么的就连上了。

以下把我的具体过程说下。

在笔记本上模拟PC和51通信:

先看一下电路图吧:

此电路的主要功能就是在PC上发送一个数字。7段数码管能显示对应的数字,发送指定的字母,对应的LED灯会亮或灭。

另外LED还能够被物理开关控制。网上说在proteus里仿真不须要MAX232和晶振,可是在实际连电路的时候还是须要的。这里我由于我当时不知道怎么连MAX232所以就没有连。

好了,要想实如今笔记本上模拟51和PC通信,须要下面软件:

1)  proteus

2)  虚拟串口调试软件(由于笔记本没有物理串口。所以仅仅能虚拟出来)

3)  串口调试助手

Proteus安装没什么好说的,虚拟串口调试软件在以下的附件中。安装非常easy,网上找一下,打开虚拟串口软件,它的界面是这种:

左边的physical ports就是物理串口。因为我的笔记本没有物理串口,所以为空;virtual ports就是虚拟串口,我之前用过,所以有4个串口,other virtual ports其它串口,无论。

你如今要做的就是在右边,port一,二上选择com1,com2(由于有些串口调试助手仅仅能选择1,2两个口,所以为了照应后面的操作。最好选择com1,com2),然后点击加入port。这样左边virtual ports就会多出2个串口。像上图。com2后面有[9600-N-8-1]说明有程序在用这个port,波特率是9600,校验位为NONE,数据位为8,停止位为1等。其它的就是空的,没有程序在用。

这样就虚拟出了2个串口,比方COM1和COM2。

然后你打开proteus软件,打开上面的电路图,双击单片机选择对应的.hex文件,设置晶振等。重要的一步是:双击compim。设置见下图。

当中的physical port我们选com1,表明这相当于51引出来的一个串口,波特率设置为9600,注意这里的9600要和你的源码相一致。我的源码(在末尾附件)中有TH1  = 0xfd;这样一句。就是设置了波特率为9600,所以在这里,你必须选择9600. 奇偶校验位NONE。数据位8,停止位1等待。

设定点之后OK保存。此时,你会proteus操作完成。

(由于附件被限制。打开另外一个)

新秀学习51供应链管理的----模拟笔记本PC和51串行通讯1的更多相关文章

  1. 基于51的串行通讯原理及协议详解(uart)

    串行与并行通讯方式并行:控制简单,传输速度快.线多,长距离成本较高且同时接受困难.串行:将数据字节分成一位一位的行驶在一条传输线上进行传输.如图:   同步与异步串行通讯方式同步串行通讯方式:同步通讯 ...

  2. STM32学习笔记——SPI串行通讯(向原子哥学习)

    一.SPI  简介 SPI是 Serial Peripheral interface 的缩写,就是串行外围设备接口.SPI 接口主要应用在  EEPROM, FLASH,实时时钟,AD 转换器,还有数 ...

  3. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  4. 芯航线FPGA学习套件之多通道串行ADDA(TLV1544,TLC5620)模块测试手册

    芯航线FPGA学习套件之多通道串行ADDA模块测试手册   本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的ADDA模块的测试方法:   连接开发板,如下所示: 2.将ADDA V1.1模块与开 ...

  5. STM32学习笔记(五) USART异步串行口输入输出(轮询模式)

    学习是一个简单的过程,只要有善于发掘的眼睛,总能学到新知识,然而如何坚持不懈的学习却很困难,对我亦如此,生活中有太多的诱惑,最后只想说一句勿忘初心.闲话不多扯,本篇讲诉的是异步串行口的输入输出,串口在 ...

  6. java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...

  7. 强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)

    在强化学习(十七) 基于模型的强化学习与Dyna算法框架中,我们讨论基于模型的强化学习方法的基本思路,以及集合基于模型与不基于模型的强化学习框架Dyna.本文我们讨论另一种非常流行的集合基于模型与不基 ...

  8. PHP:面向对象学习笔记,重点模拟Mixin(掺入)

    背景 相对于Python.Node和Ruby来说PHP算是一门容易学习和使用的语言,因为这个特点也使其成为WEB开发领域的佼佼者,本文记录一下我对PHP面向对象部分的学习笔记. 先来一个复杂的例子:M ...

  9. 数据结构算法学习之队列(数组模拟java实现)

    数组模拟队列 数组模拟队列 今天学习数组模拟队列.队列常用于生活中的方方面面.比如银行叫号排队.实际上就是队列.所有人抽号排队.先去的先抽号.所以靠前的号最后会先被叫到然后出队.后边的会随之往前移位. ...

随机推荐

  1. HDU4911-Inversion(树状数组)

    Inversion Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota ...

  2. 计算机视觉与模式识别代码合集第二版three

    计算机视觉与模式识别代码合集第二版three     Topic Name Reference code Optical Flow Horn and Schunck's Optical Flow   ...

  3. UVALive 5790 Ball Stacking 解题报告

    比赛总结 题目 题意: 有n层堆成金字塔状的球,若你要选一个球,你必须把它上面那两个球取了,当然也可以一个不取.求选的球最大的权值和. 题解: 将这堆球转成举行,第一行是(0,0),第二个是(1,0) ...

  4. iframe动态创建及释放内存

    近期參与一个项目的开发,因为项目是基于浏览器的胖client(RIA)应用程序,页面中大量调用iframe.后期測试发现浏览器内存一直居高不下,并且打开iframe页面越多内存占用越大.在IE系列浏览 ...

  5. Linux内核升级

    一.测试环境 CentOS6.5 X86 64位 内核版本为 2.6.32 VM 10.07 二.编译内核版本 2.1.kernel 3.2.71 2.2.kernel 3.4.108 2.3.ker ...

  6. 使用 JQueryMobile 点击超链接提示“error loading page” 错误

    使用jquery mobile创建dialog时出现加载错误,“Error Loading Page”. 原因是:jquery mobile页面默认采用ajax方式进行交互,而ajax方式下是不支持f ...

  7. 如何不屏蔽Android系统的返回按键

    比如: 第一种方法: public boolean onKeyDown(int keyCode, KeyEvent event) {         // TODO Auto-generated me ...

  8. unity3D的FingerGestures小工具

    夹 FingerGestures包结构 FingerGestures样例列表 设置场景 教程:识别一个轻敲手势 教程:手势识别器 教程:轻击手势识别器 教程:拖拽手势识别器 教程:滑动手势识别器 教程 ...

  9. 使用cacti监控服务器

    一.cacti安装 cacti需要lamp环境,因此需要首先编译安装lamp环境,安装完成后,下载cacti的zip包,解压到/www/htdocs目录下,创建cacti需要的数据库. 完成上述后,在 ...

  10. Jersey框架二:Jersey对JSON的支持

    Jersey系列文章: Jersey框架一:Jersey RESTful WebService框架简介 Jersey框架二:Jersey对JSON的支持 Jersey框架三:Jersey对HTTPS的 ...