基于单片机的双机串行通信设计

上传人:ji****72 文档编号:27346110 上传时间:2018-01-09 格式:DOC 页数:45 大小:729.77KB
返回 下载 相关 举报
基于单片机的双机串行通信设计_第1页
第1页 / 共45页
基于单片机的双机串行通信设计_第2页
第2页 / 共45页
基于单片机的双机串行通信设计_第3页
第3页 / 共45页
基于单片机的双机串行通信设计_第4页
第4页 / 共45页
基于单片机的双机串行通信设计_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《基于单片机的双机串行通信设计》由会员分享,可在线阅读,更多相关《基于单片机的双机串行通信设计(45页珍藏版)》请在金锄头文库上搜索。

1、0一、总体设计1.实 现 功 能 :用单片机的串口模拟短信的收发,当 A 主机要向 B 主机发送一行字符串时,首先 A 主机把这行字符串打印到 1602LCD 液晶屏幕上,当 A 主机按发送按键的时候,A 主机向 B 主机发送一行字符串,这时字符串会通过串口发送到 B 主机上,当 B 主机收到字符串时,会在1602LCD 液晶屏幕上把字符串打印出来,这时按下 B 主机上的接受按键,B 主机会把要发送的字符串,打印到 B 主机的 1602LCD 液晶屏幕上,按下 B 主机的发送按键,这时 B 主机会通过串口向 A 主机发送字符串。最后用两个矩阵键盘模拟发送短信用的字母键盘,A 主机可以通过矩阵键

2、盘输入想要发送的数据,然后按发送按键发送,同样 B 主机也可以通过矩阵键盘输入信息,然后通过发送按键发送。2.设 计 方 案 :首 先 把 两 个 ATS89C51 各 自 连 接 成 单 片 机 最 小 系 统 , 在 把 他 们 的 TXD、 RXD 口 分 别 与MAX232 相 连 , 然 后 一 个 MAX232 的 T1OUT 和 R1IN , 分 别 与 另 一 个 MAX232 的 R1IN 和T1OUT 相 连 , P0 口 接 矩 阵 键 盘 , P1 口 接 液 晶 显 示 的 数 据 端 。 总 的 电 路 图 如 图 :图 1、总电路图1二、设计基础1.单片机串行口通

3、信方式图 2.AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51 单片机用 4 个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。51 单片机的串行接口是一个全双工的接口,它可以作为 UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51 单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一

4、个接受,用同一个接地址 99H,发送时用指令将数据送到 SBUF 即可启动发送;接收时用指令将 SBUF 中接收到的数据取出。(2)串行控制寄存器(PCON)SCON 用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0 SM1 SM2 REN TB8 RB8 TI RI2SM0,SM1:串行接口工作方式选择位,这两位组合成 00,01,10,11 对应于工作方式0、1、2、3。串行接口工作方式特点见下表SM0 SM1 工作方式 功能 波特率0 0 0 8 位同步移位寄存器(用于 I/O 扩展) fORC/120 1 1 10 位异步串行通信(UART) 可变(T1 溢出率*2SM

5、OD/32)1 0 2 11 位异步串行通信(UART) fORC/64 或 fORC/321 1 3 11 位异步串行通信(UART) 可变(T1 溢出率*2SMOD/32)SM2:多机通信控制位。REN:接收允许控制位。软件置 1 允许接收;软件置 0 禁止接收。TB8:方式 2 或 3 时,TB8 为要发送的第 9 位数据,根据需要由软件置 1 或清 0。RB8:在方式 2 或 3 时,RB8 位接收到的第 9 位数据,实际为主机发送的第 9 位数据 TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要

6、软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8 位数据全移入后,再并行送入接收 SBUF 中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51 系列单片机用定时器 T1 作为波特率发生器,T1 设置在定时方式。波特率用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器 PCON,其最高位为 SMOD。(6)波特率计算对于方式 1 和方式 3,波特率都是由定时器 1 的溢出率决定,计算公式如下:初 值定 时 器

7、波 特 率 T21Smodkscf3定时器 T1 工作于方式 0 时,k=13;定时器 T1 工作于方式 1 时,k=16;定时器 T1 工作于方式 2 和方式 3,k=8;2、1602LCD 操作(1)1602LCD 特性:+5V 电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有 80 字节显示数据存储器 DDRAM内建有 160 个 5X7 点阵的字型的字符发生器 CGROM8 个可由用户自定义的 5X7 的字符发生器 CGRAM字符型 LCD1602 通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是背光电源线VCC(

8、15 脚)和地线 GND(16 脚)4图 3、1602 各引脚的定义HD44780 内置了 DDRAM(显示数据存储 RAM)、CGROM(字符存储 ROM)和 CGRAM(用户自定义 RAM)。 DDRAM 就是显示数据 RAM,用来寄存待显示的字符代码。共 80 个字节,其地址和屏幕的对应关系如下表: 也就是说想要在 LCD1602 屏幕的第一行第一列显示一个“A”字,就要向 DDRAM 的 00H 地址写入“A”的代码就行了。但具体的写入是要按 LCD 模块的指令格式来进行的,后面我会讲到的。一行有 40 个地址 在 1602 中我们就用前 16 个就行了。第二行也一样用前 16 个地址

