东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院

上传人:飞*** 文档编号:37144365 上传时间:2018-04-07 格式:DOCX 页数:17 大小:6.70MB
返回 下载 相关 举报
东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院_第1页
第1页 / 共17页
东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院_第2页
第2页 / 共17页
东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院_第3页
第3页 / 共17页
东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院_第4页
第4页 / 共17页
东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院》由会员分享,可在线阅读,更多相关《东南大学 微机原理 微机系统与接口 实验七 八 实验报告 自动化学院(17页珍藏版)》请在金锄头文库上搜索。

1、微机实验及课程设计实验报告 学号 080111东南大学东南大学微机实验及课程设计微机实验及课程设计实验报告实验报告实验七实验七 8251 串行通信实验八实验八 数模与模数转换姓姓 名:名: 学学 号:号: 08011 专专 业:业: 自动化 实实 验验 室:室: 计算机硬件技术计算机硬件技术 实验时间:实验时间: 2013 年年 05 月月 14 日日 报告时间:报告时间: 2013 年年 05 月月 27 日日评定成绩:评定成绩: 审阅教师:审阅教师: 微机实验及课程设计实验报告 学号 080112实验七实验七82518251 串行通信串行通信一、实验目的与内容一、实验目的与内容实验目的实验

2、目的(1)了解串行通信的基本原理,认识串行收发过程; (2)掌握串行接口芯片 8251 的工作原理和编程方法。实验内容实验内容(1)按图 1 连接好电路 (8251 插在带锁通用插座 D 上),其中 8253 计数器用于产生 8251的发送和接收时钟,TXD 和 RXD 直接相连。 (2)编写测试程序,初始化 8251,实现连续发送固定字符,试用多种不同字符格式和字符。 (3)编程实现从键盘输入一个字符, 将其 ASCII 码加 1 后发送出去,再接收回来在屏幕上显示,实现自发自收。 二、基本实验原理二、基本实验原理1.1. 实验原理实验原理: :串行输入输出接口电路、串行收发过程原理;串行接

3、口芯片 8251 的工作原理和编程方法;2.2. 关键电路原理图:关键电路原理图:3.3. 主要程序流程图:主要程序流程图:微机实验及课程设计实验报告 学号 080113图 2 8251 通信查询程序流程图三三. . 方案实现与测试方案实现与测试实验步骤:实验步骤:(1)连好电缆,TPC 测试卡地址,运行点阵演示程序(正常后继续)(2)按图 8253 和 8251 连线, (假定 io 地址 c800h) ,TD/Debug 下单步 o c803 16(初始化方式字),CLK按键或连续脉冲输入后 i c800,检查计数变化。微机实验及课程设计实验报告 学号 080114(3)o c839 0(

4、三次,确保内部复位);o c839 40(内部复位);o c839 4E(格式字);o c839 27(允许其发送和接收);i c839 读状态,o c838 xx(发送任意数),I c838(接收数据),重复收发不同 8 位数过程,编程运行;重复发送字符 AEH 或 E5H,用示波器观察发送端 TxD 等(格式,波特率) ,改变参数,观察。(4)编程:查询收发读键+1 后发送;中断接收;中断收发(调中断程序先用按键模式) (TxRDY+)RxRDYIRQ。程序如下:data segment ioportequ 0b400h-0280h ;tpc 卡中设备的 io 地址io8253aequ i

5、oport+280h ;计数器 0 地址io8253bequ ioport+283h ; 8253 控制寄存器地址io8251aequ ioport+2b8h ;8251 数据口地址io8251bequ ioport+2b9h ;8251 控制口地址mes1 db you can play a key on the keybord!,0dh,0ah,24hmes2 dd mes1data endsstacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ds:data,ss:stacksmain proc f

6、arstart:mov ax,stacksmov ss,axmov ax,datamov ds,axmov dx,io8253b ;设置 8253 计数器 0 工作方式mov al,16hout dx,al微机实验及课程设计实验报告 学号 080115mov dx,io8253amov al,52 ;给 8253 计数器 0 送初值 out dx,almov dx,io8251b ;初始化 8251xor al,almov cx,03 ;向 8251 控制端口送 3 个 0delay: call out1loop delaymov al,40h ;向 8251 控制端口送 40H,使其复位ca

7、ll out1mov al,4eh ;设置为 1 个停止位,8 个数据位call out1 ;波特率因子为 16mov al,27h ;向 8251 送控制字允许其发送和接收 call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz waitimov ah,01 ;是,从键盘上读一字符int 21hcmp al,27 ;若为 ESC,结束jz exitmov dx,io8251ainc alout dx,al ;发送mov cx,0F00h s51: loop s

8、51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz next ;没有,等待mov dx,io8251a in al,dx ;准备好,接收inc al;如果需要处理,如加 1mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waiti微机实验及课程设计实验报告 学号 080116exit: mov ah,4ch ;退出int 21hmain endp out1 proc near ;向外发送一字节的子程序out dx,alpush cxmov cx,0F00h gg: loop gg ;延时po

