ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:818.71KB ,
资源ID:13133591      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13133591.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮微机原理硬件实验报告.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、北邮微机原理硬件实验报告微机原理硬件实验报告 专 业 通信工程 班 级 姓 名 学 号 班内序号 报告日期 2013年10月12月 实验一、实验二一、实验目的1.掌握I/O地址译码电路的工作原理。2.掌握简单并行接口的工作原理及使用方法。二、实验原理及内容实验一:I/O地址译码1.编程控制LED灯闪烁2.译码输出端Y0Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H287H,Y1:288H28FH, 当CPU执行I/O指令且地址在280H2BFH范围内,译码器被选中,必有一根译码线输出负脉冲。 要使译码电路正常工作,必须使使能端处于低电平。即A6=A8=0,A7=

2、A9=1,AEN=0,IOW与IOR不可同时为1(即不能同时读写)。当要从Y4输出低脉冲时,A5A4A3=100;从Y5输出时,A5A4A3=101。因此,当Y4输出时,应设置值A9A0=1010100000B=2A0H;Y5输出时,应设置值A9A0=1010101000B=2A8H。执行下面两条指令: MOV DX, 2A0H OUT DX, AL延时一段时间(delay);执行下面两条指令;MOV DX, 2A8H OUT DX, AL再延时一段时间,然后循环上述步骤。利用这两个负脉冲及延迟来控制L7闪烁发光,时间间隔通过软件延时实现。实验二:简单并行接口1、74LS273插通用插座,74

3、LS32用实验台上的“或门”。74LS273的8个D输入端分别接数据总线D0D7,8个Q输出端接LED显示电路L0L7。 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地址译码COD

4、E SEGMENT ASSUME CS:CODESTART: MOV DX,X ;设定A9A0的值 OUT DX,AL ;Y4端口输出一个负脉冲 CALL DELAY ;调用延时子程序 MOV DX,Y ;设定A9A0的值 OUT DX,AL ;Y5端口输出一个负脉冲 CALL DELAY ;调用延时子程序 MOV AH,1 ;调用1号DOS功能,等待键盘输入 INT 16H JE START ;若有键盘输入则退出程序,否则继续循环 MOV AH,4CH INT 21HDELAY PROC NEAR ;延时子程序 MOV BX,200A: MOV CX,0B: LOOP B DEC BX ;B

5、X自减1 JNE A RETDELAY ENDPCODE ENDS END START 实验二:简单并行接口code segment assume cs:codestart: mov ah,01h ;输入一个字符 int 21h cmp al,1bh jz exit ;判断是否是ESC,是则退出 mov dx,2a8h out dx,al jmp startexit: mov ax,4c00h int 21h code ends end start 五、实验结果 实验一:I/O地址译码发光二极管以一定的频率闪灭交替(频率可以通过修改延时子程序的参数来改变),按ESC退出。实验二:简单并行接口

6、在键盘上键入字符后,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端口与外设之间不使用联络线

7、。 方式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口的地址-

8、28AH。2、七段数码管及接线图:1)静态显示:将8255的A口PA0PA7分别与七段数码管的段码驱动输入端adp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。(或编程在数码管上循环显示“00-99”, 位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。) 2)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。七段数码管的字型代码表如下表:图 2-1 8255方式控制字(向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。)图 2-

9、2 数码管字型代码三、硬件接线图及软件流程图实验三:可编程并行接口8255 图2-3 硬件连接图 接线:PC7PC0/8255 接 K7K0/逻辑电平开关PA7PA0/8255 接 L7L0/LED显示CS/8255 接 Y1/IO地 图2-4软件流程图实验四:七段数码管 图2-5硬件连接图接线: PA7PA0/8255 接 dpa/LED数码管PC3PC0/8255 接 S3S0/LED数码管CS/8255 接 Y1/IO地址 图2-6软件流程图四、源程序及注释实验三:可编程并行接口8255code segment assume cs:codestart: mov dx,28BH ;设825

