单片机双机串行通信设计:中断VS查询方式
版权申诉
113 浏览量
更新于2024-06-29
收藏 1.2MB DOCX 举报
"这篇文档是关于单片机双机之间串行通信的设计,主要讨论了两种不同的设计方案,并选择了其中一种进行详细阐述。设计涉及到51单片机、串行通信、波特率设置、键盘输入、中断方式和查询方式、数码管显示以及译码电路等关键元素。"
本文档详细介绍了如何设计两片单片机之间的串行通信系统,主要关注的是通信波特率的设置和数据传输方式。设计要求允许用户通过键盘设定四种不同的波特率:1200、2400、4800和9600 bit/s。
在方案一中,采用了51系列单片机,利用4*4矩阵键盘作为输入设备,通过输入不同键值来传递信息。通信方式按照51单片机的串口方式3进行,从机采用中断方式接收信息,根据通信协议调整波特率或通过I/O口输出数据,使用CD4511译码器驱动数码管显示。软件部分采用C语言编写,提供更高的可读性和可维护性。
方案二则保持了相同的硬件设计,但在通信方式上选择了串口方式一,主从机间采用查询方式进行数据交换。数据输出直接由单片机的译码程序完成,软件部分采用汇编语言编写,以增强对通信过程和单片机内部结构的理解。
经过比较,文档作者选择了方案二,理由包括:虽然方式三能输出更多位数据,但本设计需求并不需要;中断方式虽然高效,但作者对查询方式更熟悉;为节省硬件成本和充分利用单片机资源,决定自编译码程序而不是使用CD4511;最后,汇编语言可以提供更深入的硬件理解和控制。
在理论设计部分,系统分为五个模块:单片机最小系统、4*4矩阵键盘、功能控制电路、数据显示电路和波特率更改指示电路。基本工作流程是通过控制口选择功能,键盘输入数据,单片机处理数据(添加校验码、设置功能标志位),然后与从机进行通信,从机校验数据并反馈结果,根据校验结果决定是否重新发送数据或进入下一个数据传输阶段。
单片机最小系统确保了单片机正常运行,包括电源、晶振电路(提供时钟脉冲)、复位电路和EA引脚连接高电平,以启用片内程序存储器。整个设计通过不断循环这个过程来实现稳定的数据通信。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-11-12 上传
2022-07-04 上传
2022-11-12 上传
2024-07-17 上传
2022-10-18 上传
春哥111
- 粉丝: 1w+
- 资源: 5万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析