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

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

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

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

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

北邮微机原理硬件实验报告

微机原理硬件实验报告

 

专业通信工程

班级

姓名

学号

班内序号

报告日期2013年10月~12月

实验一、实验二

一、实验目的

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

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

二、实验原理及内容

实验一:

I/O地址译码

1.编程控制LED灯闪烁

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

280H~287H,Y1:

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

要使译码电路正常工作,必须使使能端处于低电平。

即A6=A8=0,A7=A9=1,AEN=0,IOW与IOR不可同时为1(即不能同时读写)。

当要从Y4输出低脉冲时,A5A4A3=100;从Y5输出时,A5A4A3=101。

因此,当Y4输出时,应设置值A9~A0=1010100000B=2A0H;Y5输出时,应设置值A9~A0=1010101000B=2A8H。

执行下面两条指令:

MOVDX,2A0H

OUTDX,AL

延时一段时间(delay);

执行下面两条指令;

MOVDX,2A8H

OUTDX,AL

再延时一段时间,然后循环上述步骤。

利用这两个负脉冲及延迟来控制L7闪烁发光,时间间隔通过软件延时实现。

实验二:

简单并行接口

1、74LS273插通用插座,74LS32用实验台上的“或门”。

74LS273的8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

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

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

实验一:

I/O地址译码

图1-1硬件连接图

 

其中,Y4/IO地址接CLK/D触发器

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

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

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

图1-2软件流程图

实验二:

简单并行接口

图1-3硬件连接图

图1-4软件流程图

四、源程序及注释

实验一:

I/O地址译码

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,X;设定A9~A0的值

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

CALLDELAY;调用延时子程序

MOVDX,Y;设定A9~A0的值

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

CALLDELAY;调用延时子程序

MOVAH,1;调用1号DOS功能,等待键盘输入

INT16H

JESTART;若有键盘输入则退出程序,否则继续循环

MOVAH,4CH

INT21H

DELAYPROCNEAR;延时子程序

MOVBX,200

A:

MOVCX,0

B:

LOOPB

DECBX;BX自减1

JNEA

RET

DELAYENDP

CODEENDS

ENDSTART

实验二:

简单并行接口

codesegment

assumecs:

code

start:

movah,01h;输入一个字符

int21h

cmpal,1bh

jzexit;判断是否是ESC,是则退出

movdx,2a8h

outdx,al

jmpstart

exit:

movax,4c00h

int21h

codeends

endstart

五、实验结果

实验一:

I/O地址译码

发光二极管以一定的频率闪灭交替(频率可以通过修改延时子程序的参数来改变),按‘ESC’退出。

实验二:

简单并行接口

在键盘上键入字符后,8个LED灯成功显示对应的ASCII(‘1’亮,‘0’灭),键入“ESC”后程序成功退出。

六、实验收获及心得体会

这门实验弱化了对代码的要求,侧重硬件的接线,以及对译码原理的理解等。

实验三、实验四

一、实验目的

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

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

二、实验内容及原理

1、8255芯片工作原理:

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位(如图3-1),存放在8255控制寄存器中。

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

根据上图,方式控制字应为:

10000000B,即80H。

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

2、七段数码管及接线图:

1)静态显示:

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

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

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

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

图2-18255方式控制字

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

图2-2数码管字型代码

三、硬件接线图及软件流程图

实验三:

可编程并行接口8255

图2-3硬件连接图

接线:

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

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

CS/8255接Y1/IO地

图2-4软件流程图

实验四:

七段数码管

图2-5硬件连接图

接线:

PA7~PA0/8255接dp~a/LED数码管

PC3~PC0/8255接S3~S0/LED数码管

CS/8255接Y1/IO地址

图2-6软件流程图

四、源程序及注释

实验三:

可编程并行接口8255

codesegment

assumecs:

code

start:

movdx,28BH;设8255为C口输入,A口输出

moval,89h

outdx,al

inout:

movdx,28AH;从C口输入一数据

inal,dx

movdx,288H;从A口输出刚才自C口输入的数据

outdx,al

movdl,0ffh;判断是否有按键

movah,06h

int21h

jzinout;若无,则继续自C口输入,A口输出

movah,4ch;否则返回DOS

int21h

codeends

endstart

实验四:

七段数码管

DATASEGMENT;数据段

SHOWDB06H,66H,6FH,06H;1491

COUNTEQU$-SHOW

CATDB01h;选通信号,可以不赋初值

DATAENDS

STACKSEGMENTSTACK'STACK'