9、。对应如下: DDRAM 地址与显示位置的对应关系 51602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常 用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H),显示时模块把地址 41H 中的点 阵字符图形显示出来,我们就能看到字母“A” 图 4、1602 字符表上表中的字符代码与我们 PC 中的字符代码是基本一致的。因此我们在向 DDRAM 写 C51字符代码程序时甚至可以直接用 P1A这样的方法。PC 在编译时就把“A ”先转为

10、41H代码了。字符代码 0x000x0F 为用户自定义的字符图形 RAM(对于 5X8 点阵的字符,可以存放 8 组),就是 CGRAM 了。对 DDRAM 的内容和地址操作,HD44780 的指令集及其设置说明,共有 11 条指令:6基本操作时序: 读状态 输入:RS=L, RW=H,E=H 输出:DB0DB7= 状态字 写指令 输入:RS=L, RW=L,E= 下降沿脉冲,DB0DB7=指令码 输出:无 读数据 输入:RS=H,RW=H,E=H 输出:DB0DB7= 数据 写数据 输入:RS=H,RW=L ,E=下降沿脉冲,DB0DB7=数据 输出:无 1.清屏指令 功能: 清除液晶显示器

11、,即将 DDRAM 的内容全部填入“空白”的字符码 20H; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(AC) 的值设为 0。 2.光标归位指令 功能: 把光标撤回到显示器的左上方; 把地址计数器(AC) 的值设置为 0; 保持 DDRAM 的内容不变 3.输入模式设置指令 功能:设定每次写入 1 位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。7参数设定的情况如下所示: 位名 设置 I/D 0=写入新数据后光标左移 1=写入新数据后光标右移 S 0=写入新数据后显示屏不移动 1=写入新数据后显示屏整体右移 1 个字 4.显示开关控制指令功能:控制显示器开/关、光标

12、显示 /关闭以及光标是否闪烁。参数设定的情况如下: 位名 设置 D 0=显示功能关 1=显示功能开 C 0=无光标 1=有光标 B 0=光标不闪烁 1=光标闪烁 5.设定显示屏或光标移动方向指令 功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下: S/C R/L 设定情况 0 0 光标左移 1 格,且 AC 值减 1 0 1 光标右移 1 格,且 AC 值加 1 1 0 显示器上字符全部左移一格,但光标不动 1 1 显示器上字符全部右移一格,但光标不动 6.功能设定指令 功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下: 8位名 设置 DL 0=数据总线为 4 位 1=数据

13、总线为 8 位 N 0=显示 1 行 1=显示 2 行 F 0=57 点阵/每字符 1=510 点阵/每字符 7.设定 CGRAM 地址指令功能:设定下一个要存入数据的 CGRAM 的地址。8.设定 DDRAM 地址指令 功能:设定下一个要存入数据的 CGRAM 的地址。 (注意这里我们送地址的时候应该是 0x80+Address,这也是前面说到写地址命令的时候要加上 0x80 的原因) 9.读取忙信号或 AC 地址指令 功能: 读取忙碌信号 BF 的内容,BF=1 表示液晶显示器忙,暂时无法接收单片机送来的数据或指令; 当 BF=0 时,液晶显示器可以接收单片机送来的数据或指令; 读取地址计

14、数器(AC) 的内容。 10.数据写入 DDRAM 或 CGRAM 指令 9功能: 将字符码写入 DDRAM,以使液晶显示屏显示出相对应的字符;将用户自己设计的图形存入 CGRAM。 11.从 CGRAM 或 DDRAM 读出数据的指令功能:读取 DDRAM 或 CGRAM 中的内容。 基本操作时序: 读状态 输入:RS=L, RW=H,E=H 输出:DB0DB7=状态字 写指令 输入:RS=L, RW=L,E= 下降沿脉冲,DB0DB7=指令码 输出:无 读数据 输入:RS=H,RW=H,E=H 输出:DB0DB7=数据 写数据 输入:RS=H,RW=L ,E=下降沿脉冲,DB0DB7=数据 输出:无 2.MAX232 芯片用 8051 串行接口通信,如果两台 8051 单片机之间的距离很近(不超过 1.5m),可以采用直接将两台 8051 单片机的串行接口直接相连,利用其自身的 TTL 电平(0-5V)直接传输数据信息。如果传输距离较远(超过 1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号