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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、北邮微机原理硬件实验报告完整版微机原理硬件实验I/O地址译码&简单并行接口班级:姓名:学号:一 实验目的实验一:掌握I/O地址译码电路的工作原理。实验二:掌握简单并行接口的工作原理及使用方法。 二、实验原理和内容 实验一:1、实验电路如图4-1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H287H,Y1:288H28FH, 当CPU执行I/O指令且地址在280H2BFH范围内,译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令

2、MOV DX,2A0H OUT DX,AL(或IN AL,DX) Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX) Y5输出一个负脉冲。 图4-1-1 利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。 2、接线: Y4/IO地址 接 CLK/D触发器 Y5/IO地址 接 CD/D触发器 D/D触发器 接 SD/D角发器 接 +5V Q/D触发器 接 L7(LED灯)或 逻辑笔实验二:1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273

3、为八D触发器,8个D输入端分别接数据总线D0D7,8个Q输出端接LED显示电路L0L7。 2、编程从键盘输入一个字符或数字,将其ASC码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 图4-2-13、接线: 按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门) 三 硬件接线图及软件程序流程图1硬件接线图实验一:实验二:2软件程序流程图实验一: 实验二:四 源程序实验一:DATA SEGMENTDATA ENDSSTACK SEGMENT STACK STACK DB 100H DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CO

4、DE,DS:DATA,SS:STACK;延时子程序DELAY1 PROC NEAR MOV BX,500H PUSH CXLOOP2: MOV CX,0FFFHWAIT1: LOOP WAIT1 DEC BX JNZ LOOP2 POP CX RETDELAY1 ENDP;L7闪烁START: MOV CX,0FFFFHLOOP1: MOV DX,2A0H ;灯亮 OUT DX,AL CALL DELAY1 MOV DX,2A8H ;灯灭 OUT DX,AL CALL DELAY1 LOOP LOOP1 ;循环闪烁CODE ENDSEND START实验二:DATA SEGMENTDATA E

5、NDSSTACK SEGMENT STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AH,1 ;键盘输入 INT 21H CMP AL,27 ;判断是否为ESC键 JZ EXIT MOV DX,2A8H OUT DX,AL ;输出 JMP START;返回DOSEXIT: MOV DX,2A8H MOV AL,0 OUT DX,AL ;所有灯灭 MOV AX,4C00H INT 21HCODE ENDS END START五 实验结果实验一:L7闪烁实验二:从键盘输

6、入字符或数字,若不是Esc键,则二极管显示其ASCII码情况,若按下ESC,则返回dos,且各LED灯灭。六:实验总结1主要问题是对题目中所给的硬件接线图不是很理解,如第二个实验中或门的作用。向老师请教后明白了硬件接线图的原理,做实验就容易许多。2在第一个实验中起先对AL进行了赋值,后来发现是没必要的,不对AL赋值对产生负脉冲无影响,后来删掉了相应的赋值语句,精简了代码。七 实验收获与心得体会这是第一次接触微原硬件实验,实验板比小学期单片机实验更丰富,但也会导致刚开始的时候不知道该把线接在哪。在明白了硬件接法,将自己的代码反映在硬件上时,觉得非常有趣。之前一直以为微原实验不如C+等高级语言编程

7、有趣,现在看来丝毫不逊色。且通过自己动手实验,使我对理论课所学知识有了更好的理解。期待通过这几次微原实验能让我收获更多知识。微机原理硬件实验可编程并行接口8255&七段数码管&键盘显示控制实验班级:姓名:学号:一 实验目的实验三:通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。实验四:掌握数码管显示数字的原理。实验五:掌握8255控制键盘及显示电路的基本功能及编程方法。 掌握一般键盘和显示电路的工作原理。 二 实验原理和内容实验三:1、实验电路见硬件连接图,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。 2、编程从8255C口输入数据,再从A口输

