8051指令系统及汇编语言设计(1-1)

什么是汇编指令呢?汇编指令利用助记符来表示计算机的指令称之为汇编指令:注意用二进制数表示的指令称之为机器指令;事实上cpu只能执行二进制机器语言,但是用二进制语言编写语言又非常的麻烦且困难,所以出现了使用助记符来代表二进制机器语言

汇编指令/汇编语句的格式:

标号        :        助记符        【操作码】 【操作数】 【注释】

MAIN      :                                MOV        A,#20H;将立即数20H送入累加器A中

8051内核能用作间址寄存器的有3个:

@Ri(R0 , R1)访问内部RAM

@DPTA访问外部RAM

(计算机编程中,数据的传送方式是从右边传到左边的)

指令中参与运算的数据称为源操作数,运算的结果称为目标操作数(通常使用源操作数的寻址方式

8051汇编常用的伪指令:

伪指令不是cpu的指令,而是用来控制编译器的命令

(1)ORG(16bit)

用来指定开头的起始地址(开始执行的地址)程序段或者数据段

格式:

标号        :        ORG        16bit绝对地址

标号是可选的        ORG        0040H;指定程序的起始地址为0040H,从0040H开始存放

(2)END 

用来结束原程序的编译,(指令END后面的程序不会再进行编译 )

注意:汇编程序必须由END指令结束

(3)EQU(常用的通用指令)

用来数据定义,端口定义,常量定义

格式:

标识符        EQU        数值(8bit或16bit)------将数值的值赋给标识符

举例:定义KEY端口

KEY_PORT        EQU        P1

KEY_PORT就是1

TABT        EQU        1000H (TABT的值为1000H)

(4)DB

用来定义字节数据表格,可用ORG来指定该表格的起始地址

格式:

标号        :        DB        数据1,数据2.......数据n

TABLE : DB        1,2,9,16,25,36,49,64,81

举例:该表格的起始地址为0040H,则定义0~9的平方值

        ORG        0040H

TABLE : DB        1,2,9,16,25,36,49,64,81

注意多个数据中要用“ , ”隔开 (DB与DW不要混肴)

8051可寻址的方式有2种:

1,使用位寻址

2,使用字节地址,位序号

8051中多字节数据是按大端格式存储的(低地址存放高字节,高地址存放低字节)

(5)DW

用来在ROM空间中定义一个16bit(每一位占用2个字节)的数据表格(与DB相似)

格式:

标号        :        DW        数据1,数据2.......数据n

                ORG        3000H

TAB2        :        DW        1234H ,    5678H

(6)BIT(bit)

可用来定义信号引脚,相当于C语言中的sbit

格式:

标识符        BIT        位地址

FLAG        BIT        10H; 把位地址为10H的二进制位取名为FLAG

举例:定义LED驱动引脚

LED        BIT        P1.0;LED的引脚为P1.0

ASM51还支持伪指令:CODE(定义ROM单元)        DATA(定义内部RAM单元)

PADTA(定义外部低256单元RAM)        XDATA(定义外部RAM单元)

BDATA(定义位寻址中RAM单元)        IDATA(定义间接寻址内部RAM单元)

注意:这些伪指令只能在8051中使用,且只能用来定义地址

(建议使用EQU伪指令,因为它是通用的)

说明:

可位寻址是指程序员可以直接对寄存器的每一位进行操作

不可位寻址是指程序员不可以对寄存器的某个位进行操作,如果要修改必须要将寄存器的整个进行修改

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用8086汇编语言设计洗衣机的过程包括以下几个步骤: 1. 首先,你需要确定洗衣机的功能和要求,并确定你希望在洗衣机使用哪些传感器和电机。 2. 然后,你需要设计洗衣机的硬件系统,包括选择合适的单片机、传感器和电机,并设计电路板。 3. 之后,你需要使用8086汇编语言编写控制代码,该代码负责控制洗衣机的传感器和电机,并实现洗衣机的功能。 4. 最后,你可以使用Proteus软件进行仿真,验证你的设计是否正确。 在使用Proteus进行仿真时,你需要导入你设计的电路板模型和控制代码,然后运行仿真,查看系统的运行情况。如果发现问题,你可以回到前面的步骤进行调试和修改。 ### 回答2: 使用8086汇编语言设计洗衣机及proteus仿真,需要首先了解洗衣机的工作流程和硬件组成。 洗衣机的工作流程通常包括洗涤、漂洗和脱水等步骤。对于设计洗衣机的汇编语言程序,我们可以将洗衣机的各个步骤抽象为不同的子程序,并通过调用这些子程序来实现洗衣机的功能。 在Proteus仿真洗衣机,我们可以使用虚拟的输入和输出设备来模拟洗衣机的外部接口。例如,我们可以使用push按钮作为洗衣机的启动和停止按钮,使用LED灯来显示洗衣机的运行状态。 具体的设计步骤如下: 1. 定义洗衣机的各个工作步骤,并为每个步骤编写对应的子程序。例如,洗涤程序可以包括加水、搅拌和排水等步骤,漂洗程序可以包括加水、搅拌和排水等步骤。 2. 编写主程序,根据用户的输入来调用不同的子程序,并按照指定的顺序执行洗衣机的各个步骤。例如,用户按下启动按钮后,程序开始执行洗涤程序;用户按下停止按钮后,程序停止洗涤并进入待机状态。 3. 在Proteus创建一个新的工程,并添加8086处理器和外部设备模块。根据洗衣机的具体需求,添加相应的输入和输出设备模块,例如按钮和LED灯。 4. 将编写好的汇编语言程序导入Proteus,并与外部设备模块进行连接。例如,将启动按钮和停止按钮连接到8086处理器的相应引脚,并将LED灯连接到显示洗衣机运行状态的引脚。 5. 运行Proteus仿真,模拟用户操作按钮,观察洗衣机的运行状态是否符合预期。可以通过LED灯的亮灭来判断洗衣机是否正常工作。 通过以上这些步骤,我们可以使用8086汇编语言设计洗衣机,并在Proteus进行仿真,以验证洗衣机的功能和正确性。需要注意的是,这只是一个简单的示例,具体的洗衣机设计可能会更加复杂,需要根据具体的需求进行调整和扩展。 ### 回答3: 使用8086汇编语言设计洗衣机及Proteus仿真可以通过以下步骤实现: 1. 设计洗衣机的功能:我们可以定义洗衣机的操作模式、洗涤时间、洗涤温度等基本参数。例如,可以设定洗衣机有正常模式和快洗模式,设定洗涤时间为30分钟,洗涤温度为40摄氏度。 2. 使用汇编语言编写控制程序:在8086汇编语言,我们可以使用汇编指令来控制洗衣机的运行。例如,我们可以使用输入输出指令来读取用户设定的参数,使用计时器指令来计时洗涤时间,使用温度控制指令来控制洗涤温度。 3. 编写与洗衣机硬件交互的接口程序:洗衣机通常会包括多种传感器和执行器,如温度传感器、电机、阀门等。我们需要编写适当的接口程序来与这些硬件进行交互。例如,根据温度传感器的输出来控制电热器的加热,根据用户设定的模式来控制电机的转速。 4. 使用Proteus进行仿真:Proteus是一款常用的电子电路仿真软件,可以模拟硬件电路的运行。我们可以将编写好的洗衣机控制程序与洗衣机硬件的接口程序集成,并在Proteus进行仿真。通过仿真,我们可以验证程序的正确性和洗衣机的功能。 通过以上步骤,我们可以使用8086汇编语言设计洗衣机,并在Proteus进行仿真,实现对洗衣机的控制和测试。这样做的好处是可以在实际制作洗衣机之前,通过仿真验证设计的正确性并进行修改,以避免在实际制作出现问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值