微机原理硬件实验.docx

上传人:b****5 文档编号:14401329 上传时间:2023-06-23 格式:DOCX 页数:50 大小:1.68MB
下载 相关 举报
微机原理硬件实验.docx_第1页
第1页 / 共50页
微机原理硬件实验.docx_第2页
第2页 / 共50页
微机原理硬件实验.docx_第3页
第3页 / 共50页
微机原理硬件实验.docx_第4页
第4页 / 共50页
微机原理硬件实验.docx_第5页
第5页 / 共50页
微机原理硬件实验.docx_第6页
第6页 / 共50页
微机原理硬件实验.docx_第7页
第7页 / 共50页
微机原理硬件实验.docx_第8页
第8页 / 共50页
微机原理硬件实验.docx_第9页
第9页 / 共50页
微机原理硬件实验.docx_第10页
第10页 / 共50页
微机原理硬件实验.docx_第11页
第11页 / 共50页
微机原理硬件实验.docx_第12页
第12页 / 共50页
微机原理硬件实验.docx_第13页
第13页 / 共50页
微机原理硬件实验.docx_第14页
第14页 / 共50页
微机原理硬件实验.docx_第15页
第15页 / 共50页
微机原理硬件实验.docx_第16页
第16页 / 共50页
微机原理硬件实验.docx_第17页
第17页 / 共50页
微机原理硬件实验.docx_第18页
第18页 / 共50页
微机原理硬件实验.docx_第19页
第19页 / 共50页
微机原理硬件实验.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理硬件实验.docx

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

微机原理硬件实验.docx

微机原理硬件实验

信息与通信工程学院

微机原理硬件实验报告

 

班级:

姓名:

学号:

序号:

日期:

2012年12月

目录

一、基本的I/O实验4

一、实验目的4

二、实验原理和内容4

(一)实验一:

4

(二)实验二:

4

三、硬件连接图及软件流程图:

5

(一)实验一:

5

(二)实验二:

6

四、源程序及注释7

(一)实验一:

7

(二)实验二:

8

五、实验结果9

六、实验总结9

七、实验收获与心得体会9

二.可编程并行接口8255实验10

一、实验目的10

二、实验原理和内容10

(一)实验原理10

(二)实验内容11

三、硬件连接图和软件流程图12

(一)实验三:

12

(二)实验四:

14

(三)实验五:

15

四、源程序及注释17

(一)实验三:

17

(二)实验四:

18

(三)实验五:

19

五、实验结果23

六、实验总结24

七、实验收获与心得体会24

三、可编程定时器/计数器(8253)实验25

一、实验目的25

二、实验原理和目的25

(一)实验原理:

25

(二)实验内容:

25

三、硬件连接图和软件流程图26

四、源程序及注释29

(一)基础部分:

29

(二)提高部分:

31

五、实验结果36

六、实验总结36

七、实验收获与心得体会37

四、串行通讯接口8251实验38

一、实验目的38

二、实验原理和目的38

三、硬件连接图和软件流程图38

四、源程序及注释40

五、实验结果41

六、实验总结41

七、实验收获与心得体会42

一、基本的I/O实验

一、实验目的

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

掌握简单并行接口的工作原理及使用方法。

二、实验原理和内容

(一)实验一:

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灯)或逻辑笔

(二)实验二:

1、74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

 

三、硬件连接图及软件流程图:

(一)实验一:

图一硬件连接图

图2软件流程图

(二)实验二:

图三实验硬件连接图

图四软件流程图

四、源程序及注释

(一)实验一:

DATASEGMENT

DATAENDS

STACKSEGMENT

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

;延时子程序,双重嵌套延时

DELAYPROCNEAR

PUSHCX

MOVCX,0FFFFH

WAIT2:

MOVBX,200

WAIT1:

DECBX

JNZWAIT1;如果BX不为0,则继续执行WAIT1

LOOPWAIT2;如果CX不为0,而BX为0,则执行WAIT2

