单片机彩灯电路的Multisim仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子制作2009年第6期
一、电路仿真软件Multisim10.1
电路仿真软件Multisim10.1增加的功能有:自
动化API 接口、虚拟NI ELVIS II 、NI ELVIS 仪器、增
强Multisim 中的NI 、LabVIEW 仪器、增加部分元器
件数据库、扩展Spice 建模能力等。
Multisim10.1提供了一个非常大的元器件数据
库,其中包括来自领先制造商美国AD 和德州仪器
公司的大约300多个新元器件,这些元件包括运算
放大器、比较器、模拟开关和电压参考组件;并提供
原理图输入接口、全部的数模Spice 仿真功能、
VHDL 、Verilog 设计接口与仿真功能、FPGA 、CPLD
综合、RF 设计能力和后处理功能、梯形图仿真。
该软
件提供了23种以上虚拟仪器,可以直接通过虚拟
仪器观察电路的运行状态。
软件还提供500多个更新的组件以及最新的通用电力仿真部件,这些部件包括Buck 、Boost 、Buck-Boost 、PWM 控制器。
单片机仿真方面,Multisim 10.1内含8051/8052met-aLink 汇编和高级C51精简版编译器。
无需像Proteus 那样捆绑Keil C 软件,目标程序直接就可在Multisim 10.1内生成。
本文介绍的Multisim 10.1软件可以到下列网址下载试用版安装,免费使用30天:/webpage/datum/200807/2008071814363100001.htm 二、彩灯仿真实验图1是我们要仿真的一个8位彩灯电路。
在单
图2红外接收电路图组成。
红外接收管收到的红外线信号较小,通过前
置选频放大器放大后,再经过比较器比较,送微控
制器处理。
对其它频率的干扰信号由于得不到放大
而被丢弃。
L1为10mH ,C1为0.01μF ,该LC 谐振
回路的谐振频率为f=1/2πL1C1姨=16kHz 。
调整
W1可改变谐振回路的Q 值,从而改变前置选频放
大器的放大倍数和带宽。
D1、C2和R3组成检波电路,检出与标记线对应的电平信号。
W2和IC2组成比较器,改变W2的值,可改变检测器的灵敏度。
R4和D2组成钳位电路,保护后面的微控制器。
微控制器收到数据后,可对数据进行进一步的处理。
例如可根据车速和距离判断此时数据类型的正确性。
五、结语本文详细地介绍了车载红
外检测器的设计方法和各元器
件的作用。
本检测器不但可供
全国大学生电子设计竞赛的选
手参考,还可作为一种实际的
产品用于机动车的行驶控制。
通过检测路面的标志信息,及
时提示司机该道路的时速限
制、单行线及前方的路况信息。
姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨姨单片机彩灯电路的Multisim 仿真
◆陈
洁制作天地H A N D S O N PR O JEC TS
18
片机P1端口外接有8个灯,要求初始时两端最外边上的一个灯亮,间隔约1s后,两个亮的灯往中间移一位;隔约1s再往中间移一位。
等移到中间两个灯亮后,再延时1s后重复开始状态。
按这样方式循环显示,即从状态1到4循环,如图2所示。
1.创建工作目录
为了便于查找和文件管理,我们专门为Multi-sim10.1软件单片机仿真建立一个专用的存放空间(目录)。
这一步可以不做,采用软件默认的目录。
首先我们在F盘(或非C盘的其他驱动盘上)上新建一个工作文件夹,命名为“MCU_Workspace”。
按照彩灯的控制过程,用记事本编写好源程序,并把程序命名为“彩灯”文件保存。
演示程序及说明如下:
O RG0000H;设置下面程序的起始地址
A J M P M A I N;跳转到标号是“M A I N”的地址
O RG0040H;设置下面程序的起始地址
M A I N:M O V SP,#60H
;将堆栈指针设初值为“60H”(十六进制数60)
STA RT:M O V A,#7EH
;将初始数据7EH,即“01111110”送累加器A
M O V P1,A;将累加器A中的数据送P1口
M O V R6,#04H
;十六进制04H数送寄存器R2
L1:A CA LL D ELA Y LS
;调用延时子程序D L
M O V R0,A
;累加器A中的数据寄存器R0,保存原数据
SETB C;进位位C设置为“1”
RRC A
;累加器A和进位位中的数据右移一位
A N L A,#0F0H
;将累加器A中的低四位置“0”,即屏蔽掉,取高四位
M O V R7,A
;累加器A中的数据送寄存器R1保存
M O V A,R0
;寄存器R0中的数据送累加器A,恢复出移位前的数据
SETB C;进位位C设置为“1”
RLC A;累加器A和进位位中的数据左移一位
A N L A,#0FH
;将累加器A中的高四位置“0”,即屏蔽掉,取低四位
O RL A,R7
;寄存器R1中数据跟累加器A中数据相“与”,即一个高、一个低四位合成8位
M O V P1,A
;累加器A中数据送P1口,即合成的8位数据送P1口显示
D J N Z R6,L1
图1单片机彩灯控制电路图2灯光流水显示过程
H A N D S O N PR O JEC TS 制作天地
19
2009年第6期电子制作
;寄存器R2中的数据减“1”,值不为“0”,则转移到标号为“L1”的地址
A CA LL D ELA Y LS
;调用延时子程序D ELA Y LS
M O V P1,#0FFH
;十六进制FFH送P1口,使灯全灭
A J M P STA RT
;跳转到标号为“STA RT”的地址执行
D ELA Y LS:M O V r1,#1
D EL0:M O V r2,#12
D EL1:M O V r3,#25
D J N Z r3,$
D J N Z r2,de l1
D J N Z r1,de l0
RET
EN D
2.绘制仿真电路
在“开始”→“程序”→“National Instruments”→“Circuir Design Suite10.1”下,鼠标单击“Multisim 10.1”。
打开Multisim10.1,新建一个电路。
在工作空间内单击鼠标右键,在弹出如图3所示的对话框中选“Place component”。
在如图4所示的“Select a Component”对话框中“Group”中的“MCU”下点“805x”,用鼠标双击在“Component”中的“8052”。
拖动MCU到合适位置,如图5所示,再次单击鼠标左键,固定元器件。
由于放置的是一块MCU,所以紧接着会弹出一个“MCU Wizard(MCU向导)”,如图6所示,它要求我们分三步来完成MCU的设置。
第1步设置工作空间。
在图6中点“Browse”按钮,在“浏览文件夹”中找到我们建好的工作空间文件夹“MCU_Workspace”,如图7所示。
单击“确
图3放置元器件
图4选择元器件
图5拖动MCU 图6MCU设置向导
制作天地H A N D S O N PR O JEC TS 20
电子制作2009年第6期
定”。
再给工作空间命名,如图8所示。
这样完成了第一步设置,单击“Next”按钮进入第2步。
第2步创建项目。
在图9所示对话框中,通常
我们只需选择源程序编程语言是C语言还是汇编语言。
即“Programming language”下的文本框。
若需要的话可以修改项目名称,即“Project name”下的文本框中的内容。
完成后单击“Next”按钮进入第
3步。
第3步是添加源程序文件。
在图10所示对话框中,单击“Add source file”前的单选框,并在下面的文本框中给源文件命名,通常我们采用默认的文件名。
完成后点“Finish”按钮结束设置,如图11所示。
把电路保存为“YS_Circuit3”。
接着逐一放置其他元器件。
各元器件在库中的
位置如下:
单片机在“Group”中的“MCU”下“805x”,在“Component”中选“8052”;晶体振荡器在“Group”中的“Misc”下“CRYSTAL”,在“Component”中选“HC-49/U_11”;电容在“Group”中的“Basic”下“CAPACITOR”,在“Component”中选“30P”;电阻在“Group”中的“Basic”下“RESISTOR”,在“Component”中选“300Ω”;发光二极管在“Group”中的“Diodes”下“LED”,在“Component”中选“LED_red”;电源在“Group”中的“Sources”下“POWER_SOURCES”,在“Component”中选
图7指定工作空间目录
图8给工作空间命名图9创建项目
图10添加源程序文件
图11完成MCU放置
H A N D S O N PR O JEC TS 制作天地
21
2009年第6期电子制作
“Vcc”和“GROUND”;全部元器件放置完后,点“Close”关闭“Select a Component”对话框。
连线完成后如图12所示。
单击“存盘”按钮保存。
3.添加源程序
在图12中单击“main.asm”标签页,打开源程序文件,如图13所示。
在图中光标位置将编制好的源程序“流水灯”添加进去,如图14所示,再单击“存盘”按钮保存。
这里有一点必须注意,由于源程序是用来仿真的,所以程序中的延时时间不能与实际中相同,必须修改到几个ms,否则仿真效果不直观,或会误认为电路不工作。
4.汇编源程序
在图14中左边窗口内,用鼠标右键单击“main. asm”图标。
在弹出的对话框上选“Build ”,如图15所示。
汇编结果如图16所示,没有错误或报警。
若有则须修改源程序,重新进行汇编直到没有错误或报警为止。
5.仿真观测
在图16上点“YS_Circuit3”标签页,回到图12界面。
单击图中右上角的仿真开关,进入仿真状态。
图12仿真原理图图13打开源程序文件图14添加源程序图15汇编源程序图16汇编结果
制作天地H A N D S O N PR O JEC TS 22
电子制作2009年第6期
2009年第6期电子制作我们可以逼真地看到8个发光二极管从两边到中间
两个点亮,图17所示给出了仿真中电路的两种状态。
若发光二极管LED1到LED8没变化,我们可以
用鼠标左键双击U1“8052”检查一下它的代码管理,
是否如图18所示一致。
如果不一致则需要按照上面
介绍的三步MCU 设置进行重新设置;或直接在图
5~18中左下方,单击相应按钮添加。
(a)(b)图17仿真状态图18单片机代码管理
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DS1302是DALLAS 公司生产的一种实时时钟
芯片,它通过串行方式与单片机进行数据传送,能够
向单片机提供包括秒、分、时、日、月、年等在内的实
时时间信息,并可对月末日期、润年天数自动进行调
整,它还拥有用于主电源和备份电源的双电源引脚,
在主电源关闭的情况下,也能保持时钟的连续运行,
另外,它还能提供31字节的用于高速数据暂存的
RAM 。
鉴于上述特点,DS1302正在许多单片机系
统中得到应用,为系统提供所需的实时时钟信息。
一、DS1302的主要特性1.引脚排列湖南省浏阳市职业中专◆罗政球
X1,X2———32768HZ 晶振引脚端RST ———复位端I/0———数据输入输出端SCLK ———串行时钟
GND ———地
VCC2,VCC1———主电源与后备电源引脚端图1时钟芯片DS1302可靠起振方法
H A N D S O N PR O JEC TS
制作天地23。