Multisim 10中的MCU模块如何进行单片机协同仿真
[09-08 11:50:24] 来源:http://www.88dzw.com 单片机学习 阅读:8438次
文章摘要: 其原理是加电瞬间或按键按下到松开之间,电容无电荷,两端电压为0V,单片机的RST引脚的电压瞬间被提升到VCC(5V)。加电之后或按键松开,电容开始充电,两端电压逐渐增加,电阻的电压(RST引脚电压)由5V逐渐降低,因而延长了复位引脚保持高电平的时间。实际器件对复位持续时间的要求一般在两个机器周期,所以100微秒的复位时间要求51单片机的晶振频率不低于0.24MHz。当然一般情况下是根据晶振频率确定C1和R1的值,这可以根据求解一阶微分方程得到其充放电时间,或参考单片机的用户手册。调试程序 选择菜单MCU→MCU 8051 U1→Debug View,可以看到文本区上面有下
Multisim 10中的MCU模块如何进行单片机协同仿真,标签:单片机开发,单片机原理,http://www.88dzw.com其原理是加电瞬间或按键按下到松开之间,电容无电荷,两端电压为0V,单片机的RST引脚的电压瞬间被提升到VCC(5V)。加电之后或按键松开,电容开始充电,两端电压逐渐增加,电阻的电压(RST引脚电压)由5V逐渐降低,因而延长了复位引脚保持高电平的时间。实际器件对复位持续时间的要求一般在两个机器周期,所以100微秒的复位时间要求51单片机的晶振频率不低于0.24MHz。当然一般情况下是根据晶振频率确定C1和R1的值,这可以根据求解一阶微分方程得到其充放电时间,或参考单片机的用户手册。
调试程序
选择菜单MCU→MCU 8051 U1→Debug View,可以看到文本区上面有下拉菜单并有两种选择,对应反汇编(disassembly)和列表汇编(listing assembly),简单的说,前者是由ROM的内容得到,后者是源文件编译后的结果。双击“设计工具箱”的main.asm,在源文件编辑窗口右键单击语句为“MOVC A,@A+DPTR”的一行,选择“设置/清除断点”(Toggle Breakpoint),在左侧会出现一个实心圆,点击“运行”,程序将停在该行,只不过是在“调试视图”(Debug View)的列表汇编窗口下,同时在实心圆上多出了一个黄色箭头。点击MCU-> MCU 8051 U1->Memory View,打开MCU存储器视图,在该视图可以查看特殊函数寄存器(SFR),内部RAM(IRAM),内部ROM(IROM),外部RAM(XRAM)。在SFR表格内观察ACC的值,此时应该为“00”,在IRAM里观察地址为21H的值,因为“MOV SP,#20H”语句将21H作为堆栈的第一个存储字节的地址,断点的前一处语句“PUSH ACC”使该字节存储ACC的值,此时也为“00”。再点“运行”,程序第二次停在断点处,观察SFR中的ACC和IRAM中的21H,如图9所示应,两个单元格里的值都应为“01”,你还可以双击该单元格进行修改,该值也正是七段数码管即将显示的下一个数。点击MCU菜单,可以看到除了设置断点以外还可单步进入(Step into),遇到函数时进入函数内部;跳过(Step over),即不进入函数;跳出(Step out),即跳出函数到调用函数的下一条语句。
图9 MCU存储器视图
结束语
本文以一个简单的电路介绍了在NI Multisim下如何进行SPICE模型(这里主要指C1和R1)和8051 MCU的协同仿真。NI Multisim10不但有多种编译和调试功能,还提供了RAM,ROM,键盘,液晶屏等外设,是初学单片机的理想工具。掌握了基本的硬件结构,汇编指令和调试方法后,读者可以利用Multisim开发更复杂的系统并仿真,为下一步设计实际的硬件电路做准备。
说明:因为单片机的电流是有限制的,不能太大,否则会烧毁单片机的。所以应在数码管的CA端和VCC端之间接一个限流电阻(100欧姆);或者在单片机与数码管之间接入一个排阻(7个)也可以,这样仿真时就不会烧毁单片机了。
《Multisim 10中的MCU模块如何进行单片机协同仿真》相关文章
- › Multisim 10中的MCU模块如何进行单片机协同仿真
- › 详解Multisim 10仿真实验步骤
- 在百度中搜索相关文章:Multisim 10中的MCU模块如何进行单片机协同仿真
- 在谷歌中搜索相关文章:Multisim 10中的MCU模块如何进行单片机协同仿真
- 在soso中搜索相关文章:Multisim 10中的MCU模块如何进行单片机协同仿真
- 在搜狗中搜索相关文章:Multisim 10中的MCU模块如何进行单片机协同仿真