我们迎来了波音航空俱乐部技术部的二轮培训。
师姐耐心授课
师兄悉心指导
小鲜肉们专心地听讲
本次培训的回顾
件仿真,顾名思义。就是把我们从繁杂的电路焊(xi)接(du)中解放出来的一类软件。让我们能够越过硬件的搭建而直接查看程序的效果。
请跟随我们的步伐走近仿真吧1.安装
2.新建一个画布
询问我们是否需要载入示例项目,在这里我们暂时选No。
进入软件之后,就会看到这样的界面。可以按下ctrl+S组合键对仿真工程进行保存。
按照相同的方法添加上电容、电阻、排阻(respack)、晶振(crystal)、按钮(button)。可在 keywords 搜索元件的英文名,或对应电容、电阻值。
Proteus 功能非常强大,不仅可以用于软件仿真,也可用于PCB制版。所以元件的命名大多由元件类型+封装+标值+误差得到。如果仅仅是仿真,那么我们关心的主要是标值。
首先我们在元件列表中单击一下你要绘制的元件。此时把鼠标移动到画布上,会变成一个铅笔型的指针。
此时让我们移动鼠标,把元件移动到想要的位置,再单击一下鼠标左键,一个元件就成功绘制到画布上啦!
单击一下模型选择工具栏中的黑色指针图标(第一个),然后把鼠标移动到元件的引脚处,会变成绿色的铅笔。单击一下鼠标左键就可以开始连接线了。
细心的小伙伴们可能会问了,有的地方需要接VCC,有的地方需要接GND。画布上可没有电池盒,怎么办呢?不要着急,我们有“端口”来帮忙。
模型选择工具栏的第8个按钮(像标签一样)的图标 “Terminals Mode” 单击一下,元件列表会变成7个标签,我们选择POWER将电源端放置在需要接VCC的地方,放置方法和元件相同。放置完成后,双击放置好的端口,在弹出窗口中 String 方框内输入“+5V”或“VCC”。
相同的方法,我们也可以将GROUND端放置在需要的地方。同样放置好后,双击放置好的端口,在 String 方框内输入“0V”或“GND”。
更细心小伙伴们可能会问:“单片机好像没有VCC和GND的引脚怎么供电呢?” 仿真软件在设计时默认芯片是正常工作的,也就是电源已经接好,不需要我们来考虑了。是不是很人性化呢?
怎样检测一下自己辛苦的劳动成果是不是正确的呢?别着急,我们先单击一下左下角“仿真控制”工具栏的“播放”按钮。此时会有一个类似编译的过程,检测元件之间的电气连接。双击“仿真控制”工具栏旁边的感叹号,可弹出一个提示消息框。若电路无误,则只有一个黄色叹号的警告 “No program cod loaded” 意思是我们还没有烧录程序进单片机。如果出现红叉,则是电路出现严重错误了,需要重新仔细检查。
那么,怎样烧录程序呢?原来做过最小系统版的小伙伴们肯定知道,烧录程序是非常考验我们小心脏的一个环节,那么对于仿真的烧录又是怎么样的呢?
对于 Proteus 仿真,程序的烧录非常轻松愉快。只需要双击画布上又大又美(雾)的单片机,就会biu~地弹出一个对话框,第四行的 Program file旁边有一个文件夹的小图标,单击她,选择我们要载入的.hex文件,烧写就完!成!啦!是不是超级简单呢!
并行通信时数据的各个位同时传送,可以实现字节为单位通信,但是因为通信线多占用资源多,成本高。比如我们前边用到的P0 = 0xfe;一次给P0的8个IO口分别赋值,同时进行信号输出,类似于有8个车道同时可以过去8辆车一样,这种形式就是并行的,我们习惯上还称P0、P1、P2和P3为51单片机的4组并行总线。
而串行通信,就如同一条车道,一次只能一辆车过去,如果一个0xfe这样一个字节的数据要传输过去的话,假如低位在前高位在后,那发送方式就是0-1-1-1-1-1-1-1-1,一位一位的发送出去的,要发送8次才能发送完一个字节。
两个单片机之间要通信,首先电源基准得一样,所以我们要把两个单片机的GND相互连起来,然后单片机1的TXD引脚接到单片机2的RXD引脚上,即此路为单片机1发送而单片机2接收的通道,单片机1的RXD引脚接到单片机2的TXD引脚上,即此路为单片机2发送而单片机2接收的通道。这个示意图就体现了两个单片机各自收发信息的过程。
当单片机1想给单片机2发送数据时,比如发送一个0xE4这个数据,用二进制形式表示就是0b11100100,在UART通信过程中,是低位先发,高位后发的原则,那么就让TXD首先拉低电平,持续一段时间,发送一位0,然后继续拉低,再持续一段时间,又发送了一位0,然后拉高电平,持续一段时间,发了一位1……一直到把8位二进制数字0b11100100全部发送完毕。这里就牵扯到了一个问题,就是持续的这“一段时间”到底是多久?从这里引入我们通信中的另外重要概念——波特率,也叫做比特率。
波特率就是发送一位二进制数据的速率,习惯上用baud表示,即我们发送一位数据的持续时间=1/baud。在通信之前,单片机1和单片机2首先都要明确的约定好他们之间的通信波特率,必须保持一致,收发双方才能正常实现通信,这一点大家一定要记清楚。