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

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

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

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

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

北邮微原硬件实验报告

微原硬件实验报告

 

学院:

班级:

学号:

班内序号:

姓名:

 

实验一I/O地址译码3

一、实验目的3

二、实验原理及内容3

三、硬件接线图4

四、软件程序流程图4

五、源程序代码5

六、实验结果与总结6

实验二简单并行接口7

一、实验目的7

二、实验原理及内容(273、244选做一个)7

三、硬件连线图8

四、软件程序流程图8

五、源程序代码9

六、实验结果与总结10

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

实验三七段数码管10

一、实验目的10

二、实验原理及内容10

三、硬件接线图11

四、软件程序流程图11

五、源程序代码12

六、实验结果与总结14

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

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

一、实验目的14

二、实验原理及内容14

三、硬件接线图14

四、软件程序流程图15

五、源程序代码16

六、实验结果与总结18

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

八、思考题18

实验五串行通讯接口8251实验19

一、实验目的19

二、实验原理及内容19

三、硬件接线图19

四、软件程序流程图20

五、源程序代码21

六、实验结果与总结23

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

八、思考题23

实验一I/O地址译码

一、实验目的

掌握I/O地址译码的基本原理

二、实验原理及内容

实验电路如图所示,其中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闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

 

三、硬件接线图

四、软件程序流程图

 

五、源程序代码

DATA1EQU2A0H;定义数据变量代表地址2A0H

DATA2EQU2A8H;定义数据变量代表地址2A8H

CODESEGMENT

ASSUMECS:

CODE

BEGIN:

MOVDX,DATA1;选择时钟Y4端口

OUTDX,AL

CALLDELAY;调用延时子程序

MOVDX,DATA2;选择数据口Y5

OUTDX,AL

CALLDELAY

MOVAH,1;检测是否有键盘输入

INT16H

JEBEGIN;如果没有输入,则循环

MOVAX,4C00H;返回DOS

INT21H

DELAYPROCNEAR;延时子程序

PUSHCX

PUSHBX

MOVBX,300

LP1:

MOVCX,0FFFFH

LP2:

LOOPLP2

DECBX

JNZLP1

POPBX

POPCX;保护BX,CX

RET

DELAYENDP

CODEENDS

ENDBEGIN

六、实验结果与总结

(1)实验结果:

小灯泡能按一定的时间间隔亮灭。

(2)总结:

本次实验主要考察我们用IO端口输出来控制其他器件以及对于delay函数的应用。

七、实验收获与心得体会

本次实验是第一次微原硬件实验。

由于课堂上学习的都是理论知识,实验刚开始还是有点不知所措的。

但是后来,通过看书上延时子函数以及DOS功能调用几节知识,然后编写代码,最终灯可以一闪一闪的。

通过计算频率,可实验灯以0.5秒的频率亮灭交替。

实验二简单并行接口

一、实验目的

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

二、实验原理及内容(273、244选做一个)

1、按下面图1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

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

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

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

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

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

三、硬件连线图

图1输出电路图图2输入电路图

四、软件程序流程图

 

五、源程序代码

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAH,1

INT21H

CMPAL,27;判断是否为ESC

JEEXIT;是就返回DOS

MOVDX,2A8H;不是就从端口输出其ASC码

OUTDX,AL

JMPSTART

EXIT:

MOVAX,4CH

INT21H

CODEENDS

ENDSTART

六、实验结果与总结

实验结果:

输入一个字符,能够利用8个灯泡显示该字符的ASC码,例如数字1的ASC码是31H,其二进制码为00110001B,则8个灯泡依次显示为灭灭亮亮灭灭灭亮。

总结:

代码编写简单,主要是电路连接复杂本次实验了解了并行接口的工作原理及应用,并且加强巩固了DOS功能号的调用和十六进制与二进制数之间的转换,掌握了I/O接口的输入输出的应用。

七、实验收获与心得体会

这次实验连线较多,刚开始一不小心将芯片插口处的几个接口接错了,还好最后细心检查出来了。

看到可以通过键盘控制流水灯,当时觉得一切都很神奇。

很喜欢微机原理实验,自己编代码也很开心。

实验三七段数码管

一、实验目的

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

二、实验原理及内容

静态显示:

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

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

