单片机串口通讯设计_第1页
单片机串口通讯设计_第2页
单片机串口通讯设计_第3页
单片机串口通讯设计_第4页
单片机串口通讯设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 1 设计内容和要求 1 1 设计内容 本设计采用 AT89S52 单片机以及 MAX232 通信芯片配合使用与上位机 计算 机 进行串口通讯 根据上位机所发送的不同请求数据来判断计算机所要求单 片机所返回的数据 上位机软件采用串口调试助手 在串口调试助手发送区输 入相应字符 然后点击发送 串口调试助手软件将数据传送到计算机串口处 采用串口连接线将计算机串口信号传送至 MAX232 芯片 再通过电平转换将 RS232 信号转换为单片机所能识别的 TTL 信号 然后将该信号传输到单片机串 行口 将数据传送到单片机内部寄存器进行相应处理 1 2 功能要求 通过上位机串口调试软件给单片机发送命令 单片机接收到所发送的命令 后 进行比较处理 确定上位机信息内容后 返回上位机所请求的数据 具体 通信波特率和校验方法设置为 通信波特率 9600bps 校验方式 无校验 数据位 8 位 停止位 1 位 具体发送和接收要求为 首先上位机发送请求命令 当单片机接送到上位机的请求命令后 判断上 位机是何数据 然后给出相应的返回数据 具体发送和接收的数据如下表所示 序号上位机发送数据上位机接收数据 11 What do you plan to do this Friday 精品文档 2欢迎下载 22 I plan to go to the concert 33 What are you doing next week 44 I m thinking of going to my grandma s 5 其他字符 Please select a character 1 2 3 4 2 系统总体结构 2 1 功能模块描述 本设计为上位机与单片机通讯 单片机采用 UART 串行口 计算机采用 串口 考虑到单片机串行口输出的是 TTL 电平信号 而计算机串口输出的是 RS232 信号 两种信号存在不兼容的问题 因此需要进行电平转换以达到电 平兼容的目的 所以我们还需要选择另外一种具有 TTL 信号到 RS232 信号转 换功能的芯片 本设计中要求采用交流 9V 电源供电 而我们单片机以及其 他芯片工作所需要的电压为直流 因此这里我们必须将电压性质转化一下 否则芯片将不能正常工作 整流的方法有半波整流和桥式整流两种方法 半波整流效率较低 只有 输入电压的 0 45 倍 输入交流电压为 9V 半波整流后输出的电压仅为 4 05V 而我们单片机正常工作的电压为直流 5V 不能满足要求 因此半波 整流方式不可取 在本设计中我们选择桥式整流方式 其输出电压为输入电 压的 0 9 倍 输入电压为交流 9V 时 输出电压为 8 1V 大于单片机工作电压 精品文档 3欢迎下载 可以选择 整流后输出直流电压波动较严重 因此在整流输出端我们需要增 加滤波网络 进行稳定输出电压 由于桥式整流电路输出电压大于我们芯片所能承受的最大电压 因此需 要增加降压网络 将整流桥输出电压降低到芯片的工作电压 5V 为保证电 路板加电后能够有上电指示功能 因此在降压网络输出端增加发光二极管作 为上电指示灯 本设计中 当上位机下发请求数据时 下位机 单片机 能够识别下发 数据并显示所下发的数据 正常下发请求命令为 1 2 3 4 或其他 数据或字符 设计要求电路板能够正常显示 1 2 3 4 显示其他 数据或字符时不必显示 因此这里我们需要选择一个 8 段数码管即可 2 2 功能模块框图 精品文档 4欢迎下载 CPU 显示模块 通讯模块 降 压 模 块 整 流 模 块 复位电路 时钟电路 3 硬件设计 3 1 硬件介绍 3 1 1 单片机介绍 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可 编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与 工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统 可编程 亦适于常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统 可编程 Flash 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有 效的解决方案 AT89S52 具有以下标准功能 8k 字节 Flash 256 字节 RAM 32 位 I O 口线 看门狗定时器 2 个数据指针 三个 16 位 定时器 计数器 一个 6 向量 2 级中断结构 全双工串行口 片内晶振及时钟电路 另外 AT89S52 可降至 0Hz 静态逻 辑操作 支持 2 种软件可选择节电模式 空闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继续 工 作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片机一切工 精品文档 5欢迎下载 作停止 直到下一个中断或硬件复位为止 端口 0 是一个 8 位宽的开路汲极 Open Drain 双向输出入端口 共有 8 个位 P0 0 表示位 0 P0 1 表示位 1 依此类推 其他三个 I O 端口 P1 P2 P3 则不具有此电路组态 而是内部有一提升电路 P0 在当做 I O 用时可以推动 8 个 LS 的 TTL 负载 端口 1 也是具有内部提升电路的双向 I O 端 口 其输出缓冲器可以推动 4 个 LS TTL 负载 同样地若将端口 1 的输出设为高 电平 便是由此端口来输入数据 端口 3 也具有内部提升电路的双向 I O 端口 其输出缓冲器可以推动 4 个 TTL 负载 同时还多工具有其他的额外特殊功能 包括串行通信 外部中断控制 计时计数控制及外部数据存储器内容的读取或 写入控制等功能 端口 2 是具有内部提升电路的双向 I O 端口 每一个引脚可 以推动 4 个 LS 的 TTL 负载 若将端口 2 的输出设为高电平时 此端口便能当成 输入端口来使用 端口 3 也具有内部提升电路的双向 I O 端口 其输出缓冲器 可以推动 4 个 TTL 负载 同时还多工具有其他的额外特殊功能 包括串行通信 外部中断控制 计时计数控制及外部数据存储器内容的读取或写入控制等功能 其引脚分配如下 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 外部数据存储器的读取信号 3 1 2 RS232 芯片介绍 MAX232 芯片是美信 MAXIM 公司专为 RS 232 标准串口设计的单电源电平 转换芯片 使用 5v 单电源供电 管脚介绍 精品文档 6欢迎下载 第一部分是电荷泵电路 由 1 2 3 4 5 6 脚和 4 只电容构成 功能是 产生 12v 和 12v 两个电源 提供给 RS 232 串口电平的需要 第二部分是数据 转换通道 由 7 8 9 10 11 12 13 14 脚构成两个数据通道 其中 13 脚 R1IN 12 脚 R1OUT 11 脚 T1IN 14 脚 T1OUT 为第一数据通道 8 脚 R2IN 9 脚 R2OUT 10 脚 T2IN 7 脚 T2OUT 为第二数据通道 TTL CMOS 数据从 11 引脚 T1IN 10 引脚 T2IN 输入转换成 RS 232 数据从 14 脚 T1OUT 7 脚 T2OUT 送到电脑 DB9 插头 DB9 插头的 RS 232 数据从 13 引脚 R1IN 8 引脚 R2IN 输入转换成 TTL CMOS 数据后从 12 引脚 R1OUT 9 引脚 R2OUT 输出 第三部分是供电 15 脚 GND 16 脚 VCC 5v 3 2 电路介绍 3 2 1 电源电路 为满足实物能够兼容交流和直流 9V 电压输入 在输入网络中增加整流桥 后级电路中增加滤波电容 来满足不论直流还是交流电压输入 输出端均能得 到稳定的直流电压 而且直流电压输入时不受电压正负极限制 可以任意接入 考虑到芯片正常工作时所需要的电压为 DC5V 因此需要增加降压网络 将输出 电压稳定在 5V 而且需要具有一定的输出功率 本设计中我们选择 L7805 三端 稳压芯片 该芯片最大输出电流为 1A 输出电压为 DC5V 完全满足本设计要求 为了能够显示外部电压是否正常接入 因而在电压输出端增加电源指示功能 该功能由发光二极管和限流电阻组成 电路如下图所示 22uF C1 0 1uF C2 OUT 3 IN 1 GND 2 U2 7805 10K R1 D1 VCC 1 2 X1U1 3 2 2 单片机最小系统 本设计使用的单片机为 AT89S52 单片机 封装形式为 DIP40 单片机能够 精品文档 7欢迎下载 正常工作需要满足一下硬件条件 1 单片机所需要的工作电压需要正常接入 DC5V 2 单片机工作所需要的时钟需要正常接入 一般采用晶体振荡器产生 3 单片机上电后须有复位信号产生后方能正常工作 因此复位电路必不可少 以上三点为单片机能够正常工作的必要条件 也即单片机最小系统 本设计中 由于所需处理的数据量比较少 因此编译后产生 的机器码文件比较小 单片机 本身具有 8K 的 ROM 存储空间 足够本设计需求 因此无需外扩 ROM 存储单元 使用内部 ROM 即可 因此在硬件设计上面不必考虑外扩 ROM 即 P0 口和 P2 口 无需增加锁存器来锁存外部寻址所需要的数据存储地址 减少比必要元器件的 使用 节省布板空间 从而简化了设计 AT89S51 单片机规定使用外部存储空 间 即外扩 ROM 时 单片机使能信号 即 EA 管脚 必须下拉 当使用内部存 储空间时该引脚必须上拉 由于被设计中采用内部 ROM 因此 需要将该引脚 上拉 电路如下图所示 P 0 1 P 1 2 P 2 3 P 3 4 P 4 5 P 5 6 P 6 7 P 7 8 RST 9 RXD 10 TXD 11 P3 2 12 P3 3 13 P3 4 14 P3 5 15 P3 6 16 P3 7 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 U3 AT89C52 10k R2 0 47uF C3 VCC VCC VCC 12 Y1 30P C4 30P C5 RXD TXD 1KR3 1KR4 1KR5 1KR6 1KR7 1KR8 1KR9 1KR10A B C D E F G DP S1 3 2 3 RS232 通信电路 本设计中 RS232 通讯采用 MAX232 芯片 该芯片输入电压为 DC5V 由于 精品文档 8欢迎下载 RS232 输出端为 12V 电压 因此需要升压 该芯片借助外接 4 个 0 1uF 电路实 现升压功能 该芯片为双通道 本设计中只需要选择其一即可 V 6 GND 15 R2in 8 R1in 13 R2out 9 R1out 12 T2out 7 T1out 14 T2in 10 T1in 11 V 2 VCC 16 C1 1 C1 3 C2 4 C2 5 U4 MAX232 TX 232 RX 233RX TTL TX TTL 0 1uFC 0 1uFC 0 1uFC 0 1uFC VCC 4 软件设计 4 1 单片机 I O 口分配 序号I O 口功能定义说明 1P2 0 P2 7 数码管显示8 端数码管需要一个字节驱动 2P3 0 串行数据接收使用该端口第二功能 作为串行数据接 收 3P3 1 串行数据发送使用该端口第二功能 作为串行数据发 送 4RST 单片机复位端高电平复位 5 VCC GND电源引脚DC5V 供电 6 XTAL1 2晶振引脚本设计中采用 11 0592MHZ 晶振频率 7EA 存储空间选择本设计中 EA 上拉 选择内部存储空间 4 2 程序流程图 精品文档 9欢迎下载 主函数流程图 中断函数流程图 5 系统调试 根据原理图焊接电路 焊接时注意元器件以及连接导线之间不能有短路或 开路现象 用万用表测试已经焊接完毕的电路板 检验是否有短路现象 特别 是电源模块 确保没有短路现象后 给电路板上电 9V 同时在电路中串接电流 表 观察工作电流 若工作电流远大于 20mA 应立即断电 查找原因 具体查 找电源模块有无短路现象 元器件参数是否焊接错误 芯片是否焊接反等现象 代问题解决后 开始根据软件流程图编写程序 程序编辑过程中需要不断调试 在线监测数据变化 待程序编辑完成后 将编译后产生的机器码文件即 HEX 文件通过程序下载软件 下载到单片机 ROM 开始 系统初始化 RI 1 数据处理 上位机发送 TI 1 数据接收 接收显示 Y N Y N 数据发送 精品文档 10欢迎下载 中 给电路板上电 观察单片机工作 若数码管没有显示切无产行数据 接收 考虑单片机有没有正常工作 主要检查晶体振荡器有没有正常工作 可使用示 波器观察晶振波形 能观察到正弦波信号且频率在 11MHZ 左右 说明晶体振荡 器已经正常工作 下一步检查复位电路是否正常 查看电路是否接错 电路参 数能不能足以让单片机正常复位 最后检查使能信号端 EA 是否对电源地之间有 5V 电压 待硬件故障排除以后 开始软件调试 反复修改程序 并下载到单片 机 ROM 中 观察程序运行情况 直至正常为止 6 实验小结 这次实习让我受益匪浅 无论从知识上还是其他的各个方面 上课的时 候的学习从来没有见过真正的单片机 只是从理论的角度去理解枯燥乏味 但在实习中见过甚至使用了单片机及其系统 能够理论联系实际的学习 开 阔了眼界 提高了单片机知识的理解和水平 在做本次课程设计的过程中 我感触最深的当属查阅大量的设计资料了 为了让自己的设计更加完善 查阅这方面的设计资料是十分必要的 同时也 是必不可少的 我们是在做单片机课程设计 但我们不是艺术家 他们可以 抛开实际尽情在幻想的世界里翱翔 而我们一切都要有据可依 有理可寻 不切实际的构想永远只能是构想 永远无法升级为设计 其次 在这次课程设计中 我们运用到了以前所学的专业课知识 如 CAD 制图 汇编语言 模拟和数字电路知识等 虽然过去从未独立应用过它 们 但在学习的过程中带着问题去学我发现效率很高 这是我做这次课程设 计的又一收获 要做好一个课程设计 就必须做到 在设计程序之前 对所 用单片机的内部结构有一个系统的了解 知道该单片机内有哪些资源 要有 一个清晰的思路和一个完整的的软件流程图 在设计程序时 不能妄想一次 就将整个程序设计好 反复修改 不断改进是程序设计的必经之路 要养成 注释程序的好习惯 一个程序的完美与否不仅仅是实现功能 而应该让人一 看就能明白你的思路 这样也为资料的保存和交流提供了方便 在设计课程 过程中遇到问题是很正常德 但我们应该将每次遇到的问题记录下来 并分 析清楚 以免下次再碰到同样的问题的课程设计结束了 但是从中学到的知 精品文档 11欢迎下载 识会让我受益终身 发现 提出 分析 解决问题和实践能力的提高都会受益于我在以后的 学习 工作和生活中 设计过程 好比是我们人类成长的历程 常有一些不 如意 但毕竟这是第一次做 难免会遇到各种各样的问题 在设计的过程中 发现了自己的不足之处 对以前所学过的知识理解得不够深刻 掌握得不够 牢固 在本次课程设计过程中也遇到了许多问题 有些问题在自己查找资料中 解决了 还有一些问题无从下手 通过我们的指导老师庄老师的悉心指导 耐心的讲解使我茅塞顿开 瞬时豁然开朗 令人心情舒畅 在设计中收获了 不少乐趣 最重要的是学到的许多的知识 在今后的工作和学习中一定大有 用处 在此向我们的指导老师庄老师表示感谢 7 参考文献 附录 元器件清单 精品文档 12欢迎下载 序号元器件名称规格型号数量备注 1 单片机底座 DIP401 2 通信芯片底座 DIP161 3 整流桥 KBPC6101 4 稳压芯片 L78051 5 发光二极管3mm 红色 1 1 4W 10K 2 6 电阻 1 4W 1K 8 电解电容 22uf1 0 47uf17 瓷片电容 0 1uf5 8 接线端子 DT103 21 9 串口接头 DB91 10 单片机 AT89S52 DIP401 11 通讯芯片 MAX232 DIP161 12 面包板单面 9 15 1 精品文档 13欢迎下载 原理图 精品文档 14欢迎下载 程序清单 include include define uchar unsigned char define uint unsigned int uchar code str1 what do you plan to do this Friday uchar code str2 I playn to go to cencert 精品文档 15欢迎下载 uchar code str3 what are you ding next week uchar code str4 i m thingking of going to my Grandma s uchar code str5 please select a character 1 2 3 4 uint flag flag1 0 num void sendString uchar ucString main EA 1 开总中断中断 ES 1 开串口中断 REN 1 开允许串口接收 SM0 0 设置串口工作方式 SM1 1 TR1 1 开定时器 T1 TMOD 0X

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论