微机原理硬件实验报告.docx

上传人:b****5 文档编号:8242932 上传时间:2023-01-30 格式:DOCX 页数:31 大小:644.45KB
下载 相关 举报
微机原理硬件实验报告.docx_第1页
第1页 / 共31页
微机原理硬件实验报告.docx_第2页
第2页 / 共31页
微机原理硬件实验报告.docx_第3页
第3页 / 共31页
微机原理硬件实验报告.docx_第4页
第4页 / 共31页
微机原理硬件实验报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

微机原理硬件实验报告.docx

《微机原理硬件实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理硬件实验报告.docx(31页珍藏版)》请在冰豆网上搜索。

微机原理硬件实验报告.docx

微机原理硬件实验报告

信息与通信工程学院

移动通信仿真实验报告

 

班级:

姓名:

学号:

序号:

实验一IO地址译码

一、实验目的

掌握I/O地址译码电路的工作原理。

二、实验原理及内容

1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:

280H~287H,Y1:

288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:

执行下面两条指令

MOVDX,2A0H

OUTDX,AL(或INAL,DX)

Y4输出一个负脉冲,执行下面两条指令

MOVDX,2A8H

OUTDX,AL(或INAL,DX)

Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

2、接线:

Y4/IO地址接CLK/D触发器

Y5/IO地址接CD/D触发器

D/D触发器接SD/D角发器接+5V

Q/D触发器接L7(LED灯)或逻辑笔

三、源程序

DATASEGMENT

DATAENDS

STACKSEGMENTSTACK'STACK'

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

STARTPROC

MOVAX,DATA

MOVDS,AX

KAI:

MOVAL,18H

MOVDX,2A8H

OUTDX,AL

CALLDELAY

LOOP1:

MOVBL,AL

ANDBL,0F0H

SHLBL,1

ANDAL,0FH

SHRAL,1

ADDAL,BL

MOVDX,2A8H

OUTDX,AL

CALLDELAY

JZKAI

JMPLOOP1

MOVAX,4C00H

INT21H

STARTENDP

DELAYPROC

PUSHCX

MOVCX,0FFFFH

DELOOP1:

NOP

PUSHCX

MOVCX,0FFFFH

DELOOP2:

NOP

LOOPDELOOP2

POPCX

LOOPDELOOP1

POPCX

DELAYENDP

CODEENDS

ENDSTART

四、心得体会

这是微原硬件实验的第一次,主要是熟悉了将要使用的实验系统,学习了最基本的硬件测试的方法,对接口的地址、LED灯的控制。

学会了怎样通过软件延时让LED灯闪烁,同时也学会了HQFC软件的使用。

同时也体会到了硬件实验不同于软件实验,硬件实验需要用软件去控制硬件工作,要向接口输出数据和控制信息,同时还要注意硬件的时序问题,这样才能驱动硬件正常工作。

实验二可编程并行接口8255

一、实验目的

1、通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。

二、实验原理及内容

1.8255的工作方式

一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。

方式0是基本型输入/输出。

这种方式和外设交换数据时,8255端口与外设之间不使用联络线。

方式1为选通型输入/输出。

用这种方式和外界交换数据时,端口和外设之间要有联络信号。

方式2是双向数据传送,仅A口有这项功能。

当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。

2.工作方式选择字

8255工作方式选择字共8位(如图),存放在8255控制寄存器中。

最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。

3.C口置/复位控制字

8255的C口可进行位操作,即:

可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)。

C口置/复位字共8位,各位含义如下:

3.8255A的控制信号与传输动作的对应关系

4.命令字与初始化编程

8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:

①向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。

②当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。

这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。

注意:

“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。

3向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据”

三、实验过程

1.流程图

2.电路连接

PC7~PC0/8255接K7~K0/逻辑电平开关

PA7~PA0/8255接L7~L0/LED显示

CS/8255接Y1/IO地址

3.源程序

DATASEGMENT

CTDW28BH

ADW288H

CDW289H

DATAENDS

STACK1SEGMENTSTACK'STACK'

