微型计算机技术及应用.docx

上传人:b****1 文档编号:14612193 上传时间:2023-06-25 格式:DOCX 页数:19 大小:1.09MB
下载 相关 举报
微型计算机技术及应用.docx_第1页
第1页 / 共19页
微型计算机技术及应用.docx_第2页
第2页 / 共19页
微型计算机技术及应用.docx_第3页
第3页 / 共19页
微型计算机技术及应用.docx_第4页
第4页 / 共19页
微型计算机技术及应用.docx_第5页
第5页 / 共19页
微型计算机技术及应用.docx_第6页
第6页 / 共19页
微型计算机技术及应用.docx_第7页
第7页 / 共19页
微型计算机技术及应用.docx_第8页
第8页 / 共19页
微型计算机技术及应用.docx_第9页
第9页 / 共19页
微型计算机技术及应用.docx_第10页
第10页 / 共19页
微型计算机技术及应用.docx_第11页
第11页 / 共19页
微型计算机技术及应用.docx_第12页
第12页 / 共19页
微型计算机技术及应用.docx_第13页
第13页 / 共19页
微型计算机技术及应用.docx_第14页
第14页 / 共19页
微型计算机技术及应用.docx_第15页
第15页 / 共19页
微型计算机技术及应用.docx_第16页
第16页 / 共19页
微型计算机技术及应用.docx_第17页
第17页 / 共19页
微型计算机技术及应用.docx_第18页
第18页 / 共19页
微型计算机技术及应用.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微型计算机技术及应用.docx

《微型计算机技术及应用.docx》由会员分享,可在线阅读,更多相关《微型计算机技术及应用.docx(19页珍藏版)》请在冰点文库上搜索。

微型计算机技术及应用.docx

微型计算机技术及应用

微型计算机技术及应用

课程设计

课程题目:

跑马灯的设计与实现

 

学院:

物理电气信息学院

专业:

电子信息工程

班级:

电子信息工程

(1)班

姓名:

刘丽丽12013241930

刘浩12013241979

李云鹏12013241932

指导老师:

李春树

完成日期:

2015年12月7日

 

跑马灯的设计与实现

一实验目的

1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;

2.深入了解与掌握8086微处理器、8255A、74ls154和74LS273的工作原理

3.通过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行

开关量控制的原理与方法。

二实验要求

1.产生6种彩灯(8位LED)的走马灯花样;

2.键控(或拨码开关控制)发光实验。

通过按下不同的开关来控制灯的不同的走向。

三实验内容

1.进行走马灯的系统电路设计,掌握基本原理;

2.利用PROTEUS软件画出电路原理图;

3.进行走马灯的控制程序设计(采用ASM语言);

4.将程序导入8086中进行仿真,完成4种不同的走向。

四程序流程图

 

Y

N

 

五.设计原理与硬件电路

1.功能分析

此次课程设计具体功能为:

(1)采用不同的开关作为输入信号,8个LED灯作为输出信号。

(2)当按下不同的开关时(每次只能按下一个开关,不能同时按下多个开关)LED灯会出现不同的闪烁方式。

当开关断开始,LED灯自动熄灭。

2.实验原理(系统连接图的设计)

8255A是一种通过可编程并行I/O接口芯片。

广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。

8255A和各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。

在实验中,我们运用8255为CPU与外设之间提供输入输出输出通道来实现对走马灯花样变换的控制。

8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。

走马灯模拟电路原理如图1所示。

模块包括8个LED彩灯、三个74LS273、一个74LS154和若干电阻及开关。

用LED可以观测在不同按键输入下,走马灯花样的变化效果。

如图1所示我们利用软件输入信号,通过8255端口扩展芯片和74LS273芯片,调节输出端口的电平变化,来控制共阴极的LED灯的亮与灭,实现走马灯花样变化。

 

图一

接线说明:

8255A共有三个8位端口,A口、B口和C口。

