《汇编与接口技术》实验三proteus的8086仿真过程+8086+8255+LED灯电路的工作原理

  • 一、实验目的

    1.熟悉基于proteus的8086仿真过程,熟悉8086、74273、74154、8255A等芯片的功能。
    2.熟练掌握附件中8086+8255+LED灯电路的工作原理,硬件连接及程序流程。
     
  • 二、实验任务

任务A定制硬件连接。设你本人学号最后一位数字为N,则8255A的片选信号(CS)需连接到74154的译码输出IO_N上,例如,学号20229999的同学,应将8255A的片选信号(CS)连接到74154的IO9上,以此类推(学号尾数为2的同学不需做此任务)。

任务B编写程序控制8个LED灯(D7-D0)的周期闪烁。一个闪烁周期中包含的闪烁状态数量由学号长度确定(8个),而闪烁模式本人学号数值确定,每个状态(阶段)保持一段时间。例如本人学号为20229999(8位),则一个闪烁周期包含八个阶段:

学号

闪烁模式

D7-D0亮灯模式

备注

2

阶段1

D2灯亮,其余灯灭

0

阶段2

D0灯亮,其余灯灭

2

阶段3

D2灯亮,其余灯灭

2

阶段4

D2灯亮,其余灯灭

9

阶段5

D0-D7全亮

当该位置的学号大于7时,8个灯全亮

9

阶段6

D0-D7全亮

9

阶段7

D0-D7全亮

9

阶段8

D0-D7全亮

编写代码,并实验验证。

  • 三、实验过程

  1. 任务A中的8255的地址是多少?8086是如何实现寻址的?

地址:

A端口:300

B端口:302

C端口:304

D端口:306

寻址过程:

由于8086地址线存在总线复用的情况,在选址时,将地址送入74273锁存器,为后面的数据传输做准备。然后将地址送入74154中实现4-16译码,ABCD生成16个片选信号,E1接8086M/IO信号,E2接A12-A15或门,当A12-A15全为0且8086选中访问存储器M时74154工作。

2、8255的各输出口的工作模式和连接关系?

首先设定方式字,在命令口输入10010000B,即A口输入,B口和C口均为输出。

        PB口作为输出口,连接8个发光二极管,其有四种工作模式:

  1.  开关K0打开、K1打开,即PA0、PA1为11时, 8086向端口B送入11111111B,表现为D0到D7全亮。
    2、开关K0闭合、K1打开,即PA0、PA1为01时, 8086向端口B送入01010101B,表现为D0到D7中偶数序号灯全亮。
    3、开关K0打开、K1闭合,即PA0、PA1为10时,从代码可知,程序进入到JISHU分支结构,8086向端口B送入10101010B,表现为D0到D7中奇数序号灯全亮。
    3、开关K0闭合、K1闭合,即PA0、PA1为00时,从代码可知,程序进入到QUANLIANG分支结构,8086向端口B送入11111111B,表现为D0到D7全亮。
           
  2. 、在没有8254定时器的情况下,闪烁各阶段的延时如何实现?

在向B口输出一个状态的信号的时候,利用循环指令LOOP来将该闪烁状态延时,其中CX的值表示需要延时的相对时间,每次循环都会使得CX值减1。

MOV DX,302H

       MOV AL,00000100B

       MOV CX,9FFFH

L0:    OUT DX,AL         ;保持‘2’的输出一段时长

       LOOP L0
  • 四、实验结果

任务A:

按下开关,正常运行

任务B:

输出20231167:

 

 

 

 

 五、代码附录

CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE
START:
  MOV AL,10010000B ;控制字
  MOV DX,706H   ;8255A的控制口地址
  OUT DX,AL
AGAIN: 
  MOV DX,700H   ;8255A的A口地址
  IN AL,DX
  TEST AL,00000011B ;
  JZ  QUANLIANG  ;K1,K0全闭,LED全亮
  TEST AL,00000010B ;
  JZ  JISHU   ;K1闭,K0开,奇数号LED亮
  TEST AL,00000001B ;
  JZ  OUSHU   ;K1开,K0闭,偶数号LED亮
QUANMIE:
  MOV DX,702H
  MOV AL,00000100B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,00000000B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,00000100B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,00001000B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,00000001B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,00000001B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,01000000B
  OUT DX,AL
         CALL DELAY10
  MOV DX,702H
  MOV AL,10000000B
  OUT DX,AL
         CALL DELAY10
  JMP AGAIN
JISHU:
  MOV DX,702H
  MOV AL,10101010B
  OUT DX,AL
  JMP AGAIN
OUSHU:
  MOV DX,702H
  MOV AL,01010101B
  OUT DX,AL
  JMP AGAIN
QUANLIANG:
  MOV DX,702H
  MOV AL,11111111B
  OUT DX,AL
        JMP AGAIN
 delay10 proc
mov cx,882
loop $
ret
delay10 endp 
CODE    ENDS

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值