<模拟电子学习1>Multisim 12.0 结构和仿真51最小的单芯片系统
周围环境:
系统环境: win7 64位置
软件平台:Multisim 12.0
目的:
刚毕业,可是模电知识也忘得差点儿相同了,加之自己想搞搞硬件设计。假设仅仅是看模电书。不实践,还是终觉浅。当做兴趣一样学学模电,仿真仿真。
Multisim的MCU少,就拿51来练练手。搭建51单片机仿真系统,配合着记录一下书本的知识。
概述:
最后使用Multisim 12.0搭建出来的最小系统为图1-1所看到的,通过编敲代码能够使LED1循环闪烁。
图1-1
正常来说。51单片机最小系统一般包含单片机、晶振电路、复位电路,我没有加入复位电路,由于仅仅是模电的Hello World而已,先熟悉仿真流程。
步骤:
1、建立一个目录MCUDemo。存放所创建的project。我这里路径是 F:\Multisim\MCUDemo
图1-2
2、打开Multisim 12.0 软件
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-3
软件的首界面为图1-4。能够再左边project栏看到默认创建了一个名字为 Design1的Multisimproject
图1-4
3、 选择File/Save as或者Ctrl+S,保存一下新project。并改名字为 MCU51Demo。存放在第1步创建的目录,如图1-5所看到的,选择“保存”button
图1-5
保存完后,软件界面截图例如以下
图1-6
4、放置单片机。选择菜单条的 Place/Component,弹出“Select a component”对话框,选择 Group为 “MCU”,Family为“805x”,Component为“8051”。如图1-7所看到的
图1-7
5、在图1-7对话框内,选择好器件后,点击右上角的“OK”button,这时能够将选中的8051器件放置在原理图中。当放置好之后(也即点击鼠标左键)。会弹出MCU Wizard创建向导。如图1-8所看到的
图1-8
6、在图1-8所看到的中。选择工作空间存放的路径,这里为第1步所创建的目录F:\Multisim\MCUDemo\,工作空间名字取名为 MCU51,例如以下图1-9
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-9
设置好之后,选择 Next
7、这一步是设置MCU的project的类型以及编译语言、名字,Project Type里有Standard和 External Hex File。前者是标准类型(事实上我也没用后者),后者是导入外部HEX文件。在本实验中,我选择“Standard”;编程语言Programming Language里选择“C”。即用C语言; 编译工具Assembler/compiler tool一栏选择默认;project名字Project name设置为“MCU51Debug”。突然感觉起了好多名字。
设置好之后如图1-10所看到的
图1-10
设置好之后,选择“Next”
8、接下来是设置是否创建空project。这里按默认值,直接加入一个main.c文件,如图1-11所看到的
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-11
选择“Finish”
9、此时Multisim的project结构如图1-11所看到的
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-11
10、接下来就是要搭建最小系统了。首先搭建晶振电路,先加入晶振,选择菜单条 Place-->Component,在Multisim中,晶振的所属的GROUP为 Misc。Family为CRYSTAL,如图1-12所看到的,选择 晶振“HC-49/U_11MHz”,我没找到12M的。
图1-12
点击右上角的OK。将其放置在合适的位置,这里放置好之后。我右键旋转了一下,放置好之后的如图1-13
图1-13
11、然后放置2个30pf的电容,相同的 Place-->Component,电容的Group为Basic,Family为 CAPACITOR,例如以下图1-14所看到的
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-14
点击“OK”,放置在合适的位置,依照相同的方法再放置一个30pF的电容,如图1-15所看到的
图1-15
12、然后再放置地 DGND,相同的Place-->Component,如图1-16所看到的
图1-16
放置后的效果如图1-17
图1-17
到此。晶振电路就搭建好了,如今能够先将这一部分用线Wire连接,顺带着把单片机的地线也连接,连接后如图1-18所看到的
图1-18
13、放置电源VCC。放置步骤不再啰嗦,如图1-19
图1-19
放置并连线,如图1-20
图1-20,
到这里事实上,51单片机的最最最小系统已经搭建好了,注意当中31脚也和VCC连接了,这是由于对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部
ROM的0000H開始运行;当接低电平时,复位后直接从外部ROM的0000H開始运行。这一点是刚開始学习的人easy忽略的。
虽然最小系统已经搭建好了,可是也无法通过仿真看有什么效果。这里加入一个LED灯,来显示仿真结果。
14、相同的加入一个LED,如图1-21。器件对话框。这里选择了一个红色LED
图1-21
放置在电路图合适的位置,如图1-22
图1-22
15、此时LED还不能直接连接,须要加入一个电阻。保护二极管LED,加入一个1K的电阻,如图1-23
图1-23
放置并连接,如图1-24
图1-24
我LED灯与单片机连接的引脚是P2.0,引脚能够随便连接。
接下来就是Ctrl+S保存一下,再编写51程序
16、双击图1-25所看到的的main.c
图1-25
此时main.c的内容如图1-26所看到的
图1-26
17、编敲代码,编写完后的main.c内容例如以下图1-27
图1-27
注意 Multisim里的51头文件是8051.h ,不是 reg51.h
18、保存一下文件,然后选择工具栏的 MCU-->MCU 8051 U1-->Build,编译程序。如图1-28所看到的
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-28
编译的结果例如以下图1-29。
此时 0 Errors 0 Warnings
图1-29
19、回到原理图界面,点击如图1-30红线圈起的開始button。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-30
20、此时,按常理来说,LED1应该不停闪烁,可是我的没有闪烁。
这个与LED的工作电流有关系,以下改动一下,首先 停止仿真。即菜单条 Simulator-->Stop。然后双击LED1,弹出LED1的属性对话框,例如以下图1-31
图1-31
将上图的On Current值“5”该低一些。这里改为 “2”,例如以下图1-32所看到的
图1-32
点击OK。然后Ctrl+S保存,再点击“開始仿真”button或者 Simulator-->Start,弹出例如以下对话框
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
点击“Yes”。此时能够看到LED1闪烁
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXliZWxpZWYzMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图1-33 LED灭 图1-34 LED亮
结语:
到这里,利用Multisim仿真51单片机点亮LED灯的例程差点儿相同完了。中间的一些细节问题还想再写一写。可是到时间去做运动了。
不喜勿喷,纯粹就是个人笔记而已。感觉仿佛回到了初中写博客时,...╮(╯▽╰)╭他来上海是不是easy什么
版权声明:本文博主原创文章,博客,未经同意不得转载。
<模拟电子学习1>Multisim 12.0 结构和仿真51最小的单芯片系统的更多相关文章
- 深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- Zend Studio 12.0.2正式版发布和破解方法,zend studio 12.0.1汉化,相式设置为Dreamweaver,空格缩进为4个, 代码默认不折叠的设置,Outline中使用的图形标志,代码颜色之eot设置。
背景:zend studio 12.0.2 修复了一个12.0.1的: Fixed problem with referenced variables marked as undefined,我都说 ...
- Navicat Premium 12.1.12.0安装与激活
转载自:Navicat Premium 12.1.12.0安装与激活 作者:丿记忆灬永殇丨 链接:https://www.jianshu.com/p/5f693b4c9468 navicat12112 ...
- Tensorflow平台快速搭建:Windows 7+TensorFlow 0.12.0
Tensorflow平台快速搭建:Windows 7+TensorFlow 0.12.0 1.TensorFlow 0.12.0下载 2016年11月29日,距离TensorFlow 宣布开源刚刚过去 ...
- ubuntu 12.0.4 下python3.x web环境搭建
ubuntu 12.0.4 安装python3.x 1. $ sudo add-apt-repository ppa:fkrull/deadsnakes$ sudo apt-get update$ s ...
- Navicat Premium 12.1.12.0破解版激活
声明:本文所提供的所有软件均来自于互联网,个人存放在此作为备用,以备将来不时之需,同时作为大家的分享和学习成果,仅供个人研究和学习使用,请勿用于商业用途,下载后请于24小时内删除,请支持正版! 附:二 ...
- “未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
不论是连接Access数据库或是SQL Server数据库,"未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序."这个问题从Of ...
随机推荐
- android蓝牙主动发起配对实例
package cn.madfinger.core; import java.io.IOException; import java.lang.reflect.Method; import java. ...
- Log4net.confager配置官方文档
http://logging.apache.org/log4net/release/config-examples.html
- POJ3984 迷宫问题 BFS
看题传送门:http://poj.org/problem?id=3984 BFS水一发 明天帮学弟挑电脑顺便去玩.接下来几天好好看数据结构.嗯哼. 这题标准的BFS应用,唯一需要注意的是需要输出中间的 ...
- SpringCloud微服务学习笔记
SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...
- thinkphp3.2.3 自动验证 正则验证
<?php namespace Home1\Model; use Think\Model; class ShopYuyueInfoModel extends Model { // protect ...
- java根据xml配置文件导出excel通用方法
java web项目中时常会用到导出功能,而导出excel几乎是每个项目必备的功能之一.针对形形色色的导出方法及个人平时的工作经验,特将导出excel方法整理成通用的方法,根据xml配置来实现特定的导 ...
- java异常中Exception捕获不到的异常
一 概念 众所周知java提供了丰富的异常类,这些异常类之间有严格的集成关系,分类为 父类Throwable Throwable的两个子类Error和Exception Exception的两个子类C ...
- Java工具类:给程序增加版权信息
我们九天鸟的p2p网贷系统,基本算是开发完成了. 现在,想给后端的Java代码,增加版权信息. 手动去copy-paste,太没有技术含量. 于是,写了个Java工具类,给Java源文件 ...
- JNDI 的理解
JNDI是 Java 命名与文件夹接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之中的一个,不少专家觉得,没有透彻理解JNDI的意义和作用 ...
- jquery-2 jQuery原理和核心方法(多看学习视频)
jquery-2 jQuery原理和核心方法(多看学习视频) 一.总结 一句话总结:jQuery就是普通的js对象,只不过方法比较多而已,属性就length一个. 1.jquery的链式操作的底层原 ...