10、5为C口输入,A口输出 mov al,89h out dx,alinout: mov dx,28AH ;从C口输入一数据 in al,dx mov dx,288H ;从A口输出刚才自C口输入的数据 out dx,al mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回DOS int 21hcode ends end start实验四:七段数码管DATA SEGMENT ;数据段SHOW DB 06H,66H,6FH,06H ;1491COUNT EQU $-SHOW CAT DB

11、 01h;选通信号,可以不赋初值DATA ENDSSTACK SEGMENT STACKSTACK DB 100H DUP(?)STACK ENDS ;代码段CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKSTART PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX NEXT: MOV CX,COUNT LEA BX,SHOW MOV CAT,01H ;选通信号,最先点亮第1个数字AGAIN: MOV AL,80H ;写控制器,方式选择;A、B口方式0输出 MOV DX,28BH OUT

12、 DX,AL MOV AL,CAT MOV DX,28AH ;C口为数码管选通端口 OUT DX,AL MOV AL,BX MOV DX,288H ;A口为8段数码管 OUT DX,AL ;依次显示学号后四位数字 INC BX SHL CAT ,1 LOOP AGAIN MOV AH,0BH ;检测键盘缓冲区 INT 21H OR AL,AL JZ NEXT RETSTART ENDPCODE ENDSEND START 五、实验结果实验三:可编程并行接口8255拨码开关控制灯的亮灭。实验四:七段数码管在数码管上显示0195。六、实验总结及心得体会 刚开始调试时,数码管上四个数字无法静态显示,

13、一开始以为是分频系数的问题,于是调整了分频系数。但是把分频系数改小了之后,就出现了4个9,也就是出现了残影。经过分析和讨论之后,找出了问题所在:没有对数码管进行清零。改正之后显示正常。 实验八 可编程定时器计数器一、实验目的学习掌握8253用作定时器的编程原理。二、实验内容及原理1、8253芯片1)8253初始化 使用8253前,要进行初始化编程。初始化编程的步骤是: A、向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 B、向使用的计数器端口写入计数初值。2)8253控制字:图 3-1 8253控制字附:8253控制寄存器地址 283H 计数器0地址 280H 计数器1地址 281

14、H 计数器2地址 282H 定时器可工作在方式3下。综上所述,设置控制字为:00111110B,即选择零号计数器,先读/先写低8位、再读/写高8位,选择方式3,计数初值为二进制。2、音乐产生原理由参考资料中的音符与频率对应表,根据计数器的性质,利用公式,使用MATLAB矩阵运算可以快速计算出七种音符在高中低音时计数器应该对应的初始计数值,如下表所示。 图 3-2 音符频率图三、硬件连接图及软件流程图如下图所示(虚线为实际要接的线路):图 3-3 硬件接线图接线: CS /8253 接 Y0 /IO 地址 GATE0 /8253 接 +5V CLK0 /8253 接 1M时钟 OUT0 /825

15、3 接 喇叭或蜂鸣器 图3-4 软件流程图四、源代码及注释DATA SEGMENT BUF DB 115566544332215544332554433211556654433221;小星星乐谱 LTH EQU $-BUF ;乐谱长度DATA ENDS STACK SEGMENT DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY PROC NEAR ;延时子程序 PUSH CX ;避免改变原始CX值,将其压入堆栈 MOV CX,0FFFFH ;光靠设置CX的值延时还不够长LENGTH: MOV AX,

16、50 ;嵌套循环,总循环长度为AX*CXWAIPRO: DEC AX JNZ WAIPRO LOOP LENGTH POP CX ;提取原CX值 RETDELAY ENDP START: ;主程序MOV AX,DATA MOV DS,AX MOV AL,80H ;控制字写入 MOV DX,28BH OUT DX,AL ;初始化8255 MOV DX,283H MOV AL,00111110B OUT DX,AL ;初始化8253;8253工作于计数器0,先读低8再读高8,方式3,二进制;8255工作于工作方式0BEGIN: MOV BX,OFFSET BUF ;载入音谱 MOV CX,LTH

