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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机接口实验报告验证性实验.docx

1、微机接口实验报告验证性实验 实验一 可编程定时器计数器(8253)一、实验目的 掌握 8253 的基本工作原理和编程方法。 二、实验原理本实验采用8253A作为技术芯片。8253有三个独立的16位计数器,每个计数器都有六种不同的工作方式,均可由程序设置和改变。8253计数器波希早写入控制字和技术初值后才启动工作,所以在编写程序的时候应分为两步,先写入控制字,再写入计数初字。三、实验内容 1按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。 图5-

2、1实验现象:外无脉冲输入时,计数器值不变,屏幕也就不显示,当且仅当有脉冲输入,计数器计数值改变时才显示一次计数值,当输入N+1个脉冲后OUT变高电平。实验程序流程图:实验程序:DATA SEGMENT TISHI DB 0DH,0AH,IF PRINT,0DH,0AH,$ IOPORT EQU 0C400H-0280H IO8253 EQU IOPORT+283H IO8253A EQU IOPORT+280HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,0C403H MOV AL,

3、00010000B OUT DX,AL ;计数器0,方式0,二进制 MOV DX,0C400H MOV AL,N OUT DX,AL ;计数器赋值 MOV BL,N LOP:MOV DX,0C403H MOV AL,0 ;锁存 OUT DX,AL MOV DX,0C400H ;读计数器0 IN AL,DX AND AL,0FH CMP BL,AL ;判断计数值是否改变 JZ LOP2 MOV BL,AL ;改变将AL赋给BL CMP AL,9 ;判断是否大于9 JLE LOP1 ;小于等于9跳转LOP1,加30H变为ASCII码 ADD AL,7 ;大于9 加37H变为其ASCII码 LOP1

4、:ADD AL,30H MOV DL,AL MOV AH,02H ;显示 INT 21H MOV DL,0DH ;回车 MOV AH,02H INT 21H MOV DL,0AH ;换行 MOV AH,02H INT 21Hlop2:MOV DL,0FFH ;判断是否有键按下 MOV AH,6 INT 21H JZ LOP MOV AH,4CH INT 21HCODE ENDS END START2 按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。图5-2实验现象: 本实验是个分频器,运行程序,通过观察试验箱的L

5、ED逻辑笔交替闪亮,可发现由OUT1口输出的信号是被分频之后的脉冲信号。实验程序流程图:实验程序:A0 EQU 04C00h A1 EQU 04C01h A2 EQU 04C02h A3 EQU 04C03h;8253端口地址 N EQU 1000;计数初值 CODE SEGMENT ASSUME CS:CODESTART: MOV DX,A3 MOV AL,00110110B;计数器0控制字,方式3 OUT DX,AL MOV DX,A0 MOV AX,N OUT DX,AL;写计数初值低字节 MOV AL,AH OUT DX,AL;写计数初值高字节 MOV DX,A3 MOV AL,011

6、10110B;计数器1控制字,方式3 OUT DX,AL MOV DX,A1 MOV AX,N OUT DX,AL;写计数初值低字节 MOV AL,AH OUT DX,AL;写计数初值高字节 MOV AH,01H CMP AL,03H;CTR-C结束 JZ OUTER JMP LOUTER: MOV AX,4C00H INT 21H CODE ENDS END START实验中遇到问题及解决办法: 本次实验,第二个实验的基本原理比较简单,编译程序过程中基本没遇到大问题,但是在实验中发现在屏幕显示效果不够理想,具体为屏幕上重复的显示一个数字当输入令一个脉冲时屏幕上全屏显示令一个数字。所以我在程序

7、上更改了下,具体是首先将初始值赋值给BL,再读计数器0值判断是否和BL相等,如相等再重新读计数器值直到计数器值和BL值不相等(也就是输入一个脉冲时)再显示计数器值,同时将AL值赋值给BL。如此就能解决在屏幕上全屏显示计数器值的缺陷。实验也圆满完成。实验二 交通灯控制实验一.实验目的 通过并行接口 8255 实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 二.实验内容 如图 5-3,L7、L6、L5 作为南北路口的交通灯与 PC7、PC6、PC5 相连,L2、L1、L0 作为东西路口的交通灯与 PC2、PC1、PC0 相连。编程使六个灯按交通灯变化规律燃灭。图5-3实验程序流程图:实验

8、现象:通过对8255并行接口输入不同的控制指令来实现交通灯的相互转换,具体现象如下所示(1)南北路口的绿灯、东西路口的红灯同时亮 3 秒左右。 (2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3)南北路口的红灯、东西路口的绿灯同时亮 3 秒左右。 (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5)转(1)重复。 实验程序: A0 EQU 04C08h A1 EQU 04C09h A2 EQU 04C0Ah A3 EQU 04C0Bh;8255端口地址 D1 EQU 0005h D2 EQU 0FFFFh;调整闪烁时间 CODE SEGMENT ASSUME CS