三、硬件接线图

 

四、软件程序流程图

 

五、源程序代码

DATASEGMENT

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVDX,28BH;寄存器端口地址

MOVAL,80H;控制字10000000,设定工作方式0

OUTDX,AL

LOP1:

MOVDX,288H;A口地址,段选写0

MOVAL,3fH

OUTDX,AL

MOVDX,28AH;位选第4个LED,C口地址

MOVAL,08H

OUTDX,AL

MOVDX,28AH;熄灭数码管

MOVAL,0

OUTDX,AL

MOVDX,288H;段选写1

MOVAL,06H

OUTDX,AL

MOVDX,28AH;位选第3个LED

MOVAL,04H

OUTDX,AL

MOVDX,28AH;熄灭数码管

MOVAL,0

OUTDX,AL

MOVDX,288H;段选写7

MOVAL,07H

OUTDX,AL

MOVDX,28AH;位选第2个LED

MOVAL,02H

OUTDX,AL

MOVDX,28AH;熄灭数码管

MOVAL,0

OUTDX,AL

MOVDX,288H;段选写9

MOVAL,6fH

OUTDX,AL

MOVDX,28AH;位选第1个LED

MOVAL,01H

OUTDX,AL

MOVDX,28AH;熄灭数码管

MOVAL,0

OUTDX,AL

MOVAH,01H

INT16H

JNZEXIT;有键输入则跳出

JMPLOP1

EXIT:

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

六、实验结果与总结

(1)实验结果:

能够在4位数码管上静态显示我的4位学号:

0179

(2)总结:

本次试验,我学习了8255芯片进行并行接口的应用,并在之前的预习明白了数码管的位选和段选规律。

并且由于一次只能显示一个数码管,所以只能靠动态扫描的办法,通过位寄存器选择一个数码管,显示指定数字,再选择另一个数码管并显示数字,这样由于数字停留时间非常短,有视觉停留效果,所以看起来是4位数字同时显示的。

七、实验收获与心得体会

在书上学习8255芯片,学习它的各个引脚的功能。

在这次实验中,对控制字还有8255的各种工作模式都有所了解了。

当然刚开始数码管就是显示不了,一直显示的都是8888,后来,换了台机器,发现可以用了。

实验中总是会有一些突发的事情出现,耐心和自信是很必须的。

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

一、实验目的

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

二、实验原理及内容

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

音符频率对照

2.扩展部分:

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

注意:

8253输入频率应小于2MHz。

三、硬件接线图

 

四、软件程序流程图

 

五、源程序代码

;系统输入频率为1赫兹,由音符的频率可以算出计数器的计数初值分别设置为3906,3472,3125,2932,2604,2344,2083,1953(1*10^6/f)

DATASEGMENT

MUSICDW3906,3906,2604,2604,2344,2344,2604,2604,2932,2932,3125,

3125,3472,3472,3906,3906,2604,2604,2932,2932,3125,3125,

3472,3472,2604,2604,2932,2932,3125,3125,3472,3472;存入乐谱值代表的频率

SHOWDB06H,06H,6DH,6DH,7DH,7DH,6DH,6DH,66H,66H,4FH,4FH,5BH,

5BH,06H,06H,6DH,6DH,66H,66H,4FH,4FH,5BH,5BH,6DH,6DH,

66H,66H,4FH,4FH,5BH,5BH;存入乐谱值

COUNTEQU$-MUSIC

DATAENDS

STACKSEGMENTSTACK‘STACK’

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,COUNT

LEABX,MUSIC

LEASI,SHOW

MOVDX,28BH;数码管初始化,8255

MOVAL,10000000B

OUTDX,AL

AGAIN:

MOVDX,283H

MOVAL,00111110B;计数器0,16位,方式3,二进制

OUTDX,AL;写控制字

MOVDX,280H;写计数器初值

MOVAX,[BX]

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDELAY

CALLSHUAMAGUAN

INCSI

ADDBX,2

MOVAH,01H

INT16H

JNZEXIT;有键输入则跳出

JMPLOOP

EXIT:

MOVAH,4CH

INT21H

DELAYPROCNEAR;延时子程序

PUSHCX

PUSHBX

MOVBX,230

DELAY:

MOVCX,0FFFFH

