Multisim 10仿真实验
2012-06-02
标签:

在第二步中要选择的是:在“Programming language”中选择“ Assembly”,表示用汇编语言编写,如果选择“C”则表示用用C语言编写。点击“Finish”,完成了对单片机的设置。那么在软件界面左边的“Design Toolbox”中会出现新的文件,如下图(图六)所示:

图六

点击Circuit1项目窗口即显示电路窗口(图七):

图七

点击main.asm,项目窗口中就显示编程窗口(图八):

图八

回到电路窗口,按照下图选择元器件,并且按照下图(图九)将电路连接好:

图九

连好电路图以后,点击main.asm来到编程窗口(图十)进行程序的编写:

图十

程序写在“$MOD51”和“END”之间(图十一):

图十一

程序写完以后要进行程序载入,用鼠标右键点击Design Toolbox栏里的main.asm,选择“Build”,然后在软件的最下方的“Spreedsheet View”栏中会显示编程的错误和警告,如果出现错误会在该栏中显示并显示出错的具体位置,那么我们要回到编程窗口找到错误并修改,一直修改到0错误和0警告为止(图十二)。

图十二

以上工作完成以后,我们回到电路窗口,找到快捷工具栏中的“RUN”按钮(图十三中的第一个按钮)

图十三

按下“RUN”以后电路窗口中的LCD就开始显示了(图十四):

图十四

2、LCD的引脚和时序

1、VCC 接电源 +5V。

2、CV接电源 +5V 调节显示屏灰度的,调节该端的电压,可改变显示屏字符颜色的深浅。(具体实物要看厂家的数据手册,有些VO要求接地)

3、GND 电源地,接地。

4、E信号使能,E由1 -> 0的下降沿有效,LCD对RS和DATA进行取样和执行操作。

5、RS数据/命令选择端,1-数据、0-指令。

6、RW读写选择,1-读、0-写,如果LCD函数没有用到这个IO口的话就把它接地。

7、D7~D0Data I/O,接单片机的IO口,用于输入数据或者指令。

LCD开始工作第一步要进行初始化,初始化程序:

CLR P3.0;LCD

SETB P3.1

MOV P1,#03H

CLR P3.1

SETB P3.1

MOV P1,#0CH

CLR P3.1

SETB P3.1

MOV P1,#06H

CLR P3.1

初始化以后就可以进行指令和数据的读写了。

第一次显示数据以后要进行第二次数据显示,则需要进行清屏,清屏程序:

CLR P3.0;LCD

SETB P3.1

MOV P1,#01H

CLR P3.1

SETB P3.0

接下去就可以再次进行数据和指令的读写了。

3、实现的功能

本次实验要求实现基于单片机的LCD显示,LCD分两次显示,第一次显示“0123”第二次显示“456789A”。LCD采用08x1的液晶显示器,单片机采用8051。

三、实验内容

1、建立工程存放文件夹:

打开“我的文档”,在National Instruments文件夹中打开Circuit Design Suite 10.0,然后在MCU Workspaces文件夹中新建一个文件夹,文件名为project。

2、双击桌面上的Multisim10的图标,软件打开需要等待一定的时间。

3、设置:

点击菜单栏中的“Options”,选择“sheet properties”,在Circuit中的 “NET names”栏里选中“Hide All”,然后再点击Workspace,在“Sheet size”栏中选择“A4”,点击“OK”。

4、保存工程文件:

点击File中的Save,在弹出的对话框中点击MCU Workspaces,然后点击自己新建的project文件夹,然后点击“保存”。

5、选择元器件:在空白纸上点击右键,然后选择“Place Component”,在弹出的对话框中的“Group”中选择“MCU Module”,然后在“family”中选择“805X”中的“8051”,点击“OK”,在图上适合的位置点击左键,在弹出的对话框中点击“Browse”,在“我的文档”中找到刚新建的project文件夹,点击该文件夹,然后点击确定。在“Please enter the work space name”中输入文件名“project”,点击“Next”,在“Programming language”中选择“Assembly”,然后点击“Finish”。

接着在“Group”中选择“Basic”,在“Family”中选择“RESISTOR”,在Component中点击“10K”电阻,点击“OK”,在适合的位置点击左键即可。

然后在“Family”中选择“CAPACITOR”,选择一个“10u”和两个“30p”的电容,然后放置到图纸上。

接着在“Group”中选择“Sources”,在“Family”中选择“POWER_SOURCES”,点击放置四个“DGND”和两个“VCC”。

然后在“Group”中选择“Advanced Peripherals”,在“LCDS”中选择“LCD_DISPLAY_08x1”,并放置在图纸的适当位置。

接着在“Group”中选择“Misc”,在“CRYSTAL”中选择“HC-49/U_25MHz”的晶振,放置在图纸上。

6、按照图9所示,连接好单片机的外围电路图并点击File中的Save:

7、保存好以后,在左侧的“Design Toolbox”中左键单击“Circuit1”前面的“+”号,然后一直点击“+”号,一直找到“main.asm”,双击该文件,在原图纸栏出现了编程界面,然后在该界面中输入以下程序:

8、程序:

$MOD51 ; This includes 8051 definitions for the metalink assembler

ORG 0000H

CLR P3.0;LCD初始化

SETB P3.1

MOV P1,#03H

CLR P3.1

SETB P3.1

MOV P1,#0CH

CLR P3.1

SETB P3.1

MOV P1,#06H

CLR P3.1

SETB P3.0;对LCD写数据

SETB P3.1

MOV P1,#30H

CLR P3.1

SETB P3.1

MOV P1,#31H

CLR P3.1

SETB P3.1

MOV P1,#32H

CLR P3.1

SETB P3.1

MOV P1,#33H

CLR P3.1

CLR P3.0;LCD清屏

SETB P3.1

MOV P1,#01H

CLR P3.1

SETB P3.0

SETB P3.1;第二次对LCD写数据

MOV P1,#34H

CLR P3.1

SETB P3.1

MOV P1,#35H

CLR P3.1

SETB P3.1

MOV P1,#36H

CLR P3.1

SETB P3.1

MOV P1,#37H

CLR P3.1

SETB P3.1

MOV P1,#38H

CLR P3.1

SETB P3.1

MOV P1,#39H

CLR P3.1

SETB P3.1

MOV P1,#41H

CLR P3.1

SJMP $

END

9、程序输入完成后,再用鼠标右键点击右边的“Design Toolbox”中的“main.asm”文件,点击出现的菜单中的“Build”。在最下方的窗口中提示0错误和0警告以后,即可点击“Design Toolbox”中的“Circuit1”,然后点击工具栏中的开关按钮“Run”,在弹出的对话框中点击“YES”,程序就开始执行,LCD开始显示。

四、实验报告与思考题

详细描述实验的过程,如实纪录本实验中间步骤和最终结果,还应纪录实验过程中的不正常现象以及解决办法。

思考题:

1、 如何在LCD08x1上分两次显示“R&B”和“NO.1”。

2、 如何在LCD16x2上一次显示:第一行“Hello Everyone!”第二行中间显示“^_^”并且循环显示。

共 2 页   上一页12
可能会用到的工具/仪表
相关文章
推荐文章
热门文章
章节目录
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号