8、出。 实验四:静态显示:按下图连接好电路,将8255的A口PA0PA7分别与七段数码管的段码驱动输入端adp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。实验五:编程:使得在小键盘上每按一个健,4位数码管上显示出相应字符。三 硬件接线图及软件程序流程图1硬件接线图实验三:实验四:2软件程序流程图实验三: (引用讲义上已给出的图)实验四:(引用讲义上已给出的图)实验五:四 源程序实验三DATA SEGMENTDATA ENDSSTACK SEGMENT STACK STACK DB 100 DUP(?)STACK ENDSCOD

9、E SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV DX,28BH ;8255初始化,10001001,C口输入,A口输出 MOV AL,89H OUT DX,ALLOOP1: MOV DX,28AH ;C口输入 IN AL,DX MOV DX,288H ;A口输出 OUT DX,AL MOV AH,01H INT 16H JNZ EXIT ;ZF=0说明有按键输入,故退出 JMP LOOP1EXIT: MOV AX,4C00H INT 21HCODE ENDS END START实验四DATA S

10、EGMENTDATA ENDSSTACK SEGMENT STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV DX,28BH ;8255控制寄存器端口地址28BH MOV AL,80H ;工作方式为0 OUT DX,AL ;初始化8255 DIGITAL:MOV DX,28AH ;熄灭数码管 MOV AL,00H OUT DX,AL MOV DX,288H ;A口显示5 MOV AL,6DH OUT DX,AL MOV DX

11、,28AH ;C口00000001(位码) MOV AL,01H OUT DX,AL MOV DX,28AH ;熄灭数码管 MOV AL,00H OUT DX,AL MOV DX,288H ;A口显示2 MOV AL,5BH OUT DX,AL MOV DX,28AH ;C口00000010(位码) MOV AL,02H OUT DX,AL MOV DX,28AH ;熄灭数码管 MOV AL,00H OUT DX,AL MOV DX,288H ;A口显示6 MOV AL,7DH OUT DX,AL MOV DX,28AH MOV AL,04H ;C口00000100(位码) OUT DX,AL

12、 MOV DX,28AH ;熄灭数码管 MOV AL,00H OUT DX,AL MOV DX,288H ;A口显示0 MOV AL,3FH OUT DX,AL MOV DX,28AH MOV AL,08H ;C口00001000(位码) OUT DX,AL MOV DX,28AH ;熄灭数码管 MOV AL,00H OUT DX,AL MOV AH,01H INT 16H JNZ EXIT ;ZF=0说明有按键输入,故退出 JMP DIGITALEXIT: MOV AX,4C00H INT 21HCODE ENDS END START 实验五DATA SEGMENTTABLE DB 3FH,

13、06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;数码管显示 0123456789ABCDEFNUM DB 70H,0B0H,0D0H,0E0H ;用于扫描键盘 70H=01110000,0B0H=10110000,0D0H=11010000,0E0H=11100000DATA ENDSSTACK SEGMENT STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK;延时子程序DELAY PROC NEAR PUSH

14、CX MOV CX,100H WAIT1: LOOP WAIT1 POP CX RETDELAY ENDP;获取键盘的输入数字的子程序,通过BX寄存器传递KEY PROC NEAR PUSH AX ;保护现场 PUSH CX PUSH DX MOV CX,00H ;从第一行开始扫描CHECK: MOV DX,28AH ;C口地址给DX MOV BX,OFFSET NUM ADD BX,CX MOV AL,BX OUT DX,AL;防抖 IN AL,DX ;判断是否有键盘按下 MOV AH,AL CALL DELAY IN AL,DX CMP AL,AH JNZ CHECK ;不相等说明为抖动,

15、重新检测;判断按下的列 AND AL,0FH CMP AL,0FH JZ NEXT ;这一行的所有列都没有按下的则跳到下一行扫描 CMP AL,0EH JZ NEXT1 CMP AL,0DH JZ NEXT2 CMP AL,0BH JZ NEXT3 MOV BX,00H JMP GOTNEXT: INC CX ;修改变量扫描下一行 CMP CX,04H JNZ JUMP1 MOV CX,00HJUMP1: JMP CHECKNEXT1: MOV BX,03H JMP GOTNEXT2: MOV BX,02H JMP GOTNEXT3: MOV BX,01H;计算按下键盘的数值GOT: MOV

