实验七 串行通信
一.实验目的
(1)了解串行通讯的基本原理。
(2) 掌握串行接口芯片i8251A的工作原理和典型编程方法。
二.实验环境
1. 硬件环境
微型计算机(Intel x86系列CPU)一台,清华科教仪器厂TPC-2003A微机接口实验装置一台;扩充
i8251芯片一片;数字记忆示波器一台.
2. 软件环境
(1)Windows XP操作系统,编辑、汇编、链接和调试程序; (2)PC2003A集成开发环境软件一套及实验装置电子版资料
三.基本实验
1.基本实验内容和要求
(1) 按图7.1 连接好电路,(8251插在带锁通用插座D上), 其中8253计数器用于产生8251的发送和接
收时钟, TXD和RXD直接相连,用示波器观察串行发送传输过程 (注意: 实验装置未采用MC1488/14或ICL232 等长线收发器, 故有关RS232/422等电平标准及转换内容可自行参考相关资料) 。修改格式控制字,观察串行信号变化。
(2) 编程实现从键盘输入一个字符, 将其ASCII码加 1 后发送出去,再接收回来在屏幕上显示。实现自
发自收。
2.编程提示
图7.1 串行接口芯片8251收发电路
(1) 图7.1电路8251的控制口地址为2B9H,数据口地址为2B8H。
(3) 8253计数器的计数初值=时钟频率 /(波特率×波特率因子),这里的时钟频率接脉冲源
1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。 (3) 收发采用查询方式。参考流程图(见图7.2)
39
《微机实验及课程设计》实验指导书
3.参考程序1:
程序名:E8251.ASM
data segment
ioport equ 0d400h-0280h io8253a equ ioport+280h io8253b equ ioport+283h io8251a equ ioport+2b8h io8251b equ ioport+2b9h
mes1 db 'you can play a key on the keybord!',0dh,0ah,24h mes2 dd mes1 data ends
SSEG SEGMENT STACK DW 256 DUP(?) SSEG ENDS code segment assume cs:code,ds:data main PROC FAR start: mov ax,data mov ds,ax
mov dx,io8253b ;设置8253计数器0工作方式 mov al,16h out dx,al mov dx,io8253a
mov al,52 ;给8253计数器0送初值 out dx,al
mov dx,io8251b ;初始化8251
mov cx,03 ;向8251控制端口送3个0 xor al,al delay: call out1 loop delay
mov al,40h ;向8251控制端口送40H,使其复位 call out1
mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1
mov al,27h ;向8251送控制字允许其发送和接收 call out1
lds dx,mes2 ;显示提示信息
开 始初始化8253初始化8251显示提示从8251控制口读状态字NTxRDY为1吗?Y从键盘接收字符Y结 束是ESC吗?N将键入字符ASC码加1通过8251数据端口发送字符从8251控制端口读入状态字DxRDY为1吗?YN从8251数据口接收数据将字符显示在屏幕上图7.2 8251通信查询程序流程图 mov ah,09 int 21h waiti: mov dx,io8251b in al,dx
test al,01 ;发送是否准备好 jz waiti
40
《微机实验及课程设计》实验指导书
mov ah,01 ;是,从键盘上读一字符 cmp al,27 ;若为ESC,结束
int 21h jz exit mov dx,io8251a inc al
out dx,al ;发送 mov cx,0F00h s51: loop s51 ;延时 next: mov dx,io8251b in al,dx
test al,02 ;检查接收是否准备好 jz next ;没有,等待 in al,dx ;准备好,接收
;如果需要处理,如加1
mov dx,io8251a ; inc al
mov dl,al
mov ah,02 ;将接收到的字符显示在屏幕上 int 21h jmp waiti
exit: mov ah,4ch ;退出 int 21h main ENDP
out1 proc near ;向外发送一字节的子程序 out dx,al push cx
mov cx,0F00h
gg: loop gg ;延时 pop cx ret
out1 endp code ends end start
四. 选作与探索
1. 该自发自收程序采用了阻塞式查询方式,极易出现死锁,分析基本实验参考流程和程序,确定原因,
修改程序结构,并编程实现;
2. 分析一下,实验系统中握手信号如CTS,RTS,等如何起作用的;
3. 实验系统中采用输入输出最简单的程序方法,为提高效率,试将程序改成接收中断方式,编写程序并
调试通过;
4. 设计采用收发均为中断方式的通信程序,连续收发有关信息,编写程序并调试通过; (提示:需设计采
用收发缓冲区)
41
《微机实验及课程设计》实验指导书
五.实验预习与实验报告
1.实验前阅读基本实验指示书和装置介绍,掌握8251初始化和工作方法,编写基本程序。 2.实验报告说明基本原理和电路分析,以及实验结果和分析,说明使用、测试方法。 3. 选做实验方案及内容讨论。
六.参考资料
设备实验指示书 预备实验1: PCI设备查询和配置空间的读取 实验三 实验十四实验九
42
可编程定时器/计数器(8253)
串行通讯 中断
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务