




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与通信工程学院微机原理硬件实验报告姓名班级学号班内序号联系电话孙桐山201121111220112103310318622609691 王霄201121111220112103492118810465931日期: 2013年 12月第2页实验一 熟悉实验环境及IO的使用1一、实验目的1二、实验内容1三、实验过程1四、心得体会5实验二8255A并行接口应用7一、实验目的7二、实验内容7三、实验过程71、八段数码管位选规律72、六位数码管静态显示83、六位数码管动态显示11四、心得建议15实验三8253计数器/定时器的应用16一、实验目的16二、实验内容16三、实验过程161、音乐发生器16四、实验总结231、思考题232、问题和解决方案233、心得体会与建议23实验四 串行口8251A实验24一、实验目的24二、实验内容24三、实验过程241、自收自发242、思考题32四、实验总结32II微机原理硬件实验报告实验一 熟悉实验环境及IO的使用一、实验目的1. 通过实验了解和熟悉实验台的结构,功能及使用方法。2. 通过实验掌握直接使用Debug的I、O命令来读写I/O端口。3. 学会Debug的使用及编写汇编程序。二、实验内容1. 学习使用Debug命令,并用I、O命令直接对端口进行读写操作。2. 用汇编语言编写跑马灯程序。实现功能:A. 通过读入端口状态,选择工作模式(灯闪烁方式、速度等);B. 通过输出端口控制灯的工作状态(低电平灯亮)。三、实验过程1. 在Debug下,用I是命令读输入端口的状态,即拨码开关的状态,用O命令向端口输出数据,通过发光管来查看。测试结果:A. 使用命令:读取开关状态,得出的结果是从左低右高,即是低位,是高位。B. 使用命令:测试数码管的低位,改变输入的值可依次测试各个数码管是否正常。七段数码管左边为高位,右边为低位。2. 分析以下程序段的作用MOV AH, 0BHINT 21HOR AL,ALJZ 0100INT 20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。该实现依赖于0BH号中断调用和巧妙使用程序入口返回地址直接返回。在DOS的DEBUG模式下,地址不用添加十六进制H标志。地址默认为16进制,多写了反而画蛇添足产生错误。普通数据为了区分需要添加H。3. 编写跑马灯程序。程序流程图如下:开始读取控制信息开关 开启?设定跑马灯方向、速度等参量灯循环亮灭控制信息变化?结束开关 开启?NONONOYESYES程序源码如下:DATA SEGMENT DB 100 DUP(0)DATA ENDS;-STACK SEGMENT STACK STACK ; DB 100 DUP(0)STACK ENDS;-CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK;-;使用两个环路延迟;读入决定多长时间循环,这可以控制速度PUASE MACRO LOCAL LOPP1,LOPP2,HER PUSH AX PUSH BX PUSH DXHER: READ; 在这里可以实现暂停功能 SHL AH,1 SHL AH,1;D6 控制暂停 JC HER MOV DH,AL AND DH,6FH;控制运行速度LOPP1: MOV AX,0FFFHLOPP2: DEC AX JNZ LOPP2 DEC DX JNZ LOPP1;两个循环,以保证足够的时间 POP DX POP BX POP AXENDM;-READ MACRO;读入端口的控制信息 MOV DX,0E8E0H IN AL,DX MOV AH,ALENDM;-START:;主程序 MOV AX,DATA MOV DS,AX MOV DX,0E8E0HLOP: READ SHL AL,1;D7是开关 JNC LOP SHR AH,1 ;D1控制运行方向 JC RTOL JNC LTORRTOL: ;从右到左运行 MOV BL,0FEH;只有一个数码管显示LOP1:ROL BL,1;BL循环移位,指示灯改变 PUSH AX MOV AL,BL OUT DX,AL POP AX PUASE;产生人眼可视效果 READ;判断控制命令是否更改 SHL AL,1 JNC EXIT;开关关闭,退出程序 SHR AH,1 JC LOP1;如果运行方向没有发生变化LTOR: ;从左向右运行 MOV BL,0FEHLOP2:ROR BL,1 ; BL循环移位,指示灯改变 PUSH AX; MOV AL,BL OUT DX,AL POP AX PUASE READ SHL AL,1 JNC EXIT SHR AH,1 JNC LOP2 JMP RTOL EXIT: MOV AX,4C00H;返回DOS窗口 INT 21H;-CODE ENDSEND START四、心得体会 这是第一次的微机原理硬件实验,其实主要目的是熟悉本实验的工作环境及系统。 归根究底微机原理实验就是汇编语言编程的实例应用。怎麽说呢,因为微机原理的软件试验和硬件实验几乎是同时开始的,所以在平时自然而然的也就注意这汇编语言的使用。在本次实验的准备过程中,我也发现了硬件实验与软件实验的些许相同之处,其实他们的主体都是使用汇编语言来编写的,而区别在于硬件实验自然而然地就是硬件的使用,从本次实验中我们就不难发现这一点,从端口读入信息从而实现对数码管的控制。总的来说,还是收获颇丰的,熟悉了实验系统,也熟悉了基本操作。 12班03号孙桐山王霄:这是第一次上微原硬件实验,第一次上课没有做什么准备,结果就要马上写出一个跑马灯汇编程序,加上微原理论课还没讲到汇编,这样就加大了难度,还好程序比较简单,在两个小时的编写中,终于按时完成了程序,完成了答辩验收。心里对汇编程序也有了一定的印象,也知道在以后的实验课前要做一定的预习,这样,在实验课上就能提高效率,尽早的完成实验。跑马灯的程序控制的关键在于读取拨码开关的状态,然后对相应的控制位进行判断,然后更加判断结果对速度、方向等进行置位,并在检测到有暂停时反复循环读取状态进行判断,直到暂停键取消,同时,任何时候判断到关闭程序的按键,则立即退出程序。整个程序实际上是在一种检测、执行、再检测、再执行的循环中反复。 第34页实验二8255A并行接口应用一、实验目的1. 掌握8255A的功能及方式0、1的实现。2. 熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。3. 了解七段数码管显示数字的原理。4. 掌握同时显示多位数字的技术。二、实验内容1. 查找八段数码管的显示规律及数码管的位选规律。2. 六位数码管静态显示。在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回DOS。3. 六位数码管动态显示。要求在数码管电路16位数码管上,动态显示字符串HELLO,当主机键盘按下任意键时结束。4. 扩展部分:完成扫描键盘(PC口)输入自己的学号,并在数码管上显示。三、实验过程1、八段数码管位选规律在方式0(输入/输出)下,以A口为输出口,B口为输出口, A口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段,B口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。测试结果如下图所示。PA5PA0PA3PA2PA7PA1PA6PA4由此,容易得出数字09以及字母AH的编码,如下表所示。字形01234567编码0EDH21H0F4H0F1H39H0D9H0DDH61H字形89ABCDEF编码0FDH0F9H7DH9DH0CCH0B5H0DCH5CH2、六位数码管静态显示电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码之后,6个数码管都将显示出相同的数字。如果要使6个数码管“同时”显示不同的数字,必须采用扫描显示的方法。通过选位寄存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管都能显示30次以上,则人眼看到的是几位数码管同时在显示。实验证明,在扫描显示过程中,每一位显示延迟1ms是最佳选择。本程序采用了每次扫描一排6个数码管,然后反复循环的方式。每个数码管间隔一定时间,也即显示延迟。通过在每一排扫描之后检测键盘状态,可以达到任意键退出的功能。程序框图如下。开始初始化8255A,计数N=0显示第N位数N = N+1N6?N = 0结束NONO键按下?YESYES程序源代码如下。DATA SEGMENT NUM DB 0F4H,21H,0EDH,0F1H,39H,0F9H ;学号DATA ENDS;-STACK SEGMENT STACK STACK DB 100 DUP(0)STACK ENDS;-CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTAT:MOV AL,10000000B MOV DX,0E803H;设置8255A的控制状态 OUT DX,AL MOV AX,DATA MOV DS,AX;数据段 MOV ES,AXLOP1:XOR SI,SI ;决定显示的数码管 MOV CX,06H;记录每次扫描,6位一次 MOV DX,0E800H MOV BL,00000001B;一次显示一个数码管LOP2:MOV AL,NUMSI;移动数字段 OUT DX,AL;显示字符 MOV AL,BL ;控制LED显示 INC DX OUT DX,AL DEC DX ROL BL,1;下一个LEA显示 INC SI CALL DELAY;延时视觉可见 CALL KEY;是否按键退出 LOOP LOP2;显示6哥LEA JMP LOP1;- DELAY PROC NEAR;两个循环控制延时 PUSH BX PUSH CX MOV BX,000FH;外部延时小LOP3: MOV CX,00H;内部延时0FFFFH次 LOOP $ DEC BX JNZ LOP3 POP CX POP BX RETDELAY ENDP;- KEY PROC NEAR ;检查按键状态 PUSH AX MOV AH,0BH; INT 21H OR AL,AL JZ GOON;没有按键,继续显示 MOV AH,4CH;按键退出 INT 21HGOON:POP AX RETKEY ENDP;- CODE ENDS END STAT代码具体分析如下:程序的实现思路是很明确而简单的,首先对8255A进行初始化,设置控制字,随即开始扫描数码管,这里使用了一个八位寄存器,赋值为一位为1,其余全零,依靠移位容易实现不同时刻亮不同的数码管,且每次只亮一个数码管,其余管熄灭。亮灯的管查找显示该位应该显示的数字,每个数码管亮灯之后暂留一定的时间,依靠DELAY子程序来实现。每次扫描六个管,然后反复,即可利用视觉暂留效应产生静态显示学号的功能。在显示了每一位数之后,调用KEY子程序检测计算机键盘的状态,如果有任意键按下,则视为程序退出指令,终止程序并返回DOS,如果没有键按下,则跳回继续循环扫描。3、六位数码管动态显示数码管动态显示“HELLO”字符串,相当于每次显示6位静态字符串,然后显示一定的时间间隔之后,显示另外6位静态字符串。其核心代码和静态显示并无差别,可将静态显示学号的代码作为一个子程序封装起来直接使用。需要增加的只是在一定的时间间隔内去移位读取“HELLO”字符串中需要显示的部分。实际实现时可以存储为码表的形式,移位往后读取即可。可以在移位读取前通过读取拨码开关的状态,获得控制信息,比如暂停、速度变化等。程序框图如下:开始初始化8255A显示状态NN = N+1N7 MOV DX,0E841H MOV AL,40H ;内部复位 OUT DX,AL DELAY 000FH ;等待反应 MOV AL,5EH ;定义命令字 OUT DX,AL ;发送命令字 MOV AL,37H ;RTS,ER,RxE,TxEN 置1 OUT DX,AL;- ;初始化 8253 MOV DX,0E823H MOV AL,16H ;计数器0,方式2 OUT DX,AL MOV AL,07H ;分频数值 MOV DX,0E820H ;用计数器0 OUT DX,AL ;写入计数器0,时钟开始 DELAY 000FH;- ;发送信息 MOV CX,8 ; XOR SI,SI ;AGN: DELAY 000FH MOV DX,0E841H IN AL,DX ;读入状态端口 TEST AL,38H ;字符是否错误 JNZ ERROR ;错误跳转 TEST AL,02H ;检查是否收到信息 JNZ RECE ;收到跳转 TEST AL,01H ;检查信息是否被发送 JZ AGN MOV DX,0E840H ;发送 MOV AL,INFOSI;当前字符 OUT DX,AL ;发送 JMP AGNRECE:MOV DX,0E840H IN AL,DX DELAY 000FH DISP INC SI ;结束接收时,没收到当前字符 ;再次发送 LOOP AGN ;循环结束,直到所有的字符都被发送接收ERROR:MOV AH,4CH INT 21H ;返回DOS MAIN ENDP ;-CODE ENDSEND MAIN代码的具体分析如下:首先对8251和8253进行初始化,8251内部复位后,由双机异步通信设置其控制字5EH和37H,再对8253设置工作方式,设置过程中加入了必要的延时以等待芯片响应。初始化完毕之后即可开始收发信息。程序中设置了发送信息的长度为8,即发送信息为我的学号。主循环中先读取状态字,判断是否出现了错误,如果有错则进行错误处理,这里只是简单地退出程序,无错误则测试接收寄存器是否满,若满则收到了字符,读取字符并输出在屏幕上,如果没有收到字符,则测试发送寄存器是否为空,如果为空则发送字符,然后跳回重新检查状态字,如果不为空则不能发送,直接跳回再次检查状态字,进入下一轮循环。由于芯片速度和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务考试题及答案
- 中级英语写作知到智慧树答案
- 汽车维修工中级模拟习题(附参考答案)
- 成人护理学皮肤、运动、神经系统测试题(附答案)
- 药品注册管理办法试题(附答案)
- 化工总控工职业技能鉴定模拟练习题含答案
- 中学化学习题研究知到智慧树答案
- 2025年外墙清洗与外墙玻璃清洁服务合同范本
- 2025年二手车出口业务代理合同样本
- 2025版智慧城市建设招标投标服务合同
- 奶茶店饮品制作手册
- 初中化学课程标准(2022年版)考试题库(含答案)
- 部编人教版六年级上册语文全册教学课件+单元复习课件
- 酒店消防安全管理制度(2022版)
- 人教部编七年级语文全册专项知识点梳理归纳字词、文言文、古诗词
- 国家基本公共卫生服务规范第三版测试
- 2024年保定交通建设投资集团有限公司招聘笔试冲刺题(带答案解析)
- 人教版六年级上册数学全册教案教学设计含教学反思
- 返工、返修作业指导书全套
- 《数学新课标》课件
- 2024年度企业预算表(制造企业)
评论
0/150
提交评论