微机原理课程设计报告彩灯控制器Word文档格式.docx

上传人:b****6 文档编号:21544999 上传时间:2023-01-31 格式:DOCX 页数:17 大小:492.93KB
下载 相关 举报
微机原理课程设计报告彩灯控制器Word文档格式.docx_第1页
第1页 / 共17页
微机原理课程设计报告彩灯控制器Word文档格式.docx_第2页
第2页 / 共17页
微机原理课程设计报告彩灯控制器Word文档格式.docx_第3页
第3页 / 共17页
微机原理课程设计报告彩灯控制器Word文档格式.docx_第4页
第4页 / 共17页
微机原理课程设计报告彩灯控制器Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机原理课程设计报告彩灯控制器Word文档格式.docx

《微机原理课程设计报告彩灯控制器Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告彩灯控制器Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

微机原理课程设计报告彩灯控制器Word文档格式.docx

它是一个双向三态8位缓冲器,用作与系统总线连接是的缓冲部件.CPU与8255A之间所有的数据的发送与接收以及CPU向8255A发送的控制信息和8255A向CPU回送的状态信息都是通过它传送的

(2)三个8位端口PA、PB、PC

端口A(PA口):

有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器;

端口B(PB口):

有一个8位数据输入缓冲器和一个8位数据输入/输出,锁存/缓冲存储器器;

端口C(PC口):

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

通常PA口与PB口用作输入/输出的数据端口,PC口用作控制和状态信息端口。

PC口可以分为两个四位的端口,每个端口包含一个四位锁存器,可分别同PA口和PB口配合使用,用作控制信号(输出)或作为状态信号(输入)。

(3)A组和B组控制电路

A组:

PA口和PC口的高四位(PC7~PC4);

B组:

PB口和PC口的低四位(PC3~PC0)。

这两组控制电路一方面接收CPU发来的控制字并决定8255A的工作方式;

另一方面接收来自读写控制逻辑电路的读写命令,完成接口的读写操作。

(4)读/写控制逻辑

用来管理数据信息。

控制字和状态字的传送,它接收来自CPU的地址总线的A1,A0和控制总线的信号RD.WR.RESET等,并向8255A的A,B两组发送命令.由它控制把CPU发出的控制命令字或输出的数据送到相应的端口,或把外设的状态信息或输入的数据从相应的端口送到CPU。

2.8255A引脚功能

8255A芯片除电源和地引脚以外,其他引脚可分为两组,引脚如图3所示:

(1)8255A与外设连接引脚

8255A芯片与外设连接的有24条双向、三态数据引脚,分成三组,分别对应于A,B,C三个数据端口:

PA7-PA0,PB7-PB0,PC7-PC0.

(2)8255A与CPU连接引脚

D7——与CPU侧连接的八条双向数据线;

WR(低电平有效)——写输入信号;

RD(低电平有效)——读输入信号;

CS(低电平有效)——片选输入信号;

A0、A1——片内寄存器选择输入信号;

PA7~PA0——A口外设双向数据线;

PB7~PB0——B口外设双向数据线;

PC7~PC0——C口外设双向数据线;

RESET——复位输入信号

/CS

/RD

/WR

A1A0

执行的操作

1

00

读端口A

01

读端口B

10

读端口C

11

非法状态

写端口A

写端口B

写端口C

写控制字端口

未选通

8255A的工作方式控制字

8255A有两个控制字:

方式选择控制字和端口C置位/复位控制字。

这两个控制字公用一个地址,即控制端口地址,用控制字的D7位来区分这两个控制字,D7=1为方式选择控制字;

D7=0为端口置位/复位控制字。

1.方式选择控制字

如图4所示:

2.端口C置位/复位控制字

端口C置位/复位控制字的格式如下图所示:

D3-D1三位的编码与端口C的某一位相对应,D0决定置位或复位操作,最高位为0是端口C置位或复位控制字标志。

如图5所示

D3

D2

D1

D0

位选择

PC0

PC1

PC2

PC3

PC4

PC5

PC6

PC7

图58255A端口C置

3.8255A的工作方式

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源引脚图供电,能在以下三种工作方式下工作:

方式0—基本输入/输出方式

方式0下,每一个端口都作为基本输入或输出口,端口C的高4位和低4位以及端口A、端口B都可独立的设置为输入口或输出口。

4个端口的输入或输出可有16种组合。

8255A工作于方式0时,CPU可采用无条件读写方式与8255A交换数据,也可采用查询方式与8255A交换数据。

采用查询方式时,可利用端口C作为与外设的联络信号。

方式1—选通输入/输出方式:

适用于查询和中断方式。

方式2—双向选通输入/输出方式:

方式2为双向传输方式,8255A的方式2可使8255A与外设进行双向通信,既能发送数据,又能接受数据,可采用查询方式和中断方式进行传输。

8086的引脚信号

如图6所示:

8086具有两种不同工作方式,即最小模式和最大模式。

若把MN/

引脚连至电源+5V,则为最小模式。

若把它接地,则处在最大模式。

四、软件设计

1.主程序流程图

2.开关设计

五、调试过程

1.硬件调试

设计的电路是由k5来控制灯的暂停和开始,k1-k5接PB0-PB4。

花型变换由k1,k2,k3,k4控制。

2.软件调试