DB100HDUP(?

STACKENDS;代码段

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

NEXT:

MOVCX,COUNT

LEABX,SHOW

MOVCAT,01H;选通信号,最先点亮第1个数字

AGAIN:

MOVAL,80H;写控制器,方式选择;A、B口方式0输出

MOVDX,28BH

OUTDX,AL

MOVAL,CAT

MOVDX,28AH;C口为数码管选通端口

OUTDX,AL

MOVAL,[BX]

MOVDX,288H;A口为8段数码管

OUTDX,AL;依次显示学号后四位数字

INCBX

SHLCAT,1

LOOPAGAIN

MOVAH,0BH;检测键盘缓冲区

INT21H

ORAL,AL

JZNEXT

RET

STARTENDP

CODEENDS

ENDSTART

五、实验结果

实验三:

可编程并行接口8255

拨码开关控制灯的亮灭。

实验四:

七段数码管

在数码管上显示0195。

 

六、实验总结及心得体会

刚开始调试时,数码管上四个数字无法静态显示,一开始以为是分频系数的问题,于是调整了分频系数。

但是把分频系数改小了之后,就出现了4个9,也就是出现了残影。

经过分析和讨论之后,找出了问题所在:

没有对数码管进行清零。

改正之后显示正常。

实验八可编程定时器/计数器

一、实验目的

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

二、实验内容及原理

1、8253芯片

1)8253初始化

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

初始化编程的步骤是:

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

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

2)8253控制字:

图3-18253控制字

附:

8253控制寄存器地址283H计数器0地址280H

计数器1地址281H计数器2地址282H

定时器可工作在方式3下。

综上所述,设置控制字为:

00111110B,即选择零号计数器,先读/先写低8位、再读/写高8位,选择方式3,计数初值为二进制。

2、音乐产生原理

由参考资料中的音符与频率对应表,根据计数器的性质,利用公式,使用MATLAB矩阵运算可以快速计算出七种音符在高中低音时计数器应该对应的初始计数值,如下表所示。

图3-2音符频率图

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

如下图所示(虚线为实际要接的线路):

图3-3硬件接线图

 

接线:

CS/8253接Y0/IO地址

GATE0/8253接+5V

CLK0/8253接1M时钟

OUT0/8253接喇叭或蜂鸣器

图3-4软件流程图

四、源代码及注释

DATASEGMENT

BUFDB'115566544332215544332554433211556654433221';小星星乐谱

LTHEQU$-BUF;乐谱长度

DATAENDS

STACKSEGMENT

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

DELAYPROCNEAR;延时子程序

PUSHCX;避免改变原始CX值,将其压入堆栈

MOVCX,0FFFFH;光靠设置CX的值延时还不够长

LENGTH:

MOVAX,50;嵌套循环,总循环长度为AX*CX

WAIPRO:

DECAX

JNZWAIPRO

LOOPLENGTH

POPCX;提取原CX值

RET

DELAYENDP

 

START:

;主程序

MOVAX,DATA

MOVDS,AX

MOVAL,80H;控制字写入

MOVDX,28BH

OUTDX,AL;初始化8255

MOVDX,283H

MOVAL,00111110B

OUTDX,AL;初始化8253

;8253工作于计数器0,先读低8再读高8,方式3,二进制

;8255工作于工作方式0

BEGIN:

MOVBX,OFFSETBUF;载入音谱

MOVCX,LTH;根据音谱长度设定循环变量

PRO:

MOVAL,[BX];载入音符

ADDBX,1;准备载入下一个音符

CMPAL,31H;通过比较ASCII码,读取单个音符

JZN1;跳往DO

CMPAL,32H

JZN2

CMPAL,33H

JZN3

CMPAL,34H

JZN4

CMPAL,35H

JZN5

CMPAL,36H

JZN6

CMPAL,37H

JZN7

CMPAL,38H

JZN8

PRO2:

LOOPPRO

JMPFIN;音乐播完

N1:

JMPDO;由于程序过长,此处设置跳转中转处

N2:

JMPRE

N3:

JMPMI

N4:

JMPFA

N5:

JMPSO

N6:

JMPLA

N7:

JMPSII

N8:

JMPDOI

DO:

MOVDX,280H;设置零号计数器的初始值

MOVAL,42H;42H是通过公式算得的初始值低8位

OUTDX,AL

MOVAL,0FH;高8位

OUTDX,AL

MOVDX,28AH;数码管清零

MOVAL,00H

OUTDX,AL

MOVDX,288H;给数码管送出1的段码

MOVAL,06H

OUTDX,AL

MOVDX,28AH;给数码管送出位码(最高位显示)

MOVAL,08H

OUTDX,AL

CALLDELAY;调用延时子程序,以免乐谱播放过快

JMPPRO2;准备接收下一个音符

;以下代码解释雷同

RE:

MOVDX,280H

MOVAL,90H

OUTDX,AL

MOVAL,0DH

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,5BH

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

MI:

MOVDX,280H

MOVAL,34H

OUTDX,AL

MOVAL,0CH

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,4FH

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

FA:

MOVDX,280H

MOVAL,74H

OUTDX,AL

MOVAL,0BH

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,66H

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

SO:

MOVDX,280H

MOVAL,2CH

OUTDX,AL

MOVAL,0AH

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,6DH

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

N9:

JMPBEGIN;代码跳转中转处

LA:

MOVDX,280H

MOVAL,28H

OUTDX,AL

MOVAL,09H

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,7DH

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

SII:

MOVDX,280H

MOVAL,24H

OUTDX,AL

MOVAL,08H

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,07H

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

DOI:

MOVDX,280H

MOVAL,0A2H

