8251串行通讯实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
郑州科技学院
《微机原理与接口技术》课程设计
题目8251串行通讯实验
学生姓名
专业班
目录
1 引言 (1)
2 设计方案与论证 (1)
2.1 设计内容 (1)
2.2 设计要求 (2)
2.3 设计框图 (2)
3 设计原理及功能 (2)
3.1 8251的基本性能 (2)
3.2 8251的内部结构及外部引脚 (2)
3.3 软件 (3)
3.3.1 流程图 (3)
3.3.2 主程序 (4)
4 单元电路的设计 (5)
4.1 电路图 (5)
4.2 电路说明 (5)
4.3 8251概述 (6)
4.4 8251的内部结构 (6)
5 系统调试与结果测试 (8)
5.1 调试 (8)
5.2 程序结果测试 (9)
6 总结 (10)
参考文献 (11)
附录1:总体电路原理图 (12)
附录2 程序 (13)
附录3:实验原器件清单 (15)
1 引言
通过对微机系统分析和具体设计,使学生加深对所学课程的理解,掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法,培养学生分析问题、解决问题的能力,培养学生对微型计算机应用系统的基本设计能力,提高学生的实践动手能力和创新能力。从《微型计算机原理》中,我懂得了微机设计的基本原理,学会了微机的基本知识和内容,知道了其中的基本操作。另外,我从《微型计算机原理与应用》中知道了在微机实验中如何应用的,并且学到了以前没有学到的知识。在微机原理及应用课程中学过了微机各个基本组成模块的原理和编程技术,在实验室现有的设备情况下,设计一个具有一定功能的应用系统,达到对知识的深入理解和融会贯通,培养动手能力、实践能力以及团队合作的精神。
2 设计方案与论证
2.1 设计内容
连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。
编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。
2.2 设计要求
8253计数器的计数初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,这计数器初值52.
2.3 设计框图
3 设计原理及功能
3.1 8251的基本性能
8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。有下列基本性能:
(1)通过编程,可以工作在同步方式,也可以工作在异步方式。(2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K。
(3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符。
(4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。
(5)具有奇偶、溢出和帧错误检测能力。
(6)全双工,双缓冲器发送和接收器。
3.2 8251的内部结构及外部引脚
8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,每个部分还有对外的引脚。8251共有28个外部引脚,每个引脚信号的输入输出方式不同。根据第一个实验的两个程序设计出8251串口自发自收实验的实验程序,可
参考双机通讯实验的两个程序的格式。对于串行传输的数据格式,本实验有如下规定:一个字有一个逻辑“1”起始位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为9600baut。
程序设计提示:可以用4000H-400AH十个单元作为需要发送数据的存贮单元,可以用3000H-300AH十个单元作为接收数据的存贮单元。
3.3 软件
3.3.1 流程图
3.3.2 主程序
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
xor al,al
mov cx,03 ;向8251控制端口送3个0
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 ;显示提示信息
mov ah,09
int 21h
waiti: mov dx,io8251b
in al,dx
test al,01 ;发送是否准备好
jz waiti
mov ah,01 ;是,从键盘上读一字符
int 21h
cmp al,27 ;若为ESC,结束
jz exit
mov dx,io8251a
inc al
out dx,al ;发送
mov cx,0F00h