在本电路中,B口8个输出管脚PB7-PB0分别接8个并联的LED彩灯反馈跑马灯的发光方式;A口8个管脚PA7-PA0分别接8个并联的开关控制选择走马灯的发光方式。

3个74LS273的D0-D7接输入端,是信号的输入。

74LS154是4线-16线的译码器,具有选片作用,ABCD四个端口是输出端口,分别接到74LS273的输入端,E1和E2是低电平有效。

2.锁存控制电路

锁存控制电路电路如图2所示,在微控制器单元(MCU)中,寄存器是十分重要的资源。

寄存器的主要作用是快速寄存算术逻辑运算单元(ALU)运算过程中的数据,其锁存功能利用74LS273来实现,74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。

第一脚WR:

主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);

CP(CLK):

触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将数据锁存,D0~D7的数据不变。

CPU向外部发出地址锁存允许信号,从而使74LS273锁存地址信号,在通过译码芯片74LS154控制接口芯片8255A,在此系统中充当一个桥梁的作用。

这部分电路将相应信号传送给8255A的A0、A1和CS片选,进而CPU开始控制8255A从而驱动发光二极管显示不同的样式。

如下图为仿真图中的锁存部分

3)可编程并行通信接口芯片8255A

 

8255A的芯片引脚图如上图所示

8255共有40个引脚,采用双列直插式封装,各引脚功能如下:

D0--D7:

三态双向数据线,与单片机数据总线连接,用来传送数据信息。

CS:

片选信号线,低电平有效,表示芯片被选中。

RD:

读出信号线,低电平有效,控制数据的读出。

WR:

写入信号线,低电平有效,控制数据的写入。

PA0--PA7:

A口输入/输出线。

PB0--PB7:

B口输入/输出线。

PC0--PC7:

C口输入/输出线。

RESET:

复位信号线。

A1、A0:

地址线,用来选择8255内部端口。

GND:

地线。

8255内部包括三个并行数据输入/输出端口,两个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。

各部分功能概括如下:

(1)端口A、B、C

A口:

是一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。

B口:

是一个8位数据输入/输出锁存器/缓冲器和一个8位数据输入锁存器。

C口:

是一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器(输入不锁存)。

(2)工作方式控制电路

工作方式控制电路有两个,一个是A组控制电路,另一个是B组控制电路。

A组控制电路用来控制A口和C口的上半部分(PC7-PC4)。

B组控制电路用来控制B口和C口的下半部分(PC3-PC0)。

(3)总线数据缓冲器

总线数据缓冲器是一个三态双向8位缓冲器,作为8255与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。

(4)读/写控制逻辑电路

读/写控制逻辑电路接受CPU发来的控制信号RD、WR、RESET、地址信号A1-A0等,然后根据控制信号的要求,将端口数据读出,发往CPU,或者将CPU送来的数据写入端口。

8255A有3种基本的工作方式:

方式0:

基本的输入输出方式(无条件);端口A、端口B、端口C均可使用;

方式1:

选通的输入输出方式;(查询)端口A、端口B可以用。

方式2:

双向的传输方式,只有端口A可以使用。

方式0也叫基本输入/输出方式。

这种方式,不需要应答联络信号,端口A、端口B和端口C的高4位及低4位都可以作为输入或输出端口。

方式0的应用场合有无条件传送和查询传送2种;故根据我们系统设计的要求,综上所述,选择8255A的A,B口为工作方式0,其中A口作为输入、B口作为输出。

8255A的3种基本工作方式由方式控制字来决定,D7=1(特征位)表明是设定方式选择控制字;D7=0,则表示是端口C按位置位/复位控制字。

端口C分成高4位(PC7~PC4)和低4位(PC3~PC0),可分别设置成输入端口或输出端口;端口C的高4位与端口A配合组成A组,端口C的低4位与端口B配合组成B组。

根据系统设计得出8255A的方式选择控制字,以及将A口设置为输入,B口设置为输出的PROTEUS仿真图如图所示:

74LS1544线-16线译码器

将4个二进制编码输入译成16个彼独立的输出之一

将数据从一个输入线分配到16个输出的任意一个而实现调节功能-将4个二进制编码输入译成16个彼独立的输出之一

将数据从一个输入线分配到16个输出的任意一个而实现调节功能

原理:

这种单片4线--16线译码器非常适合用于高性能的存储译码器。

当两个选通输入G1和G2为低时,它可将4个二进制编码的输入译成16个互独立的输出之一。

实现解调功能的办法是:

用4个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。

当任何一个选通是高时,所有输出都为高。

6.软件及源程序

本次试验程序采用MASM软件进行调试,如图为程序运行调试成功的截图

7.实验源程序及注释

DATASEGMENT

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,10010000B

OUT96H,AL

A0:

INAL,90H;将A口的值11111110给AL

NOTAL;将AL取反00000001

MOVBL,AL;将AL值给BL,BL值为00000001

CMPAL,1;AL值与1比较

JNZA3;不为0跳转

A2:

MOVDL,AL;将AL值给DL,DL为00000001

OUT92H,AL;将AL从B口输出

INAL,90H;将A口的值送给AL

NOTAL;对AL取反

CMPAL,BL;将AL,BL比较

JNZA0;不为0跳转

MOVCX,20000

A1:

LOOPA1;CX减1,如不为0,则循环A1

MOVAL,DL;将DL值给AL

ROLAL,1;将AL值左移一位

JMPA2;跳转至A2

A3:

CMPAL,2;AL值与2比较

JNZA6;不为0跳转

MOVAL,80H;将80H值给AL

A5:

MOVDL,AL;将AL值给DL

OUT92H,AL;将AL值从B口输出

MOVCX,20000

A4:

LOOPA4;CX减1,如不为0则循环A4

INAL,90H;将A口的值给AL

NOTAL;将AL取反

CMPAL,BL;AL与BL比较

JNZA0;不为0跳转至A0

MOVAL,DL;将DL值给AL

RORAL,1;AL值右移一位

JMPA5;跳转至A5

A6:

CMPAL,4;AL与4比较

JNZA9;不为0跳转

MOVAL,05H;将05H给AL

A8:

MOVDL,AL;将DL值给AL

OUT92H,AL;AL值从B口输出

MOVCX,50000

A7:

LOOPA7;CX值减1,不为0循环A7

INAL,90H;将A口的值给AL

NOTAL;将AL取反

CMPAL,BL;将AL与BL比较

JNZA0;不为0跳转

MOVAL,DL;DL值给AL

ROLAL,1;AL值左移一位

JMPA8;跳转至A8

A9:

CMPAL,8;AL值与8比较

JNZA12;不为0跳转

MOVAL,0A0H;将0A0H值给AL

A11:

MOVDL,AL;将AL值给DL

OUT92H,AL;将AL从B口输出

MOVCX,50000

A10:

LOOPA10;CX减1若不为0,则循环A10

INAL,90H;将A口值给AL

NOTAL;将AL取反

CMPAL,BL;将AL于BL比较

JNZA0;不为0跳转

MOVAL,DL;将DL值给AL

RORAL,1;AL值右移一位

JMPA11;跳转至A11

A12:

CMPAL,10H;AL值与10H比较

JNZA17;不为0跳转

A16:

MOVAL,18H;将18H给AL

A14:

MOVDL,AL;将AL值给DL

OUT92H,AL;将AL值从B口输出

MOVCX,60000

A13:

LOOPA13;CX减1,若不为0则循环A13

INAL,90H;将A口值给AL

NOTAL;将AL取反

CMPAL,BL;AL与BL比较

JNZA0;不为0跳转至A0

MOVAL,DL;将DL值给AL

CMPAL,81H;AL值与81H比较

JZA16;为0跳转至A16

