单片机双击串行通信C语言设计报告(含代码).doc

上传人:飞****9 文档编号:137941147 上传时间:2020-07-12 格式:DOC 页数:17 大小:4.35MB
返回 下载 相关 举报
单片机双击串行通信C语言设计报告(含代码).doc_第1页
第1页 / 共17页
单片机双击串行通信C语言设计报告(含代码).doc_第2页
第2页 / 共17页
单片机双击串行通信C语言设计报告(含代码).doc_第3页
第3页 / 共17页
单片机双击串行通信C语言设计报告(含代码).doc_第4页
第4页 / 共17页
单片机双击串行通信C语言设计报告(含代码).doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机双击串行通信C语言设计报告(含代码).doc》由会员分享,可在线阅读,更多相关《单片机双击串行通信C语言设计报告(含代码).doc(17页珍藏版)》请在金锄头文库上搜索。

1、石家庄铁道大学四方学院石家庄铁道大学四方学院 集中实践报告书集中实践报告书 课题名称课题名称双机串行通信设计双机串行通信设计 姓姓 名名邢志杰邢志杰 学学 号号20127019 系、系、 部部电气工程系电气工程系 专业班级专业班级方方 1210-4 指导教师指导教师马丽马丽 2015 年年 7 月月 3 日日 20122012 级级 单片机接口课程设计单片机接口课程设计 一、设计任务及要求:一、设计任务及要求: 设计任务:设计任务: 双机串行通信设计 设计要求:设计要求: 1、两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设 定,可选的波特率为 1200、2400、4800 和

2、 9600bit/s。串行口工作方式为方式 1 的 全双工串行通信。 2、两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器 T1 计数 初值 TH1、TL1 进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从 而载入相应的 T1 计数初值 TH1、TL1 实现的。 3、要求发送方读入按键值,发送到接收方,接收方接受数据并显示在数码管 上。 4、要求做出实物。 二、指导教师评语:二、指导教师评语: 三、成绩三、成绩 指导教师签名: 年 月 日 目 录 第 1 章 设计目的1 第 2 章 设计要求1 第 3 章 硬件电路设计1 3.1 系统框图1 3.2 STC89C52 单片机

3、最小系统2 3.3 按键电路3 3.4 主电路设计4 第 4 章 软件程序设计4 4.1 主程序流程图4 4.2 键盘扫描子程序流程图5 4.3 从机主程序流程图6 4.4 从机中断子程序流程图7 4.5 程序调试8 4.6 双机串行通信源程序9 第 5 章 结论13 参考文献13 第 1 章 设计目的 1.1 设计目的 (1)掌握单片机实际系统的开发步骤。 (2)了解串行通信的原理;了解数码管显示的工作原理;了解键盘扫描的 工作原理;对双机串行通信软件编程、调试、相关硬件设备的使用技能等方面 得到真正的实践机会,把软硬件结合,克服其中的种种问题,提高编程能力。 第 2 章 设计要求 2.1

4、设计要求 (1)两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进 行设定,可选的波特率为 1200、2400、4800 和 9600bit/s。串行口工作方式为方 式 1 的全双工串行通信。 (2)两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器 T1 计数初值 TH1、TL1 进行设定。故本题目本质上是通过键盘扫描得到设定的 波特率,从而载入相应的 T1 计数初值 TH1、TL1 实现的。 (3)要求发送方读入按键值,发送到接收方,接收方接受数据并显示在数 码管上。 (4)要求做出实物。 第 3 章 硬件电路设计 3.1系统框图 按键电路 单片机 1 AT89C5 2

5、单片机 2 AT89C5 2 显示电路 图 3-1 系统框图 3.2STC89C52 单片机最小系统 89C52 共有四个八位的并行双向口,即有 32 根输入输出口线。各口的每一 位均由锁存器、输出驱动器和输入缓冲器组成。 VCC(40 引脚):电源电压 VSS(20 引脚):接地 图 3-2 STC89C52 引脚图 P0 端口(P0.0P0.7,3932 引脚):P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入“1”时,可 以作为高阻抗输入。在访问外部程序和数据存储器时,P0 口也可以提供低 8 位 地址和 8 位数据

6、的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM 编 程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要 求外接上拉电阻。 P1 端口(P1.0P1.7,18 引脚):P1 口是一个带内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对 端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。 P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一 个电流。P1 口特点是输出锁存器,输出时没有条件。输入缓冲,输入时有条件, 即需要先将该口设为输入状态,先输出 1