9、:CODE L: MOV DX,A3 MOV AL,10000000B;控制字,C口方式0 OUT DX,AL MOV DX,A2 MOV AL,00000000B;清零,灯全灭 OUT DX,AL L1: MOV AL,00101000B;南北路口绿灯亮,东西路口红灯亮 OUT DX,AL CALL DELLAY1;延时3秒左右 MOV CX,D1 L2: MOV AL,01001000B;南北路口黄灯亮,东西路口红灯亮 OUT DX,AL CALL DELLAY2 MOV AL,00001000B;南北路口黄灯灭,东西路口红灯亮 OUT DX,AL CALL DELLAY2 LOOP L2

10、;形成闪烁 L3: MOV AL,10000001B;南北路口红灯亮,东西路口绿灯亮 OUT DX,AL CALL DELLAY1 L4: MOV AL,10000010B;南北路口红灯亮,东西路口黄灯亮 OUT DX,AL CALL DELLAY2 MOV AL,10000000B;南北路口红灯亮,东西路口黄灯灭 OUT DX,AL CALL DELLAY2 LOOP L4;形成闪烁 MOV AH,01H CMP AL,03H;CTR-C结束 JZ OUTER JMP L1OUTER: MOV AX,4C00H INT 21H DELLAY1 PROC PUSH CX PUSH AX MOV

11、 CX,0FFFFh T10: LOOP $ MOV CX,00FFh T11: MOV AX,00FFh T12: DEC AX JNZ T12 LOOP T11 POP AX POP CX RETDELLAY1 ENDP DELLAY2 PROC PUSH AX MOV AX,D2 T21: DEC AX JNZ T21 POP AX RETDELLAY2 ENDP CODE ENDSEND L实验中遇到问题及解决办法:本实验在原理上不难,但在编译过程中需要头脑清醒,运行程序时过,程序经常出现死循环,主要是因为在写程序时过分相信自己的记忆力了,没有写注释,以后要注意!而且在实现黄灯闪亮的时

12、候遇到困难,在程序设计时,我是以为时钟频率是1.8432MHZ所以我以两重循环,内层0FFFFH,外层3CH次刚好能使延时达到3秒,但是实验证明,时钟频率不是1.8432MHZ所以我增加了外层循环次数,使得长延时基本上在三秒左右,段延时在0.3秒左右,经过多次计算和调试终于通过调用合适的短延时来实现黄灯的闪亮,并实现了最后的实验效果。实验三 竞赛抢答器一、实验目的 .了解抢微机化竞赛答器的基本原理。.进一步学习使用并行接口。二、实验内容 图 5-4 为竞赛抢答器(模拟)的原理图,逻辑开关K0K7代表竞赛抢答按钮07号,当某个逻辑电平开关置“”时,相当某组抢答按钮按下。在七段数码管上将其组号(0

13、7)显示出来,并使喇叭响一下。从键盘上按空格键开始下一轮抢答,按其它键程序退出。 图5-4实验程序流程图:实验现象:设置 8255 为口输入、口输出,读取口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号,从键盘上按空格键开始下一轮抢答,按其它键程序退出。运行程序,当随机按下电路板上07的数字时,与之相对应的LED会发亮并且微机喇叭会响一下,当想进行下一轮抢答时,必须按空格键。实验程序:A0 EQU 04C00hA1 EQU 04C01hA2 EQU 04C02h A3 EQU 04C03h;8255端口地址 DATA SEGMENTLIST DB 3FH,06H,5BH

14、,4FH,66H,6DH,7DH,07H;显示表数据DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA L:MOV DX,A3 MOV AL,10001001B;控制字,A口输出,C口输入 OUT DX,AL MOV DX,A2 IN AL,DX;读C口 MOV BX,OFFSET LIST MOV CX,0 L2:CMP AL,CX;C口输入是否为零 JZ L2 L3: PUSH AX SHR AL,1 INC CX CMP AL,0 JNZ L3;求出组号,存入CL POP AX L4:DEC CX ADD BX,CX MOV AL,BX;查出显示段码

15、MOV DX,A0 OUT DX,AL CALL DELLAY1 MOV DL,7;响铃功能 MOV AX,0200H INT 21H MOV AH,01H CMP AL, ;是否为空格 INT 21H JNZ OUTER;退出 JZ L5 L5:MOV AL,11111111B MOV DX,A0 OUT DX,AL;清除显示 CALL DELLAY1 JMP L;重新开始 OUTER:MOV AX,4C00H INT 21H CODE ENDS END LDELLAY1 PROC PUSH CX PUSH AX MOV CX,0FFFFh T11:MOV AX,0FFFFh T12:DEC

