0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Multi2sim10单片机的仿真实现及在数字电路中的应用

电子设计 作者:电子设计 2018-11-27 09:30 次阅读

引言

单片机体积小,质量轻,具有很强的灵活性,而且价格也不高,从而得到越来越广泛的应用。其中以In2ter公司推出的8051 /8052芯片最基础、最普及、最常用。8051 /8052在小、中型开发场合应用很广,已成为单片机领域的标准。

电子仿真软件Multisim10中,也引入了单片机仿真内容,且它的模块型号就是最常见和应用广泛的8051 /8052。在Multisim10中, 8051 /8052 不但可以用汇编语言编写程序,同时也支持C语言编写程序,拓展了单片机8051 /8052的使用,使虚拟仿真显得更加灵活和实用。

下面以一个具体的11进制计数器应用例子来说明(用C语言编写程序) ,详细介绍如何实现Multi2sim10单片机仿真,计数器的电路原理图如图1所示。

Multi2sim10单片机的仿真实现及在数字电路中的应用

图1计数器电路原理图

1组建仿真电路

1. 1调出单片机模块8052

1. 1. 1单击电子仿真软件Multisim10基本界面元件工具条“PlaceMCU Module”按钮。

1. 1. 2在弹出“Select a Componet”对话框的“Family”栏中先选取“805X”, 然后在“Componet”栏下选取“8052”,最后单击对话框右上角的“ok”按钮。

1. 1. 3鼠标箭头将带出一个“8052”模块,在电子仿真平台上单击鼠标,将先弹出MCU向导对话框之一,第一栏是工作区路径,第二栏是工作区取名,这里输入“my mcu design1”,最后单击下方的“Next”按钮。

1. 1. 4再次弹出MCU向导对话框之二,共有4栏选项,第一栏为项目类型,一般选择“Standard (标准) ”;第二栏选择编程语言种类,单击右侧下拉箭头,可以在“Assembly C汇编”和“C”语言之间选择,这里选取“C”语言;则第三栏自动显示“Hi2Tech C512L ite com2p iler”字样; 第四栏可以输入项目名称,本文取名为“p roject2”,最后单击下方的“Next”按钮,如图2所示。

Multi2sim10单片机的仿真实现及在数字电路中的应用

图2MCU向导对话框之二

1. 1. 5再次弹出MCU向导对话框之三,有2个单选项:“Create emp ty p roject (创建空项目) ”和“Addsource file (添加源文件) ”, 这里选取“Add sourcefile”;下面栏中可以输入后缀为“。 C”的源文件名,这里就用“Led11. c”最后单击下方的“Finish”按钮完成。

1. 1. 6完成MCU向导对话框之后,这时能在电子仿真平台上显示出原来调出单片机模块U18052,右击鼠标退出元件操作。

1. 1. 7保存文件,在文件名栏输入“led001”文件名,默认文件后缀“。 ms10”。

1. 2在电子仿真软件Multisim10基本界面平台上,单击主菜单“View /Design Toolbox”,在基本界面左侧将打开“设计工具盒”窗口,单击“led001”前的“ + ”号可以看到刚才命名的工作区“my mcudesign1”,在工作区下面是项目名“p roject2 ”, 在项目名下面是源文件名“Led11. c”,如图3所示。

Multi2sim10单片机的仿真实现及在数字电路中的应用

图3工作区项目和文件

2编写MCU源C语言程序

2. 1双击“设计工具盒”中的源文件“Led11. c”,在其右侧将打开编写程序窗口,删除已有的文字注释说明。

2. 2在源程序窗口输入以下11进制计数器C语言源程序:

#include " htc. h"

void delay( unsigned int i) ;

unsigned char code table [ ] = { 0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02,

0x78, 0x00, 0x90};

unsigned char a1, a2, a3;

void main ( )

{

unsigned int i;

while (1)

{ for( i = 0; i < 11; i + + )

{

if ( i = = 0)

{P2 = 0x40;

P1 = 0x40;

P0 = 0x40; }

if ( i = = 1)

{P2 = 0x79;

P1 = 0x40;

P0 = 0x40; }

if ( i = = 2)

{P2 = 0x24;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 3)

{

P2 = 0x30;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 4)

{

P2 = 0x19;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 5)

{

P2 = 0x12;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 6)

{

P2 = 0x02;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 7)

{

P2 = 0x78;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 8)

{

P2 = 0x00;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 9)

{

P2 = 0x10;

P1 = 0x40;

P0 = 0x40;

}

if ( i = = 10)

{

P2 = 0x40;

P1 = 0x79;

P0 = 0x40;

i = 0;

}

}

} }

void delay( unsigned int i)

{

while ( i - - ) ;

}

2. 3单击主菜单“MCU /MCU8085U1 /Build”,“Build”的结果将输出到“Sp readsheet View (电子数据表视图) ”中,同时也将所编程序“烧录”到8052 模块中。

如果程序语句逻辑格式有错误,稍等片刻,在程序下方打开的电子数据表视图中可以看到程序分析结果,必须重新检查所编程序,找出错误修正改之,方能进入下一步操作。运行本程序在电子数据表视图显示结果如图4所示,显然没问题, 2个警告没有关系,只是编程程序中有些元素设置了未用而已。

Multi2sim10单片机的仿真实现及在数字电路中的应用

图4C语言编程分析结果

3调出其他仿真元件,搭建单片机仿真电路,进行仿真

3. 1单击电子仿真软件Multisim10基本界面元件工具条,从不同的元件库中,分别调出相应的元件(三极管、电阻数码管等) ,按图1 进行连接,然后运行仿真。

3. 2按图1所示仿真电路接线无误的前提下,单击基本界面右上角仿真开关按钮。