WAIT1:

LOOPWAIT1

DECBX

JNZDELAY1

POPBX

POPCX

RET

DELAYENDP

SHUMAGUANPROC;数码管显示子程序

MOVDX,288H;数码管数据口地址

MOVAL,[SI]

OUTDX,AL

RET

SHUMAGUANENDP

CODEENDS

ENDSTART

六、实验结果与总结

(1)实验结果:

能流畅播放儿歌《小星星》

(2)总结:

通过本实验,我学会了利用8253作为计时器来产生设定频率的方波信号,实现了音乐器的编写,对于计时器的应用有了更深的理解。

遗憾的是扩展部分:

利用小键盘实现弹琴功能,并显示弹奏的乐谱这个功能没有实现,所以下一步的目标就是实现这个功能。

七、实验收获与心得体会

这次实验使用的是8253,用8253来做计时器产生设定频率的方波信号,实现对音乐器的编写。

我们可以通过改变延时子程序的延长时间可以听到不同频率的音乐声。

当然在对CX赋初值的时候,刚开始赋的大了,结果最后有一段杂音,都是小问题,后来都解决了。

八、思考题

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

答:

8253计数初值=输入频率/输出频率

实验五串行通讯接口8251实验

一、实验目的

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

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

二、实验原理及内容

1、按图连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。

2、编程:

从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,(或将内存制定区域内存放的一批数据通过8251A的TXD发送出去,然后从RXD接收回来,并在屏幕上或数码管上显示出来。

)实现自发自收。

三、硬件接线图

 

4、软件程序流程图

四、软件程序流程图

五、源程序代码

DATASEGMENT

DATASEGMENT

STRINGDB'Pleaseputinaword.',0DH,0AH,'$';提示字符

DATAENDS

STACKSEGMENTSTACK'SATCK'

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

;8254初始化

MOVDX,283H

MOVAL,16H

OUTDX,AL

MOVDX,280H

MOVAL,34H

OUTDX,AL

;8251初始化

MOVDX,2B9H;控制端口

MOVAL,40H;内部复位命令

OUTDX,AL

NOP

MOVAL,5EH;方式控制字

OUTDX,AL

MOVAL,37H;命令控制字

OUTDX,AL

;显示提示字符

MOVAH,09H

MOVDX,OFFSETSTRING

INT21H

;发送数据

GOON:

MOVDX,2B9H;读状态字

INAL,DX

TESTAL,01H;检测是否可以发送字符

JZGOON

MOVAH,01H;输入字符

INT21H

;检测是否为ESC键

CMPAL,1BH

JZEXIT

ADDAL,1H

;发送数据

MOVDX,2B8H

OUTDX,AL

;接受数据

RECIEVE:

MOVDX,2B9H;读入状态字

INAL,DX

TESTAL,02H;检测是否可以接受

JZRECIEVE

MOVDX,2B8H;接受数据

INAL,DX

MOVDL,AL

MOVAH,02H;显示接受的数据

INT21H

JMPGOON

;退出,回到DOS

EXIT:

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

六、实验结果与总结

实验结果:

从键盘输入字符,在屏幕上能显示,且紧跟着能显示输入字符ASC码加1后的输出字符,按ESC键可退出。

总结:

本次实验,我利用8251实现了串行通信,完成自发自收。

通过对8251状态字的改变,可以达到发送数据和接收数据的效果。

通过DOS功能调用,实现键盘输入,控制8251发送数据,然后再自己接收,将其显示在我们输入数据的后面。

七、实验收获与心得体会

本次实验完成了自发自收。

用8253作为计时器,用8251实现数据的自发自收。

在上次实验中,对8253已经有很深的了解了,所以这次实验代码写起来比较简单,虽然没有做选作,但是已经可以达到对只是的了解了。

当然如果事先不接TX,键盘输入数据,我们会发现,输入一个数据之后就不会显示其他输入的数据了,但是当我们再接上TX时,会发现在屏幕上显示好多刚才发送的数据。

八、思考题

在实验中,你如何确定RXC、TXC的值,写出计算公式。

答:

RXC=TXC=8253输入时钟频率=8251的波特率×8251的波特因子

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

当前位置:首页 > 解决方案 > 学习计划

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

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