16、 AX JNZ T12 LOOP T11 POP AX POP CX RETDELLAY1 ENDP实验中遇到问题及解决办法:本实验从原理上讲跟上以实验基本相同,在区分组数的时候遇到了一些问题,最初我开始设置的CX为8,从C口输入的数据同8比较,后来发现设置成0就简单了很多。实验四 PC机串行通讯实验一、实验目的 1、进一步了解串行通信的基本原理。 2、掌握串行接口芯片 8250 的工作原理和编程方法。 3、熟悉 PC 机串行口的基本连接方法。二、实验内容 1、PC 机 RS-232 串口自发自收。 按照PC机串口自发自收的连接方法连线。编写PC机自发自收串行通信程序,要求:从键盘输入一个字符

17、,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。2、两台 PC 机间 RS-232 串口通信。 按照PC机RS-232 串口直接互连的方法连接两台PC机。编写PC机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。 实验现象:单机通信时,运行程序,当键盘输入一个字符时,比如按“A”,屏幕上显示“AA?”,实现自发自收功能。双机通信时,运行程序,由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。实验程序:1.单机通信C

18、ODE SEGMENTASSUME CS:CODESTART: MOV AL,80H MOV DX,3FBH OUT DX,AL MOV AL,0CH MOV DX,3F8H OUT DX,AL MOV AL,00H MOV DX,3F9H OUT DX,AL MOV AL,0AH MOV DX,3FBH OUT DX,AL MOV AL,00H MOV DX,3FCH OUT DX,AL MOV AL,0 MOV DX,3F9H OUT DX,AL WAIT_FOR: MOV DX,3FDH IN AL,DX TEST AL,00011110B JNZ ERROR TEST AL,00000

19、001B JNZ RECEIVE TEST AL,00100000B JZ WAIT_FOR MOV AH,1 INT 21H MOV DX,3F8H OUT DX,AL JMP WAIT_FOR RECEIVE: MOV DX,3F8H IN AL,DX AND AL,01111111B CMP AL,03H JNZ CHAR MOV AX,4C00HCHAR: PUSH AX MOV DL,AL MOV AH,2 INT 21H POP AX JMP WAIT_FORERROR: MOV DX,3FDH IN AL,DX MOV DL,? MOV AH,02H JMP WAIT_FORCO

20、DE ENDS END START双机通信:A8 EQU 2F8hA9 EQU 2F9hAA EQU 2FAhAB EQU 2FBhAC EQU 2FChAD EQU 2FDhAE EQU 2FEh;发送8251端口地址,COM2 BODEV EQU 0030H;除数寄存器初值(1.8432Mhz)CODE SEGMENT ASSUME CS:CODESTART:;发送8251初始化 MOV AL,80h;置DLAB=1 MOV DX,AB OUT DX,AL MOV DX,A8 MOV AX,BODEV OUT DX,AL;写除数寄存器低字节 INC DX MOV AL,AH OUT DX,

21、AL;写除数寄村器高字节 MOV AL,0Ah MOV DX,AB OUT DX,AL;写线路控制寄存器,7位数据,1位停止,奇校验 MOV AL,03h MOV DX,AC OUT DX,AL;写MODEM控制寄存器 MOV AL,0 MOV DX,A9 OUT DX,AL;写中断允许寄存器,屏蔽全部中断 WAIT1:MOV DX,AD IN AL,DX TEST AL,00100000B;发送寄存器为空 JZ WAIT1 MOV AH,01h INT 21H MOV DX,A8 OUT DX,AL JMP WAIT1 CODE ENDS END START实验中遇到问题及解决办法:在本次实

22、验过程中,首先调试的是串口通信,串口通信相对简单,书上都以个基本一样的例题,只是将MODEM控制寄存器自检改成非自检就可以实现功能了。在是实现双机通信时,本来我是打算可以两台机器同时发送和接受,但是如果甲机发送数据乙机的按个键才能接受,应为他开始程序奇偶,一值呆在,读键盘那步骤,后来一想,放弃了,直接以台机器发送,一台机器接受就能满足实验要求了。所以我分开编写程序,接受的机器只管接受,发送的机器只管发送,按照这种思想,实验要求所要求的功能就实现了。实验感想: 本次实验是一次硬件、软件联合在一起的综合性实验,对我们更透彻地掌握书本上的内容有很大的帮助,实验用的8253、8255、8250等芯片都是在通信领域中最基本的功能芯片,透彻掌握这些芯片的原理和使用方法对我们将来的学习帮助不言而喻,特别是在自己编译程序的过程中,对自己的编译水平会有重新的把握和认识,还有在自己连接电路的过程中,对电路的构造也会有更深的认识。在自己一遍遍调试过程中,锻炼了我们发现问题、解决问题的能力。

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

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