原创 【转】Multisim 10仿真实验 2

2010-11-19 17:48 1805 6 6 分类: EDA/ IP/ 设计与制造
在第二步中要选择的是:在“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~D0  Data 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!”第二行中间显示“^_^”并且循环显示。


文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条