16、AL,CL MOV DL,04H MUL DL ADD BL,AL ;此时BX中所存即为对应的偏移量 POP DX ;恢复现场 POP CX POP AX RET KEY ENDP;主程序START: MOV AX,DATA MOV DS,AX MOV DX,28BH ;8255初始化 MOV AL,81H ;C口输入 OUT DX,AL MOV DX,289H ;B口位选数码管 MOV AL,01H OUT DX,AL;扫描键盘LOOP1: CALL KEY;数码管显示字符 MOV AX,BX MOV BX,OFFSET TABLE ADD BX,AX ;此时BX即为对应的地址 MOV AL

17、,BX CMP BX,OFFSET TABLE ;按下的为0则退出 JZ EXIT MOV DX,288H ;A口输出 OUT DX,AL MOV DX,28AH ;C口输入 IN AL,DX;检测键盘是否弹起 MOV AH,ALLOOP2: CALL DELAY IN AL,DX CMP AL,AH JZ LOOP2 JMP LOOP1;返回DOS EXIT: MOV AL,00H MOV DX,288H ;A口输出 OUT DX,AL MOV AX,4C00H INT 21H CODE ENDS END START五 实验结果实验三:拨动K0K7,对应的L0L7亮,有按键输入则退出。实验四

18、:数码管显示学号的后四位:0625。有按键输入则退出。实验五:按小键盘1F则数码管显示对应的字符,按下0则结束。六:实验总结本次实验课做了三个实验,每个实验也都变换了端口重新操作以加深理解,觉得比第一次做的更熟练。本次实验遇到问题的主要是实验五,键盘扫描及防抖程序较为复杂,需要考虑很多。在添加按小键盘0则退出时起初代码位置不对导致有逻辑错误,修改了两次才正确。七 实验收获与心得体会这次实验觉得和小学期的单片机实验有很多的想通之处。小学期使用的键盘扫描方法就是行扫描法,所以这次对扫描方法的理解更轻松一些。通过这次实验,我对8255的应用有了更深的了解。这次实验我更加注意了代码优化,每个实验都添加

19、了退出的代码,觉得更可靠。实验三和四相对来说更容易,几乎是静态的,而实验五由于一直随着按键而变化所以需要考虑多种情况和变化,增加了难度,这也提高了我编程时考虑多种情况的意识,相信对我以后的编程也有很多的好处。微机原理硬件实验可编程定时器/计数器(8253/8254)班级:姓名:学号:一、 实验目的学习掌握8253用作定时器的编程原理; 二、 实验原理和内容1完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。2扩展部分:利用小键盘实现弹琴功能,并显示弹奏的乐谱。 注意:8253输入频率应小于2MHz。三 硬件接线图及软件程序流程图1 硬件接线图2 软件程序流程图四 源程序DAT

20、A SEGMENTFENPIN DW 0001H,3906,3472,3125,2932,2604,2344,2083,1953;分频比1(do)-i(do)DIGITAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;数码管MUSIC DB 0,1,2,3,1,1,2,3,1,0,3,4,5,0,3,4,5,0,5,6,5,4,3,1,0,5,6,5,4,3,1,0,1,5,1,0,1,5,1,0 ;存放播放的乐曲音符0是空拍NUM DB 00H,070H,0B0H,0D0H,0E0H ;检测键盘输入DATA ENDSSTACK SEGMENT STACK S

21、TACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK;延时子程序DELAY PROC NEAR PUSH CX MOV CX,100H WAIT0: LOOP WAIT0 POP CX RETDELAY ENDP;延时子程序2DELAY1 PROC NEAR PUSH CX MOV CX,0FFFFH WAIT1: LOOP WAIT1 POP CX RETDELAY1 ENDP;获取键盘输入值的子程序KEY PROC NEAR PUSH AX ;保护现场 PUSH CX PUSH DX MOV CX,