POPCX;保护寄存器

ENDA:

RET

DELAYENDP

START:

PUSHDS;保护寄存器

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX;设置地址寄存器基地址

MOVDX,2A0H

OUTDX,AL;Y4输出一个负脉冲

CALLDELAY;调用延时子程序

MOVDX,2A8H

OUTDX,AL;Y5输出一个负脉冲

CALLDELAY;调用延时子程序

MOVAH,0BH

INT21H

ORAL,AL

JZSTART

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

(二)实验二:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVCX,0FFH

LOOP1:

MOVAH,1;循环执行程序

INT21H;键盘输入是否为ESC

CMPAL,1BH

JZEND1;是则跳出

MOVDX,2A8H;不是输出到Y5

OUTDX,AL

LOOPLOOP1

END1:

MOVAX,4C00H;返回DOS

INT21H

CODEENDS

ENDSTART

五、实验结果

(1)通过软件可以实现L7闪烁发光(亮、灭、亮、灭、……),直到键盘有按键按下。

(2)键盘输入某一个字符,L0~L7显示输出的ASCⅡ码,如果字符是ESC则退出返回DOS

六、实验总结

这是第一次微原的硬件实验,运用了课上学习的理论知识和硬件期间结合起来做了第一次实验。

由于课前没有做好充分准备,对实验所用的编程软件和硬件电路板还不太熟悉,所以实验中还是遇到了不少问题。

第一个难题就是延时时间长短的控制,开始只用了一层嵌套,导致灯一直看上去是亮着的状态,后来询问了老师还有同学,采用了双层嵌套延时,在慢慢尝试中修改最后得到了满意的实验结果。

第二个难题就是软件的应用,在运行的时候经常会出现程序终止的现象,遇到这种情况的时候,只要把硬件电路的电源重启即可。

第三个难题就是编程的不熟练,一定会在在今后的实验中好好慢慢练习。

七、实验收获与心得体会

在硬件实验的过程中,我更加深刻地认识到将理论知识与实践结合的重要性,只有亲自动手实践操作,才能更好地理解知识。

实验中一定要细心,不能放过任何一个实验的异常现象,在思考和操作中提升自己。

 

二.可编程并行接口8255实验

一、实验目的

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

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

3、掌握一般键盘和显示电路的工作原理。

二、实验原理和内容

(一)实验原理

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口控制寄存器。

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

5.静态显示:

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

 

(二)实验内容

1、8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

2、编程从8255C口输入数据,再从A口输出。

3、静态显示:

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

4.编程使得在小键盘上每按一个健,4位数码管上显示出相应字符,它们的对应关系如下:

 

三、硬件连接图和软件流程图

(一)实验三:

8255控制寄存器端口地址--28BH,A口的地址--288H,B口的地址--289H,C口的地址--28AH。

图一硬件连接图

图二软件流程图

(二)实验四:

图三硬件连接图

图四软件流程图

(三)实验五:

图五硬件连接图

图六软件流程图

四、源程序及注释

(一)实验三:

CODESEGMENT

ASSUMECS:

CODE

BEGIN:

MOVAL,89H

MOVDX,28BH;DX指向地址为28BH的地方

OUTDX,AL;写控制字将AL寄存器中的内容输出到地址为DX的端口,即28BH的端口

MOVDX,28AH;C口输入数据

INAL,DX

MOVDX,288H;A口输出数据

OUTDX,AL

MOVAH,0BH;检测有没有按下键盘,如果按下则停止

INT21H

ORAL,AL

JZBEGIN;如果没有按键,则循环执行

MOVAX,4C00H

INT21H;返回DOS

CODEENDS

ENDBEGIN

(二)实验四:

SMGMACROWEI,DUAN;在数码管上显示的宏

MOVDX,288H

MOVAL,DUAN;C端口输出段码

OUTDX,AL

MOVDX,28aH;A端口输出位码

