串口通讯课程设计Word文档下载推荐.docx
- 文档编号:17817866
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:14
- 大小:119.72KB
串口通讯课程设计Word文档下载推荐.docx
《串口通讯课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《串口通讯课程设计Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
2、要求实时显示传送或者接受的数据
3、CPU和8251之间采用查询方式交换数据
三、设计电路原理图
1.电路原理图
U3
3
4
7
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
A1
U4
8
13
14
17
18
23
22
21
20
1
A
B
C
D
IO0
IO1
IO2
IO3
IO4
IO5
IO6
IO7
U1
M/IO
11
OE
LE
E1
E2
74HC373
IO8
10
IO9
32
29
IO10
IO11
IO12
IO13
IO14
IO15
WR/LOCK
8086
LOAD_SEG=0x0200
SRCFILE=1.asm
74154
U12(1M)
P1
DCD
DSR
RXD
RTS
TXD
CTS
DTR
RI
ERROR
COMPIM
四、软件流程图与程序清单
8251是用来作为CPU与外设或者调制解调器之间的接口芯片。
它的信号线可以分为4组:
与CPU连接的信号线,状态信号线,时钟信号线和与外设接口的信号线。
与CPU连接的信号线中,RESET是芯片复位线,当该线为高电平时,芯片复位而处于空闲状态;
C/D是地址线,若此线为高电平,则CPU访问8251命令寄存器或状态寄存器,低电平则访问数据寄存器。
状态信号线供CPU查询或向CPU申请中断用。
TxRDY发送准备好信号,高电平有效;
RxRDY接收准备好信号,高电平表示输入端接受了一个字符,通知CPU取数据;
TxE发送空信号,高电平有效;
SYNDET为双功能引脚,同步方式时作为同步字符检出信号。
时钟信号线包括发送器时钟信号(/TxC)、接收器时钟信号(/RxC)和内部工作时钟信号CLK。
面向调制器的接口信号线包括:
/DTR,数据终端准备好,是输出信号,低电平有效;
/DSR,通信设备准备好,是输入信号,低电平有效;
/RTS,请求发送,是输出信号,低电平有效;
/CTS,允许发送,是输入信号,低电平有效;
TxD,发送数据线;
RxD,接收数据线。
8251有两个8位的命令字,和一个8位状态字。
方式命令字指定通信方式及数据格式,即指定8251为异步或同步,并按照其通信方式约定帧数据的格式。
方式命令字的格式为8位,可以分为4组,每组2字,格式如下。
工作命令字指定8251进行某种操作,包括发送、接收、内部复位和检查同步字符等,或者处于某种工作状态,以便接收或发送数据。
工作命令字的格式为8位,格式如下。
状态字报告8251何时才能开始接收或发送数据,以及接收数据是否有错。
状态字为8位,其格式如下,所有状态位置“1”有效。
方式命令字、工作命令字和状态字之间的关系是:
方式命令字只是约定了双方通信的方式及数据格式、传输速率等参数,但并没有规定数据传输的方向是接受还是发送,因此需要工作命令字来控制,而何时才能发送或者接收则由状态字控制。
只有在8251进入发送或接受准备好状态才能真正开始数据的传送。
8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。
有下列基本性能:
(1)通过编程,可以工作在同步方式,也可以工作在异步方式。
(2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K。
(3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符。
(4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。
(5)具有奇偶、溢出和帧错误检测能力。
(6)全双工,双缓冲器发送和接收器。
①数据线D7~D0——双向、三态,用于与CPU传送数据、命令、状态等信息。
②片选CS——用于芯片寻址。
③读写控制RD,WR。
④控制/数据选择信号(输入)。
⑤C/D(A0)RDWR功能
001CPU从8251A输入数据
010CPU向8251A输出数据
101CPU读8251A的状态
110CPU向8251A写控制命令
因为8251A使用前必须进行初始化,以确定工作方式、传送速率、字符格式以及停止位长度等;
改变8251A的工作方式时必须再次进行初始化编程。
程序设计流程图
8086CPU与8251A的硬件接线图
源程序:
ADD8251DEQU30H;
串行通信控制器数据口地址
ADD8251CEQU32H;
串行通信控制器控制口地址
CODESEGMENT;
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
INIT:
XORAL,AL;
AL清零
MOVCX,03
MOVDX,ADD8251C
OUT1:
OUTDX,AL;
往8251A的控制端口送3个0
LOOPOUT1
MOVAL,40H
OUTDX,AL
NOP
MOVDX,ADD8251C
MOVAL,01001101b;
写模式字1停止位,无校验,8数据位,x1
OUTDX,AL
MOVAL,00010101b;
控制字清出错标志,允许发送接收
RE:
MOVCX,25
LEADI,STR1
Send:
;
串口发送
清出错,允许发送接收
WTXD:
INAL,DX
TESTAL,1;
发送缓冲是否为空
JZWTXD
MOVAL,[DI];
取要发送的
MOVDX,ADD8251D
OUTDX,AL;
发送
PUSHCX
MOVCX,20h
SIM:
LOOPSIM
POPCX
INCDI
LOOPSend
JMPRE
CODEENDS
DATASEGMENT
STR1DB'
THISISPROTEUS8251UARTTEST!
'
DB'
WELCOMETO8086SIMULATION'
DATAENDS
ENDSTART
五、结论与心得
课程设计的几天里,我天天对着电脑,忙着接线,脑袋跟随者CPU不停的转,中午也不回宿舍睡觉,但是仍然有一种愉悦感,我向这就是程序设计的魅力,遇到问题,解决问题的过程时快乐的。
进步本身就时一件令人快乐的事情。
做这个设计题目,前前后后花了我一周的时间。
其中前三天用于做前期的知识准备,还有一些时间用于和同学探讨,还有一些时间用于思维的转变,有时自己的思维方式相对有些死板而已。
要敢于思考,要喜欢思考,要善于思考,这对我自己来说,都是一个启发。
在程序调试成功后,有不少同学问我,这个程序如何理解。
我从头到尾给他们讲了,他们懂了,我自己对程序的理解就更深一步了,得到了一种成就感;
当然在写程序的过程中,在其他的同学身上学到了很多东西,自己也取得了很大的进步。
有时当有一个没解决的问题困扰我的时候,在睡觉的时候,脑袋里出现的全是程序设计的代码,达到了一种“暮然回首,那人却在灯火阑珊处”的境界了。
程序设计的感觉真好!
真希望多开几门这样的课!
六、参考文献
[1]胡汉才.单片机原理及其接口技术[M].北京:
清华大学出版社,2010.3:
299-319
[2]范立南,张乐.微型计算机原理及应用[M].北京:
清华大学出版社,2012.1:
12-54
[3]杨立,邓振杰,荆淑霞.微型计算机原理与接口技术[M].北京:
中国铁道出版社,2009.3:
45-89
[4]方立友.微机原理与汇编语言实用教程[M].北京:
清华大学出版社,2008.5:
159-189
附录:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串口 通讯 课程设计