一、设计内容
控制发光二极管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