OUTDX,AL

MOVAL,07H

OUTDX,AL

MOVDX,28AH

MOVAL,00H

OUTDX,AL

MOVDX,288H

MOVAL,75H

OUTDX,AL

MOVDX,28AH

MOVAL,08H

OUTDX,AL

CALLDELAY

JMPPRO2

FIN:

MOVDX,280H;乐谱播完,进入静音状态,设置初值

MOVAL,0AH;发出超声波(人耳听不到),低8位

OUTDX,AL

MOVAL,00H;高8位

OUTDX,AL

MOVAH,01H;调用1号DOS功能,等待键盘输入

INT21H

CMPAL,1BH;是否输入“ESC”

JNZN9;是则退出,否则进行下一次播放

MOVAH,4CH;程序结束,返回DOS界面

INT21H

CODEENDS

ENDSTART

五、实验结果

喇叭播放音乐,数码管上显示乐谱,按ESC退出播放。

六、心得体会与建议

实验总结:

通过编程播放出来的音乐没有原版音乐那种抑扬顿挫的感觉,究其原因在于节拍没有变化,也就是说在不同音调之间还得有频率变化,遗憾的是在本次实验中由于时间问题没能实现。

心得体会:

实验非常有趣,在音乐声中理解了8253的工作原理,在本次实验8253做分频使用,用以给不同的音符提供频率。

七、思考题

问题:

写出8253计数初值、输入频率和输出频率的关系。

答:

输出频率=输入频率/初值

 

实验16串行口8251A实验

一、实验目的

1、了解串行通讯的基本原理。

2、掌握串行接口芯片8251的工作原理和编程方法。

二、实验原理及内容

1、实验原理:

1)8251A的基本性能:

可以工作在同步或异步方式下,两种方式下的字符位数5-8个;

同步方式时传输速率可达0-64K,异步方式时传输速率可达0-19.2K;

异步传输时,可自动产生一个起始位,程控产生1个、1.5个、2个停止位;

具有奇偶错、数据丢失和帧错误和检测能力;

同步方式时,可自动检测,插入同步字符。

2)8251A的工作原理:

A.方式控制字

图4-18251A方式控制字格式

从图中可知:

D0D1:

首先区分发送方式,其次是在异步条件下的输入时钟频率与波特率之间的系数。

接收和发送的波特率可以不同,接收时钟和发送时钟的频率也可以不同,但是接收和发送的波特率系数只能是同一个。

D3D2:

确定每个字符的位数。

字符长度值可以从5位到8位不等。

当程序制定字符位数小于8位时,有效数据位右对齐,高位以0补充。

D4:

决定是否使用奇偶校验位,D5表示校验的方式。

注意,校验位仅仅是提供传送过程中是否有出错的判定,当正确接收到有效数据后,检验位的作用完成。

因此,从RxD上接收的奇偶校验信号是不会进入CPU的。

D7D6:

与采用的传输方式有关。

当D1D0≠00为异步方式时,表示停止位的个数,其中D7D6=00时无效。

当D1D0=00为同步方式时,D6=1为外同步,D6=1为内同步。

D7表示同步字符的个数,D7=1为单同步,D7=0为双同步。

如果为外同步方式,则D7无效。

B.命令控制字

图4-28251A命令控制字格式

格式中,TxEN和RxE位分别是发送允许和接收允许位,在发送和接收之前应发相应位为“1”的命令字,当然两位也可同时为“1”。

和位分别控制和端的输出状态,要根据通信是否受这些信号的控制来选择这两位的值。

SBRK位为1时将使TxD输出低电平作为“间断”信号。

ER位为“1”将使状态信息中的错误标志PE、OE清除为0。

IR位为“1”的命令字用于使8251A复位,与RESET端加高电平作用一样。

8251A复位以后,等待设置方式控制字。

在设置为同步方式后,第一个命令字的EH为应该为1,称为ENTERHUNT(进入搜索方式)命令。

这个命令之后,8251A进入测试同步字符的操作状态。

C.状态控制字

8251A内部设有状态寄存器,CPU可由读指令IN获取状态寄存器的内容,判定8251A当前的工作状态。

状态寄存器各位的定义如图9-27所示。

D1(RxRDY)、D0(TxRDY)位可供CPU查询。

状态位TxRDY和输出引脚TxRDY有所不同。

状态位TxRDY并不受命令控制字中允许发送位TxEN和输入的允许发送引脚的控制,它只反映发送命令/数据缓冲器的状态,只要数据缓冲器一空就置位;而输出引脚TxRDY却要受到上述内部和外部两个条件限制,它不只反映发送过程中数据缓冲器的状态。

图4-38251A状态字格式

在发送前和发送后TxRDY的状态位和输出引脚的状态可能不一致,在发送过程中二者总是一致的。

前者可供CPU查询,后者可作为向CPU发出的中断申请信号。

状态位的置位比状态的出现总是要滞迟后,最坏情况下要延迟28个时钟脉冲(CLK端)。

在读状态的操作过程中,状态位是不变

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

当前位置:首页 > 小学教育 > 语文

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

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