单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx

上传人:b****3 文档编号:4873557 上传时间:2022-12-11 格式:DOCX 页数:14 大小:228.65KB
下载 相关 举报
单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx_第1页
第1页 / 共14页
单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx_第2页
第2页 / 共14页
单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx_第3页
第3页 / 共14页
单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx_第4页
第4页 / 共14页
单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx

《单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx》由会员分享,可在线阅读,更多相关《单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx(14页珍藏版)》请在冰豆网上搜索。

单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯.docx

单片机与pc机通讯课程设计8251A可编程通讯接口与PC机通讯

摘要

设计了一个8251可编程通讯接口与PC机通信,8251是一种可编程的通用同步/异步接收发送器,被广泛应用于Intel80X86为CPU的微型计算机中。

本设计采用8253芯片的分频作为8251的收发时钟频率,实现8251可编程通信接口与PC机的通讯。

关键词:

异步;串行通信;8251

 

1课题描述··································································1

2课题分析··································································2

2.18251基本功能····························································2

2.28251的内部结构··························································2

2.38251编程字·····························································2

3.设计过程··································································4

3.1电路图设计······························································4

3.2硬件设计·······························································4

3.3软件设计·······························································4

4验证测试·································································12

5总结·····································································13

参考文献··································································14

1课题描述

利用8253芯片的分频作为8251的收发时钟频率,8251异步串行通信,实现8251可编程通信接口与PC机的通讯。

采用查询I/O方式,故收/发程序中只需检查发/收准备好的状态是否置位,即可收发l个字节,每按动一次任一数字键,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。

 

2课题分析

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

JEXD3

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

nop

nop

nop

movdx,0ff23h

inal,dx

notal

nop

nop

andal,0fh

jnzkey2

incbl

loopkey1

jmpnkey

key2:

testal,01h

jekey3

moval,00h

jmpkey6

key3:

testal,02h

jekey4

moval,08h

jmpkey6

key4:

testal,04h

jekey5

moval,10h

jmpkey6

key5:

testal,08h

jenkey

moval,18h

key6:

addal,bl

cmpal,10h

jncfkey

movbl,al

MOVBH,0H

MOVSI,OFFSETDATA2

MOVAL,[bx+si]

RET

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

OUTDX,AL

MOVDX,03f9h

MOVAL,25h

OUTDX,AL

MOVDX,03f9h

MOVDX,65h

OUTDX,AL

MOVDX,03f9h

MOVAL,4eh

OUTDX,AL

MOVDX,03f9H

MOVAL,25h

outdx,al

ret

T8253:

MOVDX,43H;9600

MOVAL,76H

OUTDX,AL

MOVDX,41H

MOVAL,0CH

OUTDX,AL

MOVDX,41H

MOVAL,00H

OUTDX,AL

MOVDX,03F9H

MOVDX,03f9h

RET

DISP:

MOVAL,0FFH;00H

MOVDX,PA

OUTDX,AL

MOVCL,0DFH;20H;显示子程序,5ms

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

MOVAH,00H

PUSHBX

MOVBX,OFFSETDATA1

ADDBX,AX

MOVAL,[BX]

POPBX

MOVDX,PB

OUTDX,AL

MOVAL,CL

MOVDX,PA

OUTDX,AL

PUSHCX

DIS2:

MOVCX,00A0H

INCBX

RORCL,1;SHRCL,1

JMPDIS1

LX1:

MOVAL,0FFH

MOVDX,PB

OUTDX,AL

RET

BUF1:

MOVBUF,08H

MOVBUF+1,02H

MOVBUF+2,05H

MOVBUF+3,01H

MOVBUF+4,17H

MOVBUF+5,01H

RET

BUF2:

MOVBUF,09H

MOVBUF+1,00H

MOVBUF+2,00H

MOVBUF+3,0dH

MOVBUF+4,10H

MOVBUF+5,10H

RET

BUF3:

MOVBUF,0eH

MOVBUF+1,18H

MOVBUF+2,18H

MOVBUF+3,10H

MOVBUF+4,10H

MOVBUF+5,10H

RET

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

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

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