首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025泰克杭州测试论坛
2025中国低空经济产业创新发展大会
【直播】芯片设计工艺仿真全解析
西门子数字化工业软件资源中心
嵌入式设计资源库
智能楼宇/家电控制应用全解析
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
用户119066
修改
文章:
47
阅读:
128122
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
128122
评论
7
赞
206
原创
4
2007-11-21 21:14
3367
5
5
分类:
MCU/ 嵌入式
摘自“中原孔海洋”
计算机仿真对单片机指令系统的学习的帮助主要在于帮助理解,加强记忆,适当应用。能够在单片机指令系统学习中的软件主要是MedWin,因为其操作简单,而且可以直观地看到结果。
1.数据传送指令:
数据传送类指令主要包括:MOV、MOVX、MOVC、PUSH、POP、XCH等。
下面我们通过一个简单的汇编程序来学习这些指令。
例1.汇编语言源文件如下图所示:
在MedWin中编辑好源文件以后,以“.asm”为后缀保存为汇编源文件。然后进行编译、汇编并将代码装入内存进行仿真。由于本程序对寄存器、特殊功能寄存器、内部存储器、外部数据存储器都进行了操作,所以需要首先点击“查看”菜单下的相应子菜单打开相应的窗口,即寄存器、特殊功能寄存器、数据区IData、数据区XData,并可以根据需要点击“窗口”菜单下的选项来横向或纵向平铺窗口。
因为本程序需要一步一步地详细查看相应指令执行的结果,所以我们需要在执行指令时点击“指令跟踪(F7)”或“指令单步(F8)”按钮来单步执行。
指令执行中的一个画面如下图所示:
从图中我们能够清晰地观察到每一条指令执行的每一个结果,从而加深我们对这些指令的理解与记忆。
除以上实例程序中所书写的以外,我们还可以使用其他的指令书写程序并在MedWin中仿真,比如PUSH、POP、MOVC等,相信你会得到一个很好的结果,而且MedWin肯定会提高你学习指令的兴趣。
2.算术操作类指令
算术操作类指令主要有:ADD、ADDC、DA A、SUB、INC、DEC、MUL、DIV等。
算术操作类指令比较复杂,掌握起来比较困难,但在实际的单片机项目应用中很少涉及,尤其是MUL、DIV两条指令,在51系列单片机中更是被束之高阁,很少使用。
此处,我们不再像上节那样逐条书写并仿真课本上的程序,如果感兴趣,你可以仿照上节自己书写程序并进行仿真,观察并体会每一条指令执行的结果以及对系统的影响。这里我们通过一个比较实用的例子来演示仿真算术类指令的操作。
例2.两个压缩BCD码求和:将两个BCD码(每个占4位)分别放在一个字节的高4位和低4位即组成压缩BCD码。本例中有两个压缩BCD码数字,都是四位数,第一个数的高两位放在20H,低两位放在21H中;第二个高低位分别放在30H、31H中。要求所得结果放在40H、41H中。
汇编源程序如下图:
在MedWin中编辑好源文件后,以“.asm”为后缀将其保存为汇编文件,然后进行编译、汇编并将代码装入内存进行仿真。你可以像上例那样步进观察其详细执行过程,分析原因;当然也可以在“ljmp $”处设置断点,然后全速运行。需要注意程序中使用到了内部存储器,所以你需要将数据区“IData”窗口调出来进行观察。运行的最后结果如下图所示:
从图中我们能够很清楚地看到内部存储器相应单元的内容,进而观察到程序执行的结果,即:2097+4559=6656。
3.逻辑运算指令、控制转移类指令
逻辑运算指令,顾名思义,是用于逻辑运算的指令。主要包括:CLR、CPL、ANL、ORL、XRL等常用逻辑指令以及循环移位指令如:RL、RLC、RR、RRC等。
控制转移类指令是指在程序中根据具体的条件(或者没有条件)使程序转移到相应的入口的指令。它主要包括三类指令:一是无条件转移指令,比如:AJMP、SJMP、LJMP等;二是条件转移指令,比如:JZ、CJNE、DJNZ等;三是子程序调用返回指令,比如:ACALL、LCALL、RET、RETI等。
鉴于单独针对逻辑运算指令进行的仿真十分简单(事实上与数据传送类指令相同),可以很容易、很方便地自己针对相应的指令设计程序来观察结果,进行学习。所以此处不再针对逻辑运算指令举例仿真。而控制转移类指令又不可能单独使用,往往与其他指令结合使用来组成相应的程序,所以也无法单独进行仿真。所以下面我们就将逻辑运算类指令与控制转移类指令相结合来编写仿真程序,通过一个实例同时来仿真这两类指令的应用。
例3.十六进制整数转化为BCD码整数:4位十六进制整数高低位依次放在R3、R4中,要求转换后的BCD整数按高低位顺序放在R5、R6、R7中。
程序源文件如下图:
在MedWin中编辑好源文件以后,将其以“.asm”为后缀保存为汇编源文件,然后编译、汇编并将产生的代码装入内存进行仿真调试。仿真前需要注意首先输入R3、R4设置十六进制初始值,具体设置方法如下。首先调出寄存器窗口,然后在需要修改的寄存器名称或者数值上双击,这时其内容将变为可修改,我们在其中填入需要设置的数值(字母大小写均可)即可,如下图所示:
设置好初始值以后,你可以单步观察几步以便明白其原理,然后就可以设置一个断点全速运行了,最后就可以看到所得到的结果,比如我们输入8FD6,将得到结果:R5=03,R6=68,R7=22。
4.位操作指令
位操作比较简单,我们也不再写实例进行仿真,如果你感兴趣,可以自己写一些针对相应指令的小程序来仿真之。
这里我们主要说明一下仿真位操作指令与其他指令的不同及注意事项。
位操作指令是对单片机内部存储器的位地址空间进行的相应操作,所以我们查看相应结果时应该打开相应窗口。单片机的位地址空间可以这样来打开:点击“查看”菜单下面的“数据区 Bit”子菜单。位地址空间窗口如下图所示:
除此之外,在相应的位操作中如果我们需要查看各种位标志时,可以点击上图中下侧的“位”标签,将“字节”标签换过来进行查看。
写原创有奖励!2025面包板原创奖励正在进行中
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
点赞(
5
)
收藏
分享到:
上一篇:
5
下一篇:
3
PARTNER CONTENT
换一换>
更多>
提升汽车电子浪涌耐受性:SWM+TVS解决方案通过ISO 16750-2 Pulse 5a测试
firstohm
2025-04-14
AI时代的氮化镓:市场与技术将走向何方?
黄烨锋
2025-04-24
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户119066
修改
文章:
47
阅读:
128122
评论:
7
赞:
206
好友
私信
个人主页
文章
47
原创
0
阅读
128122
评论
7
赞
206
最新评论
更多
好产品
开发工匠 ...
评论博文
2025-4-26
誉峰变频器强哥荣膺十大牛商,全域营销破局 ...
写的好,学习和参考,很实用,大师之作
开发工匠 ...
评论博文
2025-4-26
ESD二极管特点,优势和应用场景 ...
支持
eeNick
评论博文
2025-4-25
ESD二极管特点,优势和应用场景 ...
最新
博文
电磁环境适应性测试系统全面解析 ...
无人机部件仿真与模型验证平台系统全 ...
基于图像识别技术的数据库检索系统平 ...
资料下载
本周热帖
【Winform+WPF】喷涂工艺SCADA采集监 ...
积分微分的拉普拉斯变换
电子元件FCO-2C-WT系列超宽温SMD振荡 ...
纳祥科技8位移位寄存器74HC164D中文规 ...
纳祥科技单片机拓展芯片NX6806中文规 ...
【敏矽微ME32G030系列】+开发环境搭建 ...
【敏矽微ME32G030系列】介绍、环境搭 ...
【敏矽微ME32G030系列】1、printf重定 ...
【敏矽微ME32G030系列】+ADC转换测评 ...
【敏矽微ME32G030系列】+OLED屏显示驱 ...
最新资讯
芯语最新
用人工智能改造智能手机
来看慕展上的日清纺微电子:运放、GNS ...
突破内存瓶颈:人工智能性能的下一个 ...
人工智能电源和冷却催生预测狂潮 ...
电力电子科学笔记:可以用RC电路充当 ...
芯动联科:谐振式MEMS加速度计全球领 ...
美泰科技:汽车传感器芯片“中国方案 ...
汗液分析仪+运动手表,全新定义可穿戴 ...
北京大学:基于超薄柔性微电极阵列的 ...
RoboSense激光雷达加入上汽大众科技X ...
EE直播间
更多
中小数字IC云仿真加速方案:弹性资源与验证效率提升
直播时间: 05月22日 10:00
在线研讨会
更多
利用氮化镓技术打造高效电机驱动——人形机器人、无人机与电动汽车应用
ADMT4000重新定义多圈编码器设计
NSSine™系列实时控制MCU在数字电源和电机控制领域的应用
ST 在大功率热管理系统中的电机控制系统方案(AI 数据中心/暖通空调/电池储能系统/变频制冷)
热门
推荐
超低功耗CW32L083系列
别让示波器限制想象力,工程师新选择来了
边缘AI开发的奥秘,一场直播就能搞懂!
STM32玩转机械手:边缘AI开发的实战课!
我要评论
0
5
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
2025第1期拆解活动:赢示波器、运动相机、热像仪等!
示波器、影石运动全景相机、大疆无人机、高清红外热成像仪;树莓派5等等
泰克示波器五折来袭!
泰克限时五折!全球示波器用户狂欢,软件升级超值优惠,速抢!
【2025面包板社区内容狂欢节】发文、回帖赢20万E币!
活动时间:即日起——2025年全年(发完20万E币为止!)
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025泰克杭州测试论坛
2025中国低空经济产业创新发展大会
【直播】芯片设计工艺仿真全解析
西门子数字化工业软件资源中心
嵌入式设计资源库
智能楼宇/家电控制应用全解析
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论