3. 3电子仿真工作平台将会看到LED按编好的程序完成11进制计数器的功能。

4仿真调试工具

4. 1在“11进制计数器”仿真电路运行的情况下,单击主菜单“MCU /MCU8085U1 /Debug View”,将打开调试程序和排除故障窗口。

4. 2单击主菜单“MCU /MCU8085U1 /Memory View”,将打开MCU存储器窗口,在该窗口下可以看到特殊函数寄存器( SFR ) ; 内部RAM ( IRAM ) ; 内部ROM( IROM) ;外部RAM (XRAM) 。借助于以上仿真调试工具和MCU的存储器,可以对程序进行诸如设置断点、修改程序、观察地址值、堆栈情况、进入子函数、跳过指令等操作,从而达到验证、调整、修改和完善仿真程序的目的,直至完成所需功能为止。

5结束语

综上所述,相信本文对单片机爱好者会有很大的启示,并对单片机初学者起到抛砖引玉的作用。无需借助实验室的仪器设备,只要拥有一台手提电脑就可以在任何时间和地点进行单片机仿真实验,很好地满足了电子工作者在单片机仿真方面的需求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6008

    文章

    44071

    浏览量

    622759
  • 仿真
    +关注

    关注

    50

    文章

    3887

    浏览量

    132385
  • 计数器
    +关注

    关注

    32

    文章

    2209

    浏览量

    93324
收藏 人收藏

    评论

    相关推荐

    高速数字电路仿真

    高速数字电路仿真 介绍了专用于高速数字电路仿真工具Hyperlynx,并使用它对高速数字电路中的阻抗匹配、传输线长度
    发表于 03-20 14:11 1313次阅读
    高速<b class='flag-5'>数字电路</b>的<b class='flag-5'>仿真</b>

    单片机在数字化脉冲周期监测装置的应用

    。本项目研制数字脉冲周期监测装置能克服以上缺陷。本文简单介绍了单片机在数字脉冲周期监测装置的应用,并简要分析了使用80C196KC单片机
    发表于 03-04 16:49

    labview在数字电路课程的应用

    labview在数字电路课程的应用
    发表于 05-06 11:22

    51单片机仿真实

    各位好心人谁有51单片机仿真实例,能发给我吗?最好附带c程序和仿真电路图(我是新手),{:4_107:},小白在此多谢各位了。1984619809@qq.com
    发表于 08-17 22:56

    单片机数字电路怎么抗干扰?

    形成干扰的基本要素单片机数字电路怎么抗干扰
    发表于 03-04 07:51

    时序在数字电路的作用

    时钟简介时序在数字电路的作用,就像通信中用到的载波,载波并不起眼,但是很重要。时钟也一样,现象上只是某种频率波峰波谷跳动,一成不变。但是有了它,就像人类的历史有了时间轴一样,什么时候该干什么事才有了可能。程序中发生的事件,能够按照自己的意愿发生。...
    发表于 08-12 07:17

    模拟电路数字电路的基础知识详解

    电子电路单片机硬件部分的基础知识,电子电路分为模拟电路数字电路单片机是使用
    发表于 01-25 07:15

    单片机基础知识:模拟电路、传统数字电路单片机的区别

    相比较于模拟电路的误差,数字电路精确度得到很大的提高,单片机本质上也是数字电路,但与我们平常所说的传统数字电路有明显区别,传统
    发表于 07-26 17:19 9727次阅读
    <b class='flag-5'>单片机</b>基础知识:模拟<b class='flag-5'>电路</b>、传统<b class='flag-5'>数字电路</b>与<b class='flag-5'>单片机</b>的区别

    数字电路单片机的抗干扰设计

    数字电路单片机的抗干扰设计
    发表于 01-24 16:15 11次下载

    模拟电路、传统数字电路单片机有什么区别

    相比较于模拟电路的误差,数字电路精确度得到很大的提高,单片机本质上也是数字电路,但与我们平常所说的传统数字电路有明显区别,传统
    的头像 发表于 07-05 14:04 3w次阅读
    模拟<b class='flag-5'>电路</b>、传统<b class='flag-5'>数字电路</b>与<b class='flag-5'>单片机</b>有什么区别

    单片机入门之数字电路学习

    单片机是一种可编程的数字电路芯片。数字电路单片机的基础,单片机数字电路的发展。
    发表于 06-06 11:34 1100次阅读
    <b class='flag-5'>单片机</b>入门之<b class='flag-5'>数字电路</b>学习

    OrCAD PSpiceA_D在数字电路仿真中的应用

    电子发烧友网站提供《OrCAD PSpiceA_D在数字电路仿真中的应用.pdf》资料免费下载
    发表于 11-17 15:38 0次下载
    OrCAD PSpiceA_D<b class='flag-5'>在数字电路仿真</b>中的应用

    OrCAD PSpice A_D在数字电路仿真中的应用

    电子发烧友网站提供《OrCAD PSpice A_D在数字电路仿真中的应用.pdf》资料免费下载
    发表于 11-18 09:22 5次下载
    OrCAD PSpice A_D<b class='flag-5'>在数字电路仿真</b>中的应用

    数字电路仿真元件符号是什么

    中,我们将详细讨论常见的数字电路仿真元件及其符号。 逻辑门元件 逻辑门元件是数字电路设计中最基本的元件,用于实现基本的逻辑运算。在数字电路仿真中,逻辑门元件通常用符号来表示。下面是常见
    的头像 发表于 04-21 09:20 555次阅读

    数字电路仿真软件单片机怎么用

    数字电路仿真软件是一种用于模拟和测试数字电路设计的工具。其中,单片机仿真软件是一种专门针对单片机进行仿真
    的头像 发表于 04-21 10:28 672次阅读