22、01HCHECK: MOV DX,28AH ;C口地址给DX MOV BX,OFFSET NUM ADD BX,CX MOV AL,BX OUT DX,AL;防抖 IN AL,DX ;判断是否有键盘按下 MOV AH,AL CALL DELAY IN AL,DX CMP AL,AH JNZ CHECK ;不相等说明为抖动,重新检测;判断按下的列 AND AL,0FH CMP AL,0FH JZ NEXT CMP AL,0EH JZ NEXT1 CMP AL,0DH JZ NEXT2 CMP AL,0BH JZ NEXT3 MOV BX,01H JMP GOTNEXT: INC CX ;修改变量

23、扫描下一行 CMP CX,05H JNZ JUMP1 MOV CX,01HJUMP1: JMP CHECKNEXT1: MOV BX,04H JMP GOTNEXT2: MOV BX,03H JMP GOTNEXT3: MOV BX,02H;计算按下键盘的数值GOT: SUB CX,01H MOV AL,CL MOV DL,04H MUL DL ADD BL,AL SUB BL,01H ;此时BX中所存即为对应的偏移量 POP DX ;恢复现场 POP CX POP AX RET KEY ENDP;主程序START: MOV AX,DATA MOV DS,AX ;8253初始化 MOV DX,

24、283H MOV AL,36H OUT DX,AL ;8255初始化 MOV DX,28BH MOV AL,81H ;C口输入 OUT DX,AL MOV DX,289H ;B口位选数码管 MOV AL,01H OUT DX,AL;扫描键盘LOOP1: CALL KEY CMP BX,0 ;按0播放音乐 JZ PLAY0 CMP BX,9 ;按9退出 JZ EXIT;按18发出对应音 MOV CX,BX MOV BX,OFFSET DIGITAL ;数码管显示音符 ADD BX,CX MOV AL,BX MOV DX,288H ;A口输出 OUT DX,AL ;播放该音符 MOV BX,OFF

25、SET FENPIN MOV AX,CX ADD AX,AX ADD BX,AX ;计数,先低八位后高八位 MOV AX,BX MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL CALL DELAY1 CALL DELAY1 MOV DX,28AH ;C口输入 IN AL,DX;检测键盘是否弹起 MOV AH,ALLOOP2: CALL DELAY IN AL,DX CMP AL,AH JZ LOOP2 ;初始化8253,停止播放音乐 MOV AX,0H MOV DX,283H MOV AL,36H OUT DX,AL JMP LOOP1 ;播放音乐PLAY0

26、: MOV CX,01HPLAY: PUSH CX ;读取音符,存于CX中 MOV BX,OFFSET MUSIC ADD BX,CX MOV AL,BX MOV CL,AL MOV CH,0H ;数码管显示 MOV BX,OFFSET DIGITAL ADD BX,CX MOV AL,BX MOV DX,288H OUT DX,AL ;播放该乐符 MOV BX,OFFSET FENPIN MOV AX,CX ADD AX,AX ADD BX,AX ;计数,先低八位后高八位 MOV AX,BX MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL POP CX ;

27、延时,持续播放 MOV AX,90HLOOP3: CALL DELAY1 DEC AX JNZ LOOP3 ;乐曲未结束时,CX加1 INC CX CMP CX,28H;共40个音符 JNZ JUM JMP LOOP1JUM: JMP PLAYEXIT: MOV AL,0 MOV DX,288H OUT DX,AL MOV AX,4C00H INT 21H CODE ENDS END START 五 实验结果按小键盘的0时,播放预置音乐两只老虎,同时数码管显示相应的音符;按小键盘的18时,分别发出do,re,mi,fa,so,la,si,高音do,数码管显示按下的音符;按小键盘的9时,熄灭数码管,回到dos六:实验总结由于小学期单片机实验做的就是电子琴,原理上比较熟悉,所以这次实验比较容易。在调试时,主要是调整延时以使音乐播放更准确。延时程序是保证本次实验成功的关键。在弹奏时,发声时长即为按键时长,按键弹起时停止播放音乐(但为保证按键很短时发声不至于太急促,仍在此处加入了一点延时)。七 实验收获与心得体会这次实验的主要收获是熟悉了可编程定时器/计数器的使用。可以利用8253/8254工作于方式三来产生相应频率的方波,送给喇叭后发出相应的音。这次实验也使我对查表调用的使用更得

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1