9、p cxretout1 endpcode endsend start 实验现象:实验现象:由于芯片的问题,实验运行的结果是输入一个字符后输出的是空格。用 TD 进行单步调试后发现 AL 在执行 in al,dx 语句后始终变为 FF,且将 test al,01(02)语句跳过不执行。在执行 inc al 语句后 al 变为 00,所以不论输入什么字符输出总是空格。按键 esc 可以成功退出程序的运行。确保连线没错的情况下我们借了一块别人的芯片,程序运行正常,从键盘输入字符1,收到字符,并在屏幕上显示 3。因为发送时将 a 的 ASC码加 1,接收时又将 ASC码加1 接收,所以显示的字符为 3

10、。这是程序的问题。通过在 next 片段中去掉语句 inc al,这样就可以达到 ASCII 码加一得输出了,即可满足题目原来的意思。修改后重新运行的现象如下:不过在我们打算进一步修改程序的时候,貌似由于实验箱不稳定的原因,同样的程序刚才还正常的,却再次运行出错,只显示 FF,出现空格,由于时间限制,我们的实验就这样结束了。微机实验及课程设计实验报告 学号 080117四四 提高与创新研究提高与创新研究1.1.在实验中, 可以在源程序的基础上进行改动,即可以不通过键盘来输入字符,而通过对 8251 的初始化直接进行控制,从而实现连续发送字符,可以是固定字符,也可以是多个字符,在本实验中,我主要

11、通过利用整个程序的循环框架,在程序中通过加来输出所有ASCII 码,又由于本实验中的程序退出时通过按 ESC 来实现的,而 ESC 是有延时的,所以我改用通过按下任意键来实现退出,这样就不会导致频繁的死锁现象,具体改动如下所示:首先在程序的数据段加个数据临时变量,用来存放 al 中的数据,即 temp db 0,然后把waiti 改动为:waiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz waitimov ah,0bh int 21hcmp al,0ffh ;若为任意键,结束jz exitmov dx,io8251amov al,tempout

12、 dx,al ;发送Inc alMov temp,almov cx,0F00hs51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz next ;没有,等待mov dx,io8251ain al,dx ;准备好,接收inc al ;如果需要处理,如加1mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waiti微机实验及课程设计实验报告 学号 080118现象表述:将改动好的程序载入运行后,可以发现屏幕上会有从 1 开始的所有字符,如果不按任意键将会一直循环下去,直至按下任意

13、键结束,并且将 8251 的 19 脚接入示波器,可以观察到两种波形,一个为一条直线,另一条为跳动的波形,即发送一个字符就会出现一段跳动的波形,并且不同的波形所对应的波形宽度不尽相同,这种差异是由字符的不同所导致的。2.2. 分析一下,实验系统中握手信号如 CTS、RTS 等如何起作用的。RTS请求发送,是输出信号,低电平有效。用于通知 Modem,8251 要求发送。它由命令字的 D5 置“1”来使其有效。CTS允许传送,是输入信号,低电平有效。是 Modem 对 8251 的 RTS 信号的响应,当其有效时,8251 方可发送数据。实验中 RTS 接地,始终有效。当 8251 准备好发送时

14、,输出 RTS 信号,8253 收到信号后,若允许发送,则回答一个低电平信号作为 CTS 输入,于是握手成功,传送可以开始。五分析与总结五分析与总结从实验中我们可以明白用 8251 做简单的输入输出接口时,首先要计算 8253 的初值, 具体计算公式是: 8253 计数器初值=时钟频率/(波特率*波特率因子) 就一般情况而言,波特率因子取 16,在实验中,选择的时钟频率脉冲为 1MHz,波特 率选择为 1200B/s,则计数器初值为 52。 而对于收发程序既可以用查询方式,也可以用中断方式,而且不管是接收数据还是发 送数据,都要检查相应的线路状态是否空闲或者准备好。这样通过本实验的学习,认识到

15、 单步调试的重要性,增强了自己的错误检查能力和程序改进能力,以及对 BIOS 的命令调用 进行了复习,达到了对实验的原理深刻认识的效果。 通过实验,进一步了解了串行通信的原理以及通过串行方式发送和接收数据的过程。输出数据是以字符为单位首先送到数据发送保持寄存器中,再进入发送移位寄存器,这些过程都是并行方式传送的。在发送移位寄存器中,按照事先和接收端约定的字符传输格式,加上起始位,奇偶校验位和停止位,然后再以约定的波特率先低位后高位地发送出去。实验八实验八数模与模数转换数模与模数转换一、实验目的与内容一、实验目的与内容1.1.实验目的实验目的 1)了解数/模转换器的基本原理,掌握 DAC0832 芯片的使用方法; 2)了解模/数转换器的基本原理,掌握 ADC0809 芯片的使用方法。2.2. 基本实验内容和要求基本实验内容和要求 (1)DAC 实验电路原理如图 1,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的 Ua、Ub) 。进入 DE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号