DB100DUP(?

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK1

START:

MOVAX,DATA

MOVDS,AX

MOVAX,10001001B

MOVDX,CT

OUTDX,AX

LOOP1:

MOVDX,C

INAX,DX

MOVDX,A

OUTDX,AX

JMPLOOP1

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

四、心得建议

实验进入第二次,开始真正地通过接口芯片8255A控制外设的动作,编程上没有太大难度,关键是理解并行接口的工作原理以及认识了解8255接口芯片的控制方式以及编程技巧,以及简单地运用8255来进行数据传输。

实验三七段数码管

一、实验目的

掌握数码管显示数字的原理

小键盘按键显示的原理

二、实验原理及内容

1.静态显示:

按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。

(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1接PC0、PC1;S2、S3接地。

2.实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

七段数码管的字型代码表如下表:

3.矩阵式键盘的按键识别方法

行扫描法:

判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:

依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

三、实验过程

1.流程图

2.源程序

;数码管循环显示0~99

DATASEGMENT

RCDB00H,02H,04H,06H,08H,0AH,0CH,0EH

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DATAENDS

STACKSEGMENTSTACK'STACK'

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

STARTPROC

MOVAX,DATA

MOVDS,AX

MOVAL,8BH

MOVDX,28BH

OUTDX,AL

MOVCX,8

LEASI,RC

RESC:

LODSB

OUTDX,AL

INCSI

LOOPRESC

LEABX,TABLE

MOVCX,99

SHOW:

MOVDX,28AH

MOVAL,01H

OUTDX,AL

MOVAX,CX

AAM

XLATTABLE

MOVDX,288H

OUTDX,AL

CALLDELAY

MOVDX,28AH

MOVAL,02H

OUTDX,AL

MOVAL,AH

XLATTABLE

MOVDX,288H

OUTDX,AL

CALLDELAY

LOOPSHOW

MOVAX,4C00H

INT21H

STARTENDP

DELAYPROC

PUSHCX

MOVCX,0FFFFH

DELOOP1:

NOP

PUSHCX

MOVCX,0FFFFH

DELOOP2:

NOP

LOOPDELOOP2

POPCX

LOOPDELOOP1

POPCX

DELAYENDP

CODEENDS

ENDSTART

;小键盘按键显示

DATASEGMENT

DATAINDB5DUP(0);按键存储

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H

CATDB01H;选通端

COUNTHDB?

COUNTLDB?

DATALDB?

;列检测向量

HNDB50H,54H,58H,5BH;行向量表,得到入口地址

ORG50H;列向量表

H1DB0FH,0EH,0DH,0CH

H2DB0BH,0AH,9H,8H

H3DB7H,6H,5H,4H

H4DB3H,2H,1H,0H

DATAENDS

STACKSEGMENTSTACK'STACK'

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

STARTPROC

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAL,81H;行输出,列输入

MOVDX,28BH

OUTDX,AL

LOOP1:

HANG0:

MOVDX,28BH

MOVAL,00001110B

OUTDX,AL

MOVAL,00001101B

OUTDX,AL

MOVAL,00001011B

OUTDX,AL

MOVAL,00001001B

OUTDX,AL

MOVCOUNTH,3

MOVDATAL,01H;初始化列检测向量以及列数

MOVCOUNTL,0

MOVDX,28AH;读取列的输入值

INAL,DX

NOTAL;对列值取反,方便检测

ANDAL,0FH

JNZLIE

HANG1:

MOVDX,28BH

MOVAL,00001111B

OUTDX,AL

MOVAL,00001100B

OUTDX,AL

MOVAL,00001011B

OUTDX,AL

MOVAL,00001001B

OUTDX,AL

MOVCOUNTH,2

MOVDATAL,01H;初始化列检测向量以及列数

MOVCOUNTL,0

MOVDX,28AH;读取列的输入值

INAL,DX

NOTAL;对列值取反,方便检测

ANDAL,0FH

JNZLIE

HANG2:

MOVDX,28BH

MOVAL,00001111B

OUTDX,AL

MOVAL,00001101B

OUTDX,AL

MOVAL,00001010B

OUTDX,AL

MOVAL,00001001B

OUTDX,AL

MOVCOUNTH,1

MOVDATAL,01H;初始化列检测向量以及列数

MOVCOUNTL,0

MOVDX,28AH;读取列的输入值

INAL,DX

NOTAL;对列值取反,方便检测

ANDAL,0FH

JNZLIE

HANG3:

MOVDX,28BH

MOVAL,00001111B

OUTDX,AL

MOVAL,00001101B

OUTDX,AL

MOVAL,00001011B

OUTDX,AL

MOVAL,00001000B

OUTDX,AL

MOVCOUNTH,0

MOVDATAL,01H;初始化列检测向量以及列数

MOVCOUNTL,0

MOVDX,28AH;读取列的输入值

INAL,DX

NOTAL;对列值取反,方便检测

ANDAL,0FH

JZXIAN

LIE:

TESTAL,DATAL;查找列

JZNEXTL;ZF=1,证明未找到列,继续扫描下一列

MOVAL,COUNTH;ZF=0,找到按键,通过行查询入口地址

LEABX,HN

XLAT

MOVAH,0;通过入口地址查找按键

MOVBX,AX

MOVAL,COUNTL

XLAT

MOVBX,OFFSETTABLE;通过按键查找对应数码管码值

XLAT

CALLSTODT;将存储的值向下挪一个单元

MOVDATAIN,AL;储存按下的键

XIAN:

CALLSHODT;显示

JMPLOOP1;查询zf是否为1,

;如果是1证明检测到按键,进行下一次扫描

;不为1,则扫描下一列

NEXTL:

CMPCOUNTL,3;判断列是否扫描完毕,扫描完毕后扫描下一行

JAEHANG0

INCCOUNTL

SHLDATAL,1

JMPLIE

MOVAX,4C00H

INT21H

STARTENDP

STODTPROC

PUSHF

PUSHAX

PUSHCX

MOVCX,4;4个单元的搬移

MOVDI,OFFSETDATAIN

MOVSI,OFFSETDATAIN

ADDDI,4

ADDSI,3

STD;方向:

递减

REPMOVSB;转移串

POPCX

POPAX

POPF

RET

STODTENDP

SHODTPROC

PUSHF

PUSHCX

PUSHBX

PUSHAX

MOVCX,15

SLOOP:

PUSHCX

MOVCX,4

MOVBX,OFFSETDATAIN

MOVCAT,01H

SHLOOP:

MOVAL,CAT;数码管选通端输出

MOVDX,289H

OUTDX,AL

MOVDX,288H

MOVAL,[BX];选择并显示码值

OUTDX,AL

CALLDELAY

MOVAL,0

OUTDX,AL

INCBX;显示下一个数

SHLCAT,1

LOOPSHLOOP

POPCX

LOOPSLOOP

POPAX

POPBX

POPCX

POPF

RET

SHODTENDP

DELAYPROC

PUSHCX

MOVCX,01DFH

DELOOP1:

PUSHCX

MOVCX,0FFH

DELOOP2:

LOOPDELOOP2

POPCX

LOOPDELOOP1

POPCX

RET

DELAYENDP

CODEENDS

ENDSTART

四、实验总结

这一次实验我们开始使用8255A和数码管共同配合显示,实现了更加复杂和精确的控制。

在实验过程中,数码管的扫描延迟的时间是一个问题,时间过短会导致显示数据闪烁,时间过长又不能连续显示,同时还要在下次扫描之前将上次的数据给清除,这样才能防止数码管在显示的时候有残影影响显示美观性。

通过本次实验学习了不同外设工作的配合,学会了数码管的使用和对延时的调试技巧。

此外做了小键盘的扫描显示,学会了如何使用8255的C口高四位输出,低四位输入,学会了如何去扫描小键盘,处理好中间的时序问题,同时使用子程序控制使编程可读性更强,对于软件编程与硬件接口的配合也有了更深一层的了解。

实验四可编程定时器/计数器(8253/8254)

一、实验目的

学习掌握8253用作定时器的编程原理;

二、实验原理及内容

8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。

8254是8253的改进型。

1.8253初始化

使用8253前,要进行初始化编程。

初始化编程的步骤是:

①向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。

②向使用的计数器端口写入计数初值。

2.8253控制字

3.音符频率对照

三、实验过程

1.接线:

CS/8253接Y0/IO地址

GATE0/8253接+5V

CLK0/8253接1M时钟

OUT0/8253接喇叭或蜂鸣器

2源程序

DATASEGMENT

COUNTDW299H

CTDW29BH

ADW288H

CDW28AH

CT2DW28BH

DATAENDS

STACK1SEGMENTSTACK'STACK'

DB100HDUP(?

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK1

DELAYPROCNEAR

PUSHCX

MOVCX,0FFFH

WAIT1:

CALLDELAY2

LOOPWAIT1

POPCX

RET

DELAYENDP

DELAY2PROCNEAR

PUSHCX

MOVCX,02FFH

WAIT2:

LOOPWAIT2

POPCX

RET

DELAY2ENDP

START:

MOVAX,DATA

MOVDS,AX

MOVAX,DATA

MOVDS,AX

MOVDX,CT2

MOVAL,80H

OUTDX,AL

MOVDX,CT

MOVAL,01110110B

OUTDX,AL

CALLS3

CALLS3

CALLS4

CALLS5

CALLS5

CALLS4

CALLS3

CALLS2

CALLS1

CALLS1

CALLS2

CALLS3

CALLS3

CALLS2

CALLS2

MOVAH,1

INT16H

JZSTART

S1PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL,06H

MOVDX,A

OUTDX,AL

MOVAL,01H

MOVDX,C

OUTDX,AL

MOVDX,COUNT

MOVAX,3906

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

RET

S2PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL,5BH

MOVDX,A

OUTDX,AL

MOVAL,01H

MOVDX,C

OUTDX,AL

MOVDX,COUNT

MOVAX,3472

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

RET

S3PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL,4FH

MOVDX,A

OUTDX,AL

MOVAL,01H

MOVDX,C

OUTDX,AL

MOVDX,COUNT

MOVAX,3125

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

RET

S4PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL,66H

MOVDX,A

OUTDX,AL

MOVAL,01H

MOVDX,C

OUTDX,AL

MOVDX,COUNT

MOVAX,2933

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

RET

S5PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL,6DH

MOVDX,A

OUTDX,AL

MOVAL,01H

MOVDX,C

OUTDX,AL

MOVDX,COUNT

MOVAX,2604

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

RET

S6PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL,7DH

MOVDX,A

OUTDX,AL

MOVAL,01H

MOVDX,C

OUTDX,AL

MOVDX,COUNT

MOVAX,2344

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

RET

S7PROCNEAR

MOVAL,00H

MOVDX,C

OUTDX,AL

MOVAL

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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