MOVAL,WEI

OUTDX,AL

MOVAL,00H

OUTDX,AL

ENDM

CODESEGMENT

ASSUMECS:

CODE

BEGIN:

MOVDX,28BH

MOVAL,80H

OUTDX,AL;写控制字,设置A端口输出,C端口输出

SMG08H,06H;调用宏,输出学号

SMG04H,4FH

SMG02H,4FH

SMG01H,7FH

MOVAH,0BH;检测是否有按键按下

INT21H

ORAL,AL

JZBEGIN;如果没有按键,则继续运行

MOVAX,4C00H

INT21H

CODEENDS

ENDBEGIN

(三)实验五:

DATASEGMENT

TMPDB?

TMP1DB?

TMP2DB?

ADB?

a0DB3FH

a1DB06H;储存每个音符的七段数码管显示码

a2DB5BH

a3DB4FH

a4DB66H

a5DB6DH

a6DB7DH

a7DB07H

a8DB7FH

a9DB6FH

aaDB77H

abDB7CH

acDB39H

adDB5EH

aeDB79H

afDB71H

DATAENDS

STACKSEGMENTSTACK'STACK'

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE,SS:

STACK

RUNPROC

MOVDX,289H;设置位选通信号,用8255的B口

MOVAL,01H

OUTDX,AL

MOVDX,288H;设置段选通信号,用8255的A口

MOVAL,A

OUTDX,AL

MOVAL,0

OUTDX,AL

RET

RUNENDP

BEGIN:

MOVAX,DATA

MOVDS,AX

;读入c口的高四位输入

MOVDX,28BH;设置8255的控制字

MOVAL,10001000B;设置A口出,C口高4位输入,低4位输出

OUTDX,AL

GOON1:

MOVDX,28AH

INAL,DX

MOVTMP1,AL

CMPAL,00F0H

JZGOON1

;读入c口的低四位输入

MOVDX,28BH

MOVAL,10000001B;设置8255控制字,C口低4位输入,高4位输出

OUTDX,AL

GOON2:

MOVDX,28AH

INAL,DX

MOVTMP2,AL

CMPAL,000FH

JZGOON2

ORAL,TMP1

MOVTMP,AL;组合高位和低位放在TMP

CMPTMP,01110111B;0

JNZP1

MOVAL,a0;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P1:

CMPTMP,01111011B;1一行二列

JNZP2

MOVAL,a1;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU;如果没有按键,则继续运行

P2:

CMPTMP,01111101B;2

JNZP3

MOVAL,a2;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P3:

CMPTMP,01111110B;3

JNZP4

MOVAL,a3;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P4:

CMPTMP,10110111B;4

JNZP5

MOVAL,a4;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P5:

CMPTMP,10111011B;5

JNZP6

MOVAL,a5;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P6:

CMPTMP,10111101B;6

JNZP7

MOVAL,a6;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P7:

CMPTMP,10111110B;7

JNZP8

MOVAL,a7;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P8:

CMPTMP,11010111B;8

JNZP9

MOVAL,a8;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

P9:

CMPTMP,11011011B;9

JNZPA

MOVAL,a9;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

PA:

CMPTMP,11011101B;a

JNZPB

MOVAL,aa;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

PB:

CMPTMP,11011110B;b

JNZPC

MOVAL,ab;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

PC:

CMPTMP,11100111B;c

JNZPD

MOVAL,ac;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

PD:

CMPTMP,11101011B;d

JNZPE

MOVAL,ad;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

PE:

CMPTMP,11101101B;e

JNZPF

MOVAL,ae;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

PF:

CMPTMP,11101110B;f

MOVAL,af;记录0的段选通信号

MOVA,AL

CALLRUN;调用响声及显示子程序

JMPJIESHU

JIESHU:

MOVAH,0BH;检测是否有按键按下

INT21H

ORAL,AL

JZBEGIN;如果没有按键,则继续运行

