说明:

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. javascript中使用Map

    mis.comm.js.Map = function() { this.elements = new Array(); //获取MAP元素个数 this.size = function() { ret ...

  2. 并发编程实践五:ReentrantLock

    ReentrantLock是一个可重入的相互排斥锁,实现了接口Lock,和synchronized相比,它们提供了同样的功能.但ReentrantLock使用更灵活.功能更强大,也更复杂.这篇文章将为 ...

  3. latex命令替换之\newcommand

    有时候我们在用latex写文档的时候不想写很长的命令,那么我们自己定义一个新的命令来替换一段代码. 举例如下: \usepackage{booktabs} \usepackage{multirow} ...

  4. 慕尼黑大学公开课 Competitive Strategy(竞争策略)总结

    第一章博弈 同时的博弈:双方同时定制策略 如果有显著的次优策略总是不如另一个,则剔除它. 如果一个策略组合中没有一方可以单独改变其策略以提高回报,则称为Nash均衡.一个游戏可能没有也可能有多个Nas ...

  5. uva10480(最小割)

    传送门:Sabotage 题意:给定多个城市的网络,每个城市之间的通信有花费,要求使得首都和最大城市之间的通信断掉的最小花费.要求输出任意一组砸掉的边. 分析:跑一遍最大流dinic后,根据最小割定理 ...

  6. BZOJ 1324 Exca 神剑 最小割

    标题效果:鉴于加权值矩阵,带走一个地方的权利值之后,与其相邻的格儿童权利值变0.问多少可以取出到右值. 思维:Amber论文题目.不难建设,图着色.颜色从S连边,还有一种颜色向T连边.再把相邻的格子连 ...

  7. android中file的使用实例

    File是android的4种存储方式的一种.File就是文件的意思一个文件,你无非是想进行读写操作.所以这就用到两个流.一个数输入流,一个是输出流.FileOutstream,和FileInputS ...

  8. Python 收集Twitter时间序列数据

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-18 @author: guaguastd @name: c ...

  9. Java使用反射机制优化工厂方法

    我先举个例子,有一个接口People,这个接口有一个方法: package com.wjy.reflect; public interface People { public abstract voi ...

  10. Java中定时器的使用

    import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.T ...