PIC单片机双机异步通信程序设计与实现
182 浏览量
更新于2024-09-01
收藏 47KB PDF 举报
"这篇文章主要讲解了使用PIC单片机进行双机异步通信的程序设计,包括发送部分的实现和相关初始化子程序。"
在单片机应用中,双机异步通信是一种常见的数据交换方式,它允许两台设备通过串行接口交换信息,即使它们的时钟不同步。在这个例子中,我们专注于使用PIC单片机进行这种通信。PIC单片机以其高效、低功耗和灵活的特性,在嵌入式系统中广泛应用。
首先,程序的核心在于发送部分,通过定义一个名为`tran`的数组来存储待发送的数据。这个数组在程序运行过程中会被填充并随后通过通信接口发送出去。此外,程序还使用了通用寄存器`k`和`data`来进行临时数据处理。
在初始化阶段,有两部分至关重要:SPI(Serial Peripheral Interface)显示初始化和SCI(Serial Communication Interface)初始化。SPIINIT()子程序配置了SPI接口,使其能够与外部设备如74HC595 shift register进行通信。这涉及到设置SPI的控制方式,使能SPI模式,并设定时钟边沿以适应74HC595的工作特点。同时,配置相关引脚为输入或输出以控制数据传输。
SCIINT()子程序则用于初始化SCI接口,以实现异步高速方式传输8位数据。设置了适当的波特率(SPBRG)以达到大约9600位/秒的传输速率,并启用同步串行口工作。RC6和RC7引脚被设置为输入模式,准备接收数据。
为了将数据实际发送到SPI接口,定义了一个名为SPILED()的子程序。该程序将数据写入SSPBUF寄存器启动发送,并在一个循环中等待SSPIF标志位变为1,表示数据发送完成。之后清零SSPIF,准备下一次传输。
最后,display()子程序负责显示数据,它通过SPI接口向外部设备发送预处理的段码,以便在显示器上正确显示数字。在显示过程中,会先给出一个锁存信号,表示显示任务已经完成。
这篇文档详细介绍了如何使用PIC单片机实现双机异步通信的发送部分,涵盖了SPI和SCI接口的初始化、数据传输以及显示控制等关键环节。这对于理解和实践基于PIC单片机的串行通信设计非常有帮助。
2018-04-28 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-05-15 上传
2017-09-09 上传
weixin_38617615
- 粉丝: 6
- 资源: 1017
最新资源
- WordPress作为新闻管理面板的实现指南
- NPC_Generator:使用Ruby打造的游戏角色生成器
- MATLAB实现变邻域搜索算法源码解析
- 探索C++并行编程:使用INTEL TBB的项目实践
- 玫枫跟打器:网页版五笔打字工具,提升macOS打字效率
- 萨尔塔·阿萨尔·希塔斯:SATINDER项目解析
- 掌握变邻域搜索算法:MATLAB代码实践
- saaraansh: 简化法律文档,打破语言障碍的智能应用
- 探索牛角交友盲盒系统:PHP开源交友平台的新选择
- 探索Nullfactory-SSRSExtensions: 强化SQL Server报告服务
- Lotide:一套JavaScript实用工具库的深度解析
- 利用Aurelia 2脚手架搭建新项目的快速指南
- 变邻域搜索算法Matlab实现教程
- 实战指南:构建高效ES+Redis+MySQL架构解决方案
- GitHub Pages入门模板快速启动指南
- NeonClock遗产版:包名更迭与应用更新