MOVAX,4C00H

INT21H

CODEENDS

ENDBEGIN

五、实验结果

(1)8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

按下Ki,则对应的Li亮灯。

(2)在数码管上的最后四位显示我的学号后四位1338,按下键盘后程序终止,数码管停止显示,返回DOS。

(3)使得在小键盘上每按一个健,4位数码管上显示出相应字符。

六、实验总结

做这次实验的时候我们还没有学到8255,通过自学以及和同学的讨论,了解了可编程并行接口电路的原理和使用,之后理论学习的时候就很容易了。

但是实验三仅是简单的8255应用,控制字和状态字的写入比较容易。

我学会了用并行接口8255控制数码管的亮灭,准确写入8255的控制字,并用宏的方式调用数码管显示的子过程。

 

七、实验收获与心得体会

虽然是硬件实验,但是硬件的连线比较容易,大部分连接部分已经集成在电路板内部了,所以对我的硬件操作能力没有太多锻炼。

但是通过本次实验还是对8255的工作方式有所学习。

实验中的实验板是老师连接好了电路板和接口芯片,这样可以简化实验过程,也使得大家的硬件平台一致,我们仅需简单地连接几根线即可。

但这样存在的问题是,我们对芯片的地址和连线失去了动手实践的机会,而这个恰恰是我们专业的一大弱点,硬件接触过少,不熟悉,而软件相对掌握熟练。

建议给学生更多的空间去自己布线,更加熟悉硬件和接口。

虽然这会加大实验难度,但是可以老师引导着学生去做布线部分,给大家讲原理。

关于实验五,这次实验是在我做了实验八之后做的,所以只是把代码改了一下,删去了喇叭放音的部分,增加了字母的显示。

键盘的扫描和小学期单片机的很相似,采用了行扫描法,就是使键盘某一行线为低电平,其余为高电平,然后读取列值,如列值中有某位位低电平,则表明行列交叉点处的键被按下;否则扫描下行,知道扫完全部的行线为止。

本次实验还是比较顺利的,只有一些小错误。

 

三、可编程定时器/计数器(8253)实验

一、实验目的

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

二、实验原理和目的

(一)实验原理:

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

8254是8253的改进型。

1.8253初始化

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

初始化编程的步骤是:

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

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

2.8253控制字

D7D6=00:

使用0号计数器,D7D6=01:

使用1号计数器

D7D6=10:

使用2号计数器,D7D6=11:

无效

D5D4=00:

锁存当前计数值

D5D4=01:

只写低8位(高8位为0),读出时只读低8位

D5D4=10:

只写高8位(低8位为0),读出时只读高8位

D5D4=11:

先读/写低8位,后读/写高8位计数值

D3D2D1=000:

选择方式0,D3D2D1=001:

选择方式1

D3D2D1=X10:

选择方式2,D3D2D1=X11:

选择方式3

D3D2D1=100:

选择方式4,D3D2D1=101:

选择方式5

D0=0:

计数初值为二进制,D0=1:

计数初值为BCD码数

(二)实验内容:

1.完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。

2.扩展部分:

利用小键盘实现弹琴功能,并显示弹奏的乐谱。

注意:

8253输入频率应小于2MHz。

三、硬件连接图和软件流程图

图一硬件连接图

图二基本要求流程图

图三提高要求流程图

四、源程序及注释

(一)基础部分:

PLAYMACROC1,C2,A,B

LOCALAGAIN,AGAIN1

MOVDX,283H

MOVAL,00111110B

OUTDX,AL;8253,送出控制字,计数器0,先读最低8位,再读高八位,方式3,二进制

MOVDX,28BH

MOVAL,80H

OUTDX,AL;设置A端口输出,C端口输出

MOVCX,0FFH

AGAIN:

MOVBX,01H

AGAIN1:

MOVDX,280H;DX指向8283的0

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

当前位置:首页 > PPT模板 > 其它模板

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

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