17、;根据音谱长度设定循环变量PRO: MOV AL,BX ;载入音符 ADD BX,1 ;准备载入下一个音符 CMP AL,31H ;通过比较ASCII码,读取单个音符 JZ N1 ;跳往DO CMP AL,32H JZ N2 CMP AL,33H JZ N3 CMP AL,34H JZ N4 CMP AL,35H JZ N5 CMP AL,36H JZ N6 CMP AL,37H JZ N7 CMP AL,38H JZ N8PRO2: LOOP PRO JMP FIN ;音乐播完 N1: JMP DO ;由于程序过长,此处设置跳转中转处 N2: JMP RE N3: JMP MI N4: JM

18、P FA N5: JMP SO N6: JMP LA N7: JMP SII N8: JMP DOIDO: MOV DX,280H ; 设置零号计数器的初始值 MOV AL,42H ; 42H是通过公式算得的初始值低8位 OUT DX,AL MOV AL,0FH ;高8位 OUT DX,AL MOV DX,28AH ;数码管清零 MOV AL,00H OUT DX,AL MOV DX,288H ;给数码管送出1的段码 MOV AL,06H OUT DX,AL MOV DX,28AH ;给数码管送出位码(最高位显示) MOV AL,08H OUT DX,AL CALL DELAY ;调用延时子程

19、序,以免乐谱播放过快 JMP PRO2 ;准备接收下一个音符 ;以下代码解释雷同RE: MOV DX,280H MOV AL,90H OUT DX,AL MOV AL,0DH OUT DX,AL MOV DX,28AH MOV AL,00H OUT DX,AL MOV DX,288H MOV AL,5BH OUT DX,AL MOV DX,28AH MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2MI: MOV DX,280H MOV AL,34H OUT DX,AL MOV AL,0CH OUT DX,AL MOV DX,28AH MOV AL,00H OUT

20、 DX,AL MOV DX,288H MOV AL,4FH OUT DX,AL MOV DX,28AH MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2FA: MOV DX,280H MOV AL,74H OUT DX,AL MOV AL,0BH OUT DX,AL MOV DX,28AH MOV AL,00H OUT DX,AL MOV DX,288H MOV AL,66H OUT DX,AL MOV DX,28AH MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2SO: MOV DX,280H MOV AL,2CH OUT D

21、X,AL MOV AL,0AH OUT DX,AL MOV DX,28AH MOV AL,00H OUT DX,AL MOV DX,288H MOV AL,6DH OUT DX,AL MOV DX,28AH MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2N9: JMP BEGIN ;代码跳转中转处LA: MOV DX,280H MOV AL,28H OUT DX,AL MOV AL,09H OUT DX,AL MOV DX,28AH MOV AL,00H OUT DX,AL MOV DX,288H MOV AL,7DH OUT DX,AL MOV DX,28A

22、H MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2SII: MOV DX,280H MOV AL,24H OUT DX,AL MOV AL,08H OUT DX,AL MOV DX,28AH MOV AL,00H OUT DX,AL MOV DX,288H MOV AL,07H OUT DX,AL MOV DX,28AH MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2DOI: MOV DX,280H MOV AL,0A2H OUT DX,AL MOV AL,07H OUT DX,AL MOV DX,28AH MOV AL,00

23、H OUT DX,AL MOV DX,288H MOV AL,75H OUT DX,AL MOV DX,28AH MOV AL,08H OUT DX,AL CALL DELAY JMP PRO2FIN: MOV DX,280H ;乐谱播完,进入静音状态,设置初值 MOV AL,0AH ;发出超声波(人耳听不到),低8位 OUT DX,AL MOV AL,00H ;高8位 OUT DX,AL MOV AH,01H ;调用1号DOS功能,等待键盘输入 INT 21H CMP AL,1BH ;是否输入“ESC” JNZ N9 ;是则退出,否则进行下一次播放 MOV AH,4CH ;程序结束,返回DO

