PIC单片机双机异步通信程序设计与实现

0 下载量 111 浏览量 更新于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单片机的串行通信设计非常有帮助。