欢迎来到天天文库
浏览记录
ID:22019995
大小:54.50 KB
页数:5页
时间:2018-10-26
《基于multisim10的单片机动态显示仿真技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Multisim10的单片机动态显示仿真技术摘要:本文阐述了在单片机动态显示的原理方法,以8051为中心给出了其硬件电路的构成,并着重阐述了在Multisim10中进行单片机动态显示仿真设计的具体方法。关键词:Multisim10;单片机;8051;仿真;编译Multisim10是美国国家仪器公司(NI,NationalInstruments)推出的计算机电子仿真软件。Multisim10实现计算机仿真时设计和实验用的元器件和测试仪器和仪表齐全,可以完成各种类型的电路设计与实验;可以方便地对电路参数进行测试和分析;设计与实验可以同步进行,可以边设计边实验,修改调试方便;可直接打印输出实验
2、数据、测试参数、曲线和电路原理图;实验中不消耗实际的元器件,实验所需的元器件和数和数量不受限制,实验成本低,实验速度快,效率高;设计和实验成功的电路可以直接在产品中使用。Multisim10版本可用于单片机和可编程逻辑器件的仿真分析,为单片机系统的仿真设计提供了较好的解决方案。multisim10提供了805x、PIC、RAM和ROM等4个系列的单片机芯片和可编程逻辑器件,使得该软件的实际应用得到了大大的增强。本文使用Multisim10为辅助设计工具,做以单片机8051为中心的单片机动态显示电路的仿真设计。1.设计要求和分析显示单元是单片机常见的控制功能,凡是遇到显示输出时都会用到显示单元
3、,如数字管的显示,点阵的显示等。为了提高单片机输入输出端口的效率,一般显示单元都使用动态显示技术。所谓动态显示方式,就是一位一位地轮流点亮各个数码管(动态扫描方式)。对于每一位数码管来说,每隔一定时间点亮一次,当扫描的时间间隔足够小时,利用人的视觉暂留特性,观察者就不会感到数码管的闪烁,看到的现象是所有的数码管一起发光,就如同看电影的道理一样。如果要做4个数码显示管的动态显示时,其实现方法是将所有的数码管的a......g连接在一起,接在单片机的某个输出端口上,各个数码管的公共端作为片选信号接在单片机的另一个输出端口上,这样做可以大大地节省了硬件资源。2.硬件电路的设计单片机模块8051的工
4、作电源电压为5V;Multisim10中的8051模块内部已经具备了12MHz,所以仿真外围电路可以省略晶振;故其最小系统需要加一只电容和一只电阻,实现单片机的上电复位功能。如图1所示是根据这一思路做的4位共阳数码管动态显示的电路原理图。图中四个数码管的a......g共同连接到了8051的P0.7-P0.1,4个数码显示管的公共端分别接到P1.0-P1.3,电阻器R1和电容器C1构成了简单的上电复位电路。在动态扫描显示方式中,数码管的亮度同LED点亮导通时的电流大小,每一位点亮的时间和扫描间隔时间三个因素有关。3.Multisim10中绘制仿真电路原理图3.1放置单片机模块8051(1)单
5、击"元件"工具栏上的"PlaceMCU"按钮,在弹出的"选择元件"对话框的"系列"栏中选择"805x",在"元件"栏中选择"8051"。(2)鼠标处出现一个"8051",在绘图区单击鼠标,便放置了一个"8051",同时打开MCU向导对话框。在其中输入工作区的路径和名称,单击"下一步"。(3)弹出MCU向导第二步,在"Progranninglanguage"栏中选择编程语言,可以选择汇编或C语言。若选择C语言时,"Assembler/conpliertool"栏中会出现"Hi-TechC51-Liteplier";若选择了汇编语言(Assenbly)时,"Assembler/conpliert
6、ool"栏中会出现"8051/8052Metalinkassenbler"。在"项目名称"栏中输入项目名称,单击"下一步"按钮。(4)弹出MCU向导第三步,可以选择Createmptyproject(建立空项目)或AddSourcefile(添加源文件),当选择了AddSourcefile时,可在其下面的文本框中输入源文件名,默认为"main.asm"。点击"完成"按钮结束放置。3.2放置其他元件,这里略去。3.3连线,完成原理图的绘制。4.编写MCU源程序4.1如图2所示,打开设计工具箱,展开8051及其项目,双击"main.asm",打开汇编源程序窗口,窗口中出现以下代码,在第一行和最后
7、一行插入源程序。4.2输入源程序$MOD51;Thisincludes8051definitionsforthemetalinkassemblerSTART:MOVP1,#0FFH;关闭所有的LEDMOVP0,#9FH;送"1"的字形码MOVP1,#0FEH;打开第1个LEDACALLDELAY;延时MOVP1,#0FFH;关闭所有的LED,否则显示混乱MOVP0,#27H;送"2"的字形码MOVP1,#0F
此文档下载收益归作者所有