输入程序,经编译,连接后下载到实验箱运行。

六、心得体会

通过彩灯控制器的汇编实现,对硬件特别是8253A,8255并行口的原理和实现都有了很深的了解。

更加深了对汇编语言的使用.在算法实现上要有一定的思路要更能体现设计的目的。

同时上机调试也是十分重要的,在调试的过程中能够不断的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。

通过这次的课程设计使我认识到要将微机原理这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。

可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。

因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。

七、实验源程序(附注释)

.486p

stackpequ1400h

CODESEGMENTUSE16

ASSUMEDS:

CODE,ES:

CODE,CS:

CODE

ORG03000H

BEG:

JMPSTART

IFSWITCHDB0

SHANSHUOCOUNTDB0

SWITCHCOUNTDB1

ORDERNODB0

ShanShuoLimitDB120

DENG1DB0,18H,24H,42H,81H

DENG2DB0,81H,42H,24H,18H,24H,42H

DENG3DB0,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

DENG4DB0,01H,02H,04H,08H,10H,20H,40H,80H,40H,20H,10H,08H,04H,02H

DENGCountDB4

PORT1EQU203H;

A

PORT2EQU207H;

B

PORT3EQU20BH;

C

PORT4EQU20FH;

CTRL

PORT8254AEQU300H

PORT8254BEQU304H

PORT8254CEQU308H

PORT8254DEQU30CH

PORTJIEQU3A8H;

8259A奇地址

PORTOUEQU3A0H;

8259A偶地址

START:

CLI;

关中断

movax,CODE

movds,ax

MOVAX,0

MOVES,AX

movss,ax

movsp,stackp

MOVAL,10000010B

MOVDX,PORT4;

8255初始化A端口输入,B端口输出

OUTDX,AL

MOVBX,40H*4

MOVAX,OFFSETINTPROC

MOVES:

[BX],AX;

设置中断向量

MOVAX,SEGINTPROC

[BX+2],AX

MOVAL,00010011B

MOVDX,PORTOU;

ICW1

OUTDX,AL

MOVAL,01000000B

MOVDX,PORTJI;

ICW2

MOVAL,00000001B;

ICW4

MOVAL,11111110B;

中断屏蔽字,OCW1

MOVAL,36H;

计数器初始化

MOVDX,PORT8254D

MOVAX,470

MOVDX,PORT8254A

MOVAL,AH

MOVAL,76H

MOVAX,100

MOVDX,PORT8254B

STI

WAIT:

JMPWAIT

INTPROCPROC

PUSHDX

PUSHAX

PUSHBX

MOVDX,PORT2;

读开关状态

INAL,DX

TESTAL,80H

JNZEXIT2

ANDAL,1FH

CMPAL,01H

JEONE

CMPAL,02H

JETWO

CMPAL,04H

JETHREE

CMPAL,08H

JEFOUR

CMPIFSWITCH,0;

IFSWTICH=1表示当前正在交替闪烁,

JNENEXT0;

IFSWTICH=0表示刚从某种样式单独闪烁的状态切换到交替闪烁的状态

MOVIFSWITCH,1

MOVSWITCHCOUNT,1;

先从第一种样式开始闪烁

MOVSHANSHUOCOUNT,0;

当前样式闪烁次数初始化

MOVORDERNO,0

NEXT0:

CMPSWITCHCOUNT,01H

CMPSWITCHCOUNT,02H

JETWO;

切到相应的样式

CMPSWITCHCOUNT,03H

CMPSWITCHCOUNT,04H

ONE:

MOVDL,01H

MOVDH,4

LEABX,DENG1

CALLCasePro

JMPEXIT1

TWO:

MOVDL,02H

MOVDH,6

LEABX,DENG2

THREE:

MOVDL,04H

MOVDH,9

LEABX,DENG3

JMPEXIT1

FOUR:

MOVDL,08H

MOVDH,14

LEABX,DENG4

EXIT1:

MOVDX,PORT1

OUTDX,AL;

从端口A送出数据,让小灯们亮

EXIT2:

CLI

MOVDX,PORTOU

MOVAL,20H;

发送EOI命令

POPBX

POPAX

POPDX

IRET

INTPROCENDP

CaseProPROC

CMPAL,DL;

再次确认是多样式交替闪还是单样式,AL=1说明是单样式

JENEXT11

INCSHANSHUOCOUNT;

闪烁次数+1

MOVAH,ShanShuoLimit

CMPSHANSHUOCOUNT,AH;

ShanShuoLimit120是交替闪烁的情况下每种样式最多闪烁次数

JNENEXT12;

不足120次

MOVSHANSHUOCOUNT,0

INCSWITCHCOUNT;

当前样式已经闪了120次,准备切到下一样式

MOVAH,DENGCount

CMPSWITCHCOUNT,AH;

DENGCount5是样式的数量

JBENEXT12

转样式1

JMPNEXT12

NEXT11:

MOVIFSWITCH,0

NEXT12:

INCORDERNO

CMPORDERNO,DH

JNGNEXT13

MOVORDERNO,1

NEXT13:

;

LEABX,DENG1

MOVAL,ORDERNO

XLAT

NOTAL;

对al每一位取反,因为二极管是0点亮

RET

CaseProENDP

CODEENDS

ENDbeg

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

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1