7、。 此外,P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入 (P1.0/T2)和定时器/计数器 2 的触发输入(P1.1/T2EX) 。 P3 口为准双向口。可以字节访问,也可以位访问。 P3.0-RXD,串行输入口。 P3.1-TXD,串行输出口。 P3.2-INT0,外部中断 0 的请求。 P3.3-INT1,外部中断 1 的请求。 P3.4-T0,定时器/计数器 0 外部计数脉冲。 P3.5-T1,定时器/计数器,1 外部计数脉冲。 P3.6-WR,外部数据存储器写选通。 P3.7-RD,外部数据存储器读选通。 RST(9 引脚):复位输入。当输入连续两个机器周期以上

8、高电平时为有效, 用来完成单片机单片机的复位初始化操作。 ALE(30 引脚):地址锁存控制信号(ALE)是访问外部程序存储器时, 锁存低 8 位地址的输出脉冲。 XTAL1(19 引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18 引脚):振荡器反相放大器的输入端。STC89C52 引脚图如图 3-2 所示。 3.3 按键电路 图 3-3 按键电路图 本设计按键采用矩阵键盘,键盘连接主机的 P2 口,主机从矩阵键盘接收信 息,通过串行输出口输出到从机,从机从串行输入口接收信息并把信息显示在 数码管上。 3.4 主电路设计 a a b b c c d d e e f f g

9、 g h h 0 0 1 1 2 2 3 3 5 5 6 6 a b c d e f g 4 4 7 7 P3P3 P3 P3 h P10 P11 P12 P13 4 5 6 7 3 2 1 0 P10 P11 P12 P13 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U4 74HC573 S3S0 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0

10、.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2

11、.5/A13 26 P2.6/A14 27 U1 AT89C52 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P

12、3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U2 AT89C52 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U3 74HC573 C1 33pF C2 33pF X1 CRYSTAL R1 10k C4 33pF C5 33pF X2

13、CRYSTAL R2 10k C6 10uF R3 10k C3 10uF 图 3-4 主电路图 第 4 章 软件程序设计 设计思路为:主机通过键盘扫描程序确认是否有键按下,若有键按下则将 按键号对应的显示代码发送给从机,并判断是否是波特率按键,若是则进行波 特率调整,若无键按下,则继续进行键盘扫描。从机主程序动态显示缓冲区内 的数据。中断子程序接收数据并判断是否是波特率按键所对应的显示代码,若 是则进行波特率调整,然后将数据保存到缓冲区。初始波特率都为 9600。 4.1 主程序流程图 键盘连接到甲机的 P2 口,通过按键扫描确定键值,从机与主机通过串行输 入口 P3.0 和串行输出口 P3

14、.1 相连接,实现两机之间的串行通信。 开始 设置串行口工 作方式及波特 率 检测按键 确定按键号 并发送 波特率按键 调整波特率 Y Y N N 图4-1 主机主程序流程图 4.2 键盘扫描子程序流程图 矩阵式键盘扫描的方法常用的有两种,一种是逐列送0,依次读回行;另一 种为反转法。本程序采用前者,程序流程图如下: 开始 P2 口列置 0,行 置 1 读回 P2 口 得键号 行值是否变化 调整行,列值 结束 Y N 图4-2 键盘扫描子程序流程图 4.3 从机主程序流程图 从机主程序动态显示缓冲区的4个数据。从机的 P1口经锁存器74HC573连 接数码管位码,P2口经锁存器74HC573连

15、接数码管的段码。从机与主机通过串 行输入口 P3.0和串行输出口 P3.1相连接,利用中断来接收主机发来的数据,并 根据接收的数据来判断是否需要进行波特率调整。从机主程序流程图如下: 开始 初始化 送段码,送位码 显示完? 调整指针 Y N 图 4-3 从机主程序流程图 4.4 从机中断子程序流程图 开始 清接收标志位 RI 保存到缓冲区 波特率按键? 调整波特率 中断返回 N Y 图 4-3 从机中断子程序流程图 4.5 程序调试 图 4-5 程序调试 4.6 双机串行通信源程序 /* 程序调试软件:Keil uVision4 程序仿真软件:ISIS 即 Proteus-7.8sp2 /* 双机串行通信主机程序源代码: /* 程序名称:双机串行通信波特率可调主机程序(C语言) 主机功能:通过键盘扫描得到键号并发送,同时判断是否是波特率按键,若是 则调整波特率。 简要说明:主机P2口接4*4矩阵式键盘,高4位行,低4位列。 其中04号按键分别代表4种不

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 管理论文

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