没有合适的资源?快使用搜索试试~ 我知道了~
IO模拟串口通信实现模拟键盘的输入数码管显示键值
4星 · 超过85%的资源 需积分: 34 37 下载量 162 浏览量
2009-04-16
22:09:42
上传
评论 3
收藏 374KB DOC 举报
温馨提示
本设计为单片机IO口模拟串口实现数据通信,它可以用单片机的IO口实现单片机RX和TX的功能。 用单片机的P3.4和P3.5分别模拟RX和TX的串行通信功能,能够接收和发送数据。 通过PC机的键盘输入字符,并传送给单片机,由单片机接收后,发达给PC机,由PC机加以显示。 单片机接收由键盘输入的数据后,如果是数字,则由数码管显示,并由LED灯表示其ASCII码,如果是其他字符,则由仅由LED灯显示其ASCII码。
资源推荐
资源详情
资源评论
单片机 IO 口模拟串口实现数据通信
1 设计任务与要求
本设计为单片机 IO 口模拟串口实现数据通信,它可以用单片机的 IO 口实
现单片机 RX 和 TX 的功能。具体要求如下:
用单片机的 P3.4 和 P3.5 分别模拟 RX 和 TX 的串行通信功能,能够接
收和发送数据。
通过 PC 机的键盘输入字符,并传送给单片机,由单片机接收后,发达
给 PC 机,由 PC 机加以显示。
单片机接收由键盘输入的数据后,如果是数字,则由数码管显示,并由
LED 灯表示其 ASCII 码,如果是其他字符,则由仅由 LED 灯显示其
ASCII 码。
2总体方案设计
2.1 串行通信的方式设计
本设计要求用单片机的 IO 口来模拟串口的串行通信,因此有必要先简要介
绍一下单片机的 IO 和通信的基本原理与串行口 P3.0 和 P3.1。
2.1.1 并行 I/O 口
MCS-51 单片机共有 4 个双向的 8 位并行 I/O 端口(Port),分别记作
P0-P3,共有 32 根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器
所组成。实际上 P0-P3 已被归入特殊功能寄存器之列。这四个口除了按字节寻
址以外,还可以按位寻址。由于它们在结构上有一些差异,故各口的性质和功
能有一些差异。
P0 口是双向 8 位三态 I/O 口,此口为地址总线(低 8 位)及数据总线分时
复用口,可驱动 8 个 LS 型 TTL 负载。P1 口是 8 位准双向 I/O 口,可驱动 4 个
LS 型负载。P2 口是 8 位准双向 I/O 口,与地址总线(高 8 位)复用,可驱动
4 个 LS 型 TTL 负载。P3 口是 8 位准双向 I/O 口,是双功能复用口,可驱动 4
个 LS 型 TTL 负载。P1 口、P2 口、P3 口各 I/O 口线片内均有固定的上拉电阻,
当这 3 个准双向 I/O 口做输入口使用时,要向该口先写“1”,另外准双向 I/O 口
无高阻的“浮空”状态,故称为双向三态 I/O 口。
2.1.2 通信的基本原理
串行通信只用一位数据线传送数据的位信号,即使加上几条通信联络控制
线,也用不了很多电缆线。因此串行通信适合远距离数据传送。,如大型主机
与其远程终端之间、处于两地的计算机之间采用串行通信就非常经济。当然串
行通信要求有转换数据格式、时间控制等逻辑电路,这些电路目前已被集成在
大规模集成电路(称为可编程串行通信控制器),使用很方便。
通信方式有两种:并行通信和串行通信。通常根据传送的的距离决定采用
哪种通信方式。例如,在 IBM—PC 机与外部设备(如打印机等)通信时,距离
小于 30m,则可采用并行通信方式,当距离大于 30m 时,则要采用串行通信
方式。89C51 单片机具有并行和串行两种基本通信方式。
- 1 - - 1 -
并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。其优
点是传送速度高;缺点是数据有多少位,就需要多少根传送线。例如, 89C51
单片机与打印机之间的数据传送就属于并行通信。图 1 所示为 89C51 单片机
与外设之间 8 位数据并行通信的连接方法。并行通信在位数多、传送距离又远
时就不太合适了。
图 1 两种通信方式连接
串行通信指数据是一位一位按顺序传送的通信方式。它的突出优点是只需
一对传输线(利用电话线就可以作为传输线),这样大大降低了传送成本,特
别适用于远距离通信;其缺点是传送速度较低。假设并行传送 N 位数据所需时
间为 T,那么串行传送的时间至少为 NT,实际上问题总是大于 NT 的,图 7—1
所示为串行通信方式的连接方法。
串行通信的传送方式通常有 3 种:单向(或)单工配置,只允许数据向一
个方向传送;半双向(或半双工)配置,允许数据向两个方向中的任一方向传
送,但每次只能有一个站点发送;全双向(或全工)配置,允许同时双向传送
数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都有完整和
独立的发送和接收能力。
串行通信有两种基本的通信方式:异步通信和同步通信。
异步通信
在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送
的,第一帧的数据格式如图 2 所示。
在帧格式中,一个字符由 4 部分组成:起始位、数据位、奇偶校验位和停
止位。首先是一个起始位(0),然后是 5—8 位数据 (规定低位在前,高位
在后),接下来是奇偶校验位(可省略),最后是停止位(1)。起始位
(0)信号只占一位,用来通知接收设备一个待接收的字符开始到达。线路上
在不传送字符时应保持为 1。接收端不断检测线路的状态,若连续为 1 以后又
测到一个 0,就知道发来一个新字符,应马上准备接收。字符的起始位还被用
作同步接收端的时钟,以保证以后的接收能正确进行。
起始位后面紧接着是数据位,它可以 5 位(D0—D4)、 6 位、7 位或 8
位(D0—D7)。
奇偶校验(D8)只占一位,但在字符中也可以规定不用奇偶校验位,则这
一位就可以省去。也可用这一位(1/0)来确定这一帧中的字符所代表信息的性
质(地址/数据等)。
- 2 - - 2 -
停止位用来表征字符的结束,它一定是高电位(逻辑 1)。停止位可以是
1 位、1.5 位或 2 位。接收端收到停止位后,知道上一字符已传送完毕,同时
也为接收下一个字符作好准备—只发再接收到 0,就是新字符的起始位。若停
止位以后不是紧接着传送下一个字符,,则使线路电平保持为高电平(逻辑
1)。图 7—3(a)表示一个字符紧接一个字符传送的情况,上一个字符的停
止位和下一个字符的起始位是紧邻的;图 7—3(b)则是两个字符间有空闲位
的情况,空闲位为期不远,线路处于等待状态。存在空闲位正是异步通信的特
征之一。
例如规定用 ASCII 编码,字符为 7 位,加 1 个奇偶校验位、1 个起始位、1
个停止位,则一帧共 10 位。
同步通信
同步通信中,在数据开始传送前用同步字符来指示(常约定 1—2 个),
并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连
续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间
隙,也不用起始位和停止位,仅在数据块开始时用同步字符 SYNC 来指示。
波特率
波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单
位是 b/s。波特率对于 CPU 与外界的通信是很重要的。假设数据传送速率是
120 字符/s,而每个字符格式包含 1 个代码位(1 个起始位、1 个终位、8 个数
据位)。这时,传送的波特率为:
10b/字符×120 字符/s=1200b/s
每一位代码的传送时间 Td 为波特率的倒数。
Td=1b/(1200bs-1)=0.833ms
异步通信的传送速率在 50b/s--19200b/s 之间,常用于计算机到终端机和
打印机之间的通信、直通电报以及无线电通信的数据发送等。
- 3 - - 3 -
图 2 异步通信的一般数据格式
串行通信协议
通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。
通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协
议两种。
在此只讨论异步串行通信协议和异步串性协议规定的字符数据的传送格式。
(1)起始位
通信线上没有数据被传送时处于逻辑 1 状态。当发送设备要发送一个字符
数据时,首先发出一个逻辑 0 信号,这个逻辑低电平就是起始位。起始位通过
通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数
据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协
调同步。
(2)数据位
当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是
5、6、7 或 8。IBM-PC 中经常采用 7 位或 8 位数据传送,89C51 串行口采用
8 位或 9 位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。
在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备
中被转换为并行数据。
(3)奇偶校验位
数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,
通信双方需约定已知的奇偶校验方式。如果选择偶校验,那么组成数据位和奇
偶位的逻辑 1 的个数必须是偶数;如果选择奇校验,那么逻辑 1 的个数必须是
奇数。
(4)停止位约定
在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是
一个字符数据的结束标志,可以是 1 位,1.5 位或 2 位的高电平。接收设备收
到停止位之后,通信线路上便又恢复逻辑 1 状态,直至下一个字符数据的起始
位到来。
(5)波特率设置
通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号
持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量
的,这个速度叫波特率。如果数据以 300 个二进制位每秒在通信线上传送,那
么传送速度为 300 波特,通常记为 300b/s。
2.1.3 89C51 的串行口
89C51 单片机除具有 4 个 8 位并行口外,还具有串行接口。此串行接口是
一个全双工串行通信接口,即能同时进行串行发送和接收数据。它可以作
UATR(通用异步接收和发送器)用,也可以作同步移位寄存器用。使用串行
接口可以实现 89C51 单片机系统之间点对点的单机通信和 89C51 与系统机
(如 IBM-PC 机等)的单机或多机通信。
通信和 89C51 与系统机(如 IBM-PC 机等)的单机或多机通信。
- 4 - - 4 -
剩余17页未读,继续阅读
资源评论
- wanshanw2014-08-05研究和学习PS2的编程控制
- 風雨不惊2013-09-09不太 好用,直接百度文库就有
- 待花开2013-09-15一般吧,加入自己学的 内容还能理解
glfabc
- 粉丝: 2
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功