ANDAL,0F0H;AL值与0F0H值取与所得值放在AL中

MOVCX,0

MOVCH,AL;将AL值给CH

ROLCH,1;将CH值左移一位

MOVAL,DL;将DL值给AL

ANDAL,0FH;将AL值与0FH取与所得值放入AL中

MOVCL,AL;将AL值给CL

RORCL,1;将CL值右移一位

ADDCH,CL;将CH与CL值相加所得值给CH

MOVAL,CH;将CH值给AL

JMPA14;跳转至A14

A17:

CMPAL,20H;将AL值与20H比较

JNZA0;不为0跳转

A19:

MOVAL,81H;将81H值给AL

A20:

MOVDL,AL;将AL值给DL

OUT92H,AL;将AL值从B口输出

MOVCX,50000

A18:

LOOPA18;CX减1若不为0,则循环A18

INAL,90H;将A口值给AL

NOTAL;将AL取反

CMPAL,BL;AL与BL比较

JNZA0;不为0跳转

MOVAL,DL;将DL值给AL

CMPAL,18H;将AL与18H比较

JZA19;为0跳转至A19

ANDAL,0F0H;将AL值与0F0H相与所得值给AL

MOVCX,0

MOVCH,AL;将AL值给CH

RORCH,1;将CH值右移一位

MOVAL,DL;将DL值给AL

ANDAL,0FH;将AL值与0FH相与所得值给AL

MOVCL,AL;将AL值给CL

ROLCL,1;将CL值左移一位

ADDCH,CL;将CH与CL值相加所得值给CH

MOVAL,CH;将CH值给AL

JMPA20;跳转至A20

RET

CODEENDS

ENDSTART

8255A端口地址:

由于8086的A1和A2与8255A的A0和A1形成错位连接,形成4个偶地址,即如下:

端口地址A1A0

A口90H10010000

B口92H10010010

C口94H10010100

控制口96H10010110

七.课程设计过程中遇到的问题:

1.在开始的PROTEUS系统结构连线中,由于对该软件接触较少,所以对它的元件库不太熟悉,因此走了很多弯路。

2.8255A的芯片选择信号引脚CS连接译码器的Q0端,接受来自译码器的一个输出的低电平,但是这个引脚却始终为高电平,导致8255A的读信号和写信号不能正常完成。

在多次尝试后都不行,最后我将译码器的Q0端与8255A的CS端直接用导线连接起来却达到了效果。

8.实验心得及体会

通过本次课程设计,我进一步的了解和掌握了各种理论知识,如MASM和PROTEUS软件的使用及汇编语言的程序设计,同时也更深刻的认识到8086,8255A等一些芯片的工作原理,,加强了自己的动手能力,学会了如何用自己学的知识去处理一些实际问题,如何去处理一些常见的错误。

通过自己动手完成这次试验我明白了,只有自己做出来的才是自己的。

更加广泛的知道了一些芯片的功能和使用时的注意事项。

虽然这次课程设计成功完成了,但是在课程设计过程中,我也遇到了不少的问题。

一开始,由于对PROTEUS软件不太熟悉,在硬件连接的过程中,走了不少弯路,在连线时,由于不下心将两根不同的线头连在了一起,最后的LED灯却怎么也达不到预期效果,多次调试都不能成功,最后计息检查了电路才发现了这个错误,可见,做任何事都要认真,仔细,要不然就会出现问题。

在利用MASM软件调试的过程中,程序的出现了很多逻辑和语法错误,经过向同学请教,共同商讨,最终将程序调试成功。

这次课程设计使我明白了很多,首先做事要足够的细心和耐心,做实验不仅仅考验的是我们的理论知识,更加锻炼了我们的动手能力和心理素质,以及团结合作的能力,

总之,尽管我这次的课程设计成功了,但是仍然存在着不足,对书中的指令掌握的还不够好,自己的编程能力还很薄弱,需要以后不断的努力。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2