微机原理--控制发光二极管LED0-LED7

文章详细描述了一种基于8086最小系统的硬件设计,包括对LED和LCD的控制,通过按钮输入和74LS245进行数据传输。同时介绍了软件设计,包括使用ASM代码进行输入输出操作,并在Prouteus中进行了仿真调试。实验增强了作者的理论理解和实践能力。
摘要由CSDN通过智能技术生成

一、设计内容

控制发光二极管LED0--LED7

二、总体设计

总体设计方案:本设计采用8086最小系统作为控制系统,控制对发光二极管的LCD0到LCD7的光的控制,LCD0对应a,LCD1对应b,依次对应c,d,e,f,g,h;通过按钮来实现输入结果,通过74LS245输出结果,并将结果输出到AD0到AD7,继而通过8086代码来通过累加器及端口号来输出,然后通过总线通过74LS245输出结果。

                                                            总体设计图

三、硬件设计

Proteus元件清单及功能

(1)8086

RESET:复位信号,高电平有效至少要维持4个时钟周期。复位后,CPU立即停止当前所有操作,总线无效,使DS、ES、SS、FLAGS、IF清0,CS:IP=FFFF:0000H,使指令队列变空,停止中断。复位结束后,CPU执行重启启动过程,转到FFFF0H处执行指令,可在该处安排一条JMP指令,转到系统初始化程序;

REDAY:准备就绪信号。它是由被访问的存储器或I/O口发给CPU的响应信号,若该信号为0,表示被访问的存储器或I/O端口还未准备好,CPU还未准备好,当REDAY信号变为1后,表示已准备好,才进入T4周期,完成数据传送的过程。

MN/MX_:最小/最大模式选择信号;

AD15~AD0:地址/数据总线,双向、三态、分时复用信号。CPU访问内存或I/O设备时,先从AD线上给出地址信号,并将地址信号用锁存器锁存起来,再在AD线上传送数据,这样就从时间上把地址/数据信号分开了;

A19/S6~A16/S3:地址/状态线,在T1周期,这4根线作高四位地址A19高4位无效,仅用A15T4周期,它们作状态信号S6~S3用;

RD_:读控制信号。当它为低电平时,允许CPU从存储器或I/O端口读出数据;

WR_:写信号,低电平有效。该信号有效时,允许CPU对存储器或I/O端口进行写入操作;

M/IO_:存储器或I/O端口控制信号。由CPU输出,当它为高电平时,表示CPU正在访问存储器;当它为低电平时。表示CPU正在访问I/O端口。

(2)74LS245: 用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。

片选端/CE:低电平有效;

AB/BA_:低电平时,信号由B向A传输;高电平时,信号由A向B传输;

(3)OR:或门,同时为低电平时,可以接通;

(4)7SEG-MPX1-CA: 总共有九个引脚,远离八个引脚的一个可以接地,可以接上拉电阻后接地,若把单独的引脚放在右边,从左往右数,依次对应a,b,c,d,e,f,g(小数点);

(5)BUTTON:按键;

(6)PULLUP:上拉,用一个电阻接到vdd,电阻在3K~10K之间。

功能:主要是为集电极开路输出型电路输出电流通道。

电路图

四、软件设计

主要思路

从整个电路图上可以看出,我们使用的是8086,在这块使用了.asm代码可以实现输入与输出。我们使用了一个两块74LS245,这个既可以用来A为输入信号,也可以使用B来输入信号,这是它的一个用处。下面的那块74LS245主要实现对按钮的输入,以便实现对LCD0到LCD7的控制;上面的74LS245将8086输出的结果通过其将它输出到LCD显示器上,还使用了8个按钮,用来控制LED 的发光;还有使用了8个上拉(PULLUP)主要是为集电极开路输出型电路输出电流通道,根据如图规律所示显示。

代码(.asm)

;====================================================================
; Main.asm file generated by New Project wizard
;
; Created:   周三 6月 22 2022
; Processor: 8086
; Compiler:  MASM32
;
; Before starting simulation set Internal Memory Size 
; in the 8086 model properties to 0x10000
;====================================================================
CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE

START:
   xor al,al
   mov al, 00000001h 
 
ENDLESS:

TUS_KONTROL:
      IN AL, 66H			
      CMP AL, 00h			
      JZ TUS_KONTROL

      
      NOT AL		
      OUT 66H, AL			
      
      JMP ENDLESS			
	
CODE    ENDS
        END START

五、仿真调试与分析

Prouteus仿真调试过程

当点击第一个按钮时,实现了LCD上面的a:

当点击第二个按钮时,实现了LCD上面的b:

当点击第三个按钮时, 实现了LCD上面的c:

当点击第四个按钮时, 实现了LCD上面的d:

当点击第五个按钮时, 实现了LCD上面的e:

当点击第六个按钮时, 实现了LCD上面的f:

当点击第七个按钮时, 实现了LCD上面的g:

当点击第八个按钮时, 实现了LCD上面的dp:

方法

根据按钮调试,看看输出结果。

六、个人心得

在本次实验中,使我对芯片有了更深的认识,在查找资料的同时,增加自己的理解力,提高了我的逻辑思维能力,使我在逻辑电路的分析与设计上有了很大的进步。

七、参考文献

[1]周国祥.微机原理与接口技术[M].北京:中国科学技术大学出版社,2010

[2]顾 晖,陈 越,粱惺彦等.微机原理与接口技术——基于8086+Proteus仿真[M].北京:电子工业出版社,2011

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值