单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯Word文档格式.docx
- 文档编号:17825839
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:14
- 大小:228.65KB
单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯Word文档格式.docx
《单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
2.18251基本功能
8251A是一种可编程的通用同步/异步接收发送器,通常作为串行通信接口使用,被广泛应用Intel80X86为CPU的微型计算机中。
其基本功能为:
(1)它是全双工、双缓冲器的接收/发送器。
(2)可工作在同步或异步工作方式。
同步方式工作时,波特率在0~64K范围内;
异步方式时,波特率在0~9.2K范围内。
(3)同步方式时,字符可选择为5~8bit,可加奇偶校验位,可自动检测同步字符。
(4)异步方式时,字符可选择为5~8bit,可加奇偶校验位,自动为每个字符添加一个启动位,并允许通过编程选择1、2.5、或2位停止位。
2.28251内部结构
本设计采用异步方式,则由发送控制电路在其首尾加上起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出。
图2.18251内部结构
2.38251编程字
(1)工作方式控制字
D1D0确定是工作于同步方式还是异步方式。
D1D0=00为同步方式,当方式设为同步时,方式控制字后必须装入同步字符,并由同一个方式控制字规定装入单同步字符还是双同步字符;
D1D0≠00为异步方式,且有3种组合来选择输入的时钟频率与波特率之间的系数。
D3D2确定每个字符的数据位(不包括奇偶校验位)。
D5D4确定是否校验和奇偶校验的性质。
D7D6含义因同步方式或异步方式而异。
异步方式(D1D0≠00)时用来确定停止位个数。
同步方式时D6用来确定是内同步(SYNDET脚为输出)还是外同步(SYNDET为输入),D7用来确定同步字符个数。
外同步方式时,同步字符只用于发送,接收时不作用。
例:
某异步通讯,数据位为8位,1位起始位、2位停止位、奇校验、波特率系数为16。
则有:
11011110B=0DEH
MOVDX,309H;
8251A命令口
MOVAL,0DEH
OUTDX,AL
(2)工作命令控制字
D0设置为1允许8251A开始发送操作。
只有命令字的D0=1,引脚TXDRY(通知CPU:
发送器准备好)才可能有效(为1)。
可作为发送中断屏蔽位。
D1设置为1强制引脚DTR有效,表示数据终端准备好,通知调制解调器:
8251A已准备好。
D2设置为1允许8251A开始接收数据。
只有命令字D2=1,RXRDY才有可能为1。
允许接收时必须使错误标志复位(见D4)。
在同步方式时还必须指定进入同步搜索操作(见D7)。
D3设置为1迫使TXD端发送低电平,以此作断点字符。
D4设置为1则对状态字中的所有操作出错标志(FE,OE,PE)复位。
D5设置为1强制RTS引脚(请求发送)有效,向调制解调器提出发送请求。
D6设置为1强制8251A内部复位,使之回到准备接收方式字的状态。
D7只用于同步方式。
为使8251A进入同步搜索操作,将输入的信息和同步字符比较。
(3)状态字
状态字的作用是8251A向CPU送去数据传送操作中的各种状态信息。
方式字,同步字符,命令字都是CPU写入8251A的,以控制8251A的工作方式和操作。
那么,8251A在发送,接收数据的过程中实际工作状态如何呢?
如一个字符接收全了没有?
接收的数据有没有错误?
有什么类型的错误?
发送缓冲器空了没有?
发送移位寄存器空了没有?
等等,这些在发送/接收数据操作过程中的状态信息随时寄存在8251A内部的状态冲寄存器内,CPU可以通过I/O读操作(=1)把状态字读入加以分析,控制CPU和8251A之间的数据交换。
状态位D0(TXRDY)——发送器准备好。
状态位D1(RXRDY)——接收准备好。
状态位D2(TxE)——发送器空。
状态位D3(PE)——奇偶校验错标志
状态位D4(OE)——溢出(覆盖)错误标志。
状态位D5(FE)——帧格式错误标志
状态位D6(SYNDET)——同步检测。
状态位D7(DSR)——数据装置准备好。
3设计过程
3.1电路设计
本次设计利用实验机内的8253芯片的分频作为8251的收发时钟频率。
利用实验机内小键盘,每按动一次任一数字键,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。
图3.18251与CPU的连接
3.2硬件设计
采用最简单的发送线TxD、接收线RxD和地线GND三根线连接就能进行通信。
采用8251A作为接口的主芯片再配置少量附加电路,如波特率发生器、RS—232C与TTL电平转换电路、地址译码电路等就可构成一个串行通信接口。
3.3软件设计
(1)程序流程图
图3.2主程序流程图图3.3中断服务程序流程图
(2)程序清单
CODESEGMENT;
PC8251.ASM,8251TXD-->
PCRXD
ASSUMECS:
CODE
SECOPORTEQU03F9H
SEDAPORTEQU03F8H
PAEQU0FF21H;
字位口
PBEQU0FF22H;
字形口
PCEQU0FF23H;
键入口
ORG1A00H
START:
JMPSTART0
BUFDB
KZDB
lcntkzdw
;
lkeydb
zpdw
data1:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH
START0:
callfor8251
movzp,offsetbuf
CALLBUF1;
DISP:
8251-1
redikey:
calldispkey
cmpKZ,10h
jcwattxd
jmpfunckey
WATTXD:
MOVDX,SECOPORT
INAL,DX
TESTAL,01H
JZWATTXD
MOVAL,KZ
MOVDX,SEDAPORT
OUTDX,AL
movbx,zp
mov[bx],al
cmpbx,offsetbuf+5
jzzp1
incbx
movzp,bx
jmpredikey
zp1:
movzp,offsetbuf
jmpredikey
funckey:
CMPKZ,1FH
JNZREDIKEY
callbuf2;
good
monit:
CALLDISP
JMPmonit
dispkey:
calldisp
callkey
XD:
MOVBX,lcntkz
MOVCX,[BX]
MOVAH,AL
CMPAL,CH
JEXD1
MOVCL,88H
XD1:
DECCL
CMPCL,82H
JEXD3
CMPCL,0EH
CMPCL,00H
JEXD2
MOVAL,20H
JMPXD3
XD2:
MOVCL,0FH
XD3:
MOVBX,lcntkz
MOVCH,AH
MOV[BX],CX
movkz,al
RET
key:
moval,0ffh
movdx,0ff22h
outdx,al
movbl,00h
movah,0feh
movcx,08h
key1:
moval,ah
movdx,0ff21h
outdx,al
rolal,01h
movah,al
nop
nop
nop
movdx,0ff23h
inal,dx
notal
andal,0fh
jnzkey2
incbl
loopkey1
jmpnkey
key2:
testal,01h
jekey3
moval,00h
jmpkey6
key3:
testal,02h
jekey4
moval,08h
key4:
testal,04h
jekey5
moval,10h
key5:
testal,08h
jenkey
moval,18h
key6:
addal,bl
cmpal,10h
jncfkey
movbl,al
MOVBH,0H
MOVSI,OFFSETDATA2
MOVAL,[bx+si]
nkey:
MOVAL,20h
fkey:
ret
data2:
DB07h,04h,08h,05h,09h,06h,0ah,0bh,DB01h,00h,02h,0fh,03h,0eh,0ch,0dh
for8251:
CALLT8253
MOVAL,65H
MOVDX,03f9h
MOVAL,25h
MOVDX,03f9h
MOVDX,65h
MOVAL,4eh
MOVDX,03f9H
outdx,al
T8253:
MOVDX,43H;
9600
MOVAL,76H
OUTDX,AL
MOVDX,41H
MOVAL,0CH
MOVAL,00H
MOVDX,03F9H
DISP:
MOVAL,0FFH;
00H
MOVDX,PA
MOVCL,0DFH;
20H;
显示子程序,5ms
MOVBX,OFFSETBUF
DIS1:
MOVAL,[BX]
MOVAH,00H
PUSHBX
MOVBX,OFFSETDATA1
ADDBX,AX
POPBX
MOVDX,PB
MOVAL,CL
PUSHCX
DIS2:
MOVCX,00A0H
INCBX
RORCL,1;
SHRCL,1
JMPDIS1
LX1:
MOVAL,0FFH
RET
BUF1:
MOVBUF,08H
MOVBUF+1,02H
MOVBUF+2,05H
MOVBUF+3,01H
MOVBUF+4,17H
MOVBUF+5,01H
BUF2:
MOVBUF,09H
MOVBUF+1,00H
MOVBUF+2,00H
MOVBUF+3,0dH
MOVBUF+4,10H
MOVBUF+5,10H
BUF3:
MOVBUF,0eH
MOVBUF+1,18H
MOVBUF+2,18H
MOVBUF+3,10H
CODEENDS
ENDSTART
4验证测试
采用DICE-8086对本设计进行验证。
在P.态下,运行实验程序,如在PC机和实验系统联机状态下,可用鼠标左键单击菜单栏“文件”或工具栏“新建图标”,建立以“.ASM”为后缀的文件,输入源文件并保存,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“R运行”或工具图标运行,运行后的结果如图4.1,此时数码显示8251—1,等待按键,发送键值;
运行“串口调试助手”,按动小键盘数字键,在PC机屏幕上显示相应的数字,按MON键发送结束,串口调试助手显示如图4.2。
按RST键,返回P.态。
测试结果如下:
图4.1装载运行程序结果
图4.2小键盘输入后串口调试助手显示
5总结
课程设计的过程是艰辛的,但是收获却是很大的。
这次课程设计主要是应用以前学习的8253芯片的分频作为8251的收发时钟频率,8251异步串行通信,实现8251可编程通信接口与PC机的通信,每按动一次任一数字键,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。
首先,综合课程设计把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,再次,在课程设计中碰到了很多的问题,通过查阅相关书籍资料,自己钻研,特别是得到了老师的谆谆教导,老师给予了我很大的帮助,不仅给了我思路上的开阔,还让我认识到了自己对以前所学知识的不足方面。
当然,通过这次课程设计,也发现了自身的很多不足之处,在以后的学习中,会不断的完善自我,不断进取,能使自己有一个大的发展。
参考文献
[1]沈美明.IBM-PC汇编语言程序设计.清华大学出版社.2001
[2]戴梅萼.微型计算机技术及应用.清华大学出版社.2003
[3]贾金玲.微型计算机原理与接口技术课程设计指导.2002.
[4]王正龙.微机接口与应用.清华大学出版社.2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 pc 通讯 课程设计 8251 可编程 接口