24、S界面 INT 21H CODE ENDS END START五、实验结果喇叭播放音乐,数码管上显示乐谱,按ESC退出播放。六、心得体会与建议实验总结:通过编程播放出来的音乐没有原版音乐那种抑扬顿挫的感觉,究其原因在于节拍没有变化,也就是说在不同音调之间还得有频率变化,遗憾的是在本次实验中由于时间问题没能实现。心得体会:实验非常有趣,在音乐声中理解了8253的工作原理,在本次实验8253做分频使用,用以给不同的音符提供频率。七、思考题问题: 写出8253计数初值、输入频率和输出频率的关系。答: 输出频率=输入频率 / 初值实验16 串行口8251A实验一、实验目的1、了解串行通讯的基本原理。

25、2、掌握串行接口芯片8251的工作原理和编程方法。二、实验原理及内容1、实验原理:1)8251A的基本性能:可以工作在同步或异步方式下,两种方式下的字符位数58个; 同步方式时传输速率可达064K,异步方式时传输速率可达019.2K; 异步传输时,可自动产生一个起始位,程控产生1个、1.5个、2个停止位; 具有奇偶错、数据丢失和帧错误和检测能力; 同步方式时,可自动检测,插入同步字符。2)8251A的工作原理: A.方式控制字图4-1 8251A方式控制字格式从图中可知: D0D1:首先区分发送方式,其次是在异步条件下的输入时钟频率与波特率之间的系数。接收和发送的波特率可以不同,接收时钟和发送

26、时钟的频率也可以不同,但是接收和发送的波特率系数只能是同一个。D3D2:确定每个字符的位数。字符长度值可以从5位到8位不等。当程序制定字符位数小于8位时,有效数据位右对齐,高位以0补充。D4:决定是否使用奇偶校验位,D5表示校验的方式。注意,校验位仅仅是提供传送过程中是否有出错的判定,当正确接收到有效数据后,检验位的作用完成。因此,从RxD上接收的奇偶校验信号是不会进入CPU的。 D7D6:与采用的传输方式有关。当D1D000为异步方式时,表示停止位的个数,其中D7D600时无效。当D1D000为同步方式时,D61为外同步,D61为内同步。D7表示同步字符的个数,D71为单同步,D7=0为双同

27、步。如果为外同步方式,则D7无效。B.命令控制字图42 8251A命令控制字格式格式中,TxEN和RxE位分别是发送允许和接收允许位,在发送和接收之前应发相应位为“1”的命令字,当然两位也可同时为“1”。 和位分别控制和端的输出状态,要根据通信是否受这些信号的控制来选择这两位的值。SBRK位为1时将使TxD输出低电平作为“间断”信号。ER位为“1”将使状态信息中的错误标志PE、OE清除为0。IR位为“1”的命令字用于使8251A复位,与RESET端加高电平作用一样。8251A复位以后,等待设置方式控制字。在设置为同步方式后,第一个命令字的EH为应该为1,称为ENTER HUNT(进入搜索方式)

28、命令。这个命令之后,8251A进入测试同步字符的操作状态。C.状态控制字8251A内部设有状态寄存器,CPU可由读指令IN获取状态寄存器的内容,判定8251A当前的工作状态。状态寄存器各位的定义如图927所示。D1(RxRDY)、D0(TxRDY)位可供CPU查询。状态位TxRDY和输出引脚TxRDY有所不同。状态位TxRDY并不受命令控制字中允许发送位TxEN和输入的允许发送引脚的控制,它只反映发送命令/数据缓冲器的状态,只要数据缓冲器一空就置位;而输出引脚TxRDY却要受到上述内部和外部两个条件限制,它不只反映发送过程中数据缓冲器的状态。图43 8251A状态字格式在发送前和发送后TxRDY的状态位和输出引脚的状态可能不一致,在发送过程中二者总是一致的。前者可供CPU查询,后者可作为向CPU发出的中断申请信号。状态位的置位比状态的出现总是要滞迟后,最坏情况下要延迟28个时钟脉冲(CLK端)。在读状态的操作过程中,状态位是不变

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

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