理论教育 主控发送模式的程序设计实例

主控发送模式的程序设计实例

时间:2023-10-19 理论教育 版权反馈
【摘要】:本节通过一个用SPI接口控制74HC595芯片的例子来介绍主控发送模式的编程方法。用SPI模块控制移位寄存器芯片74HC595,使数码管显示0。图10-4 SPI模块控制移位寄存器实验电路图题意分析●本程序中用到了一个8位的移位寄存器芯片74HC595,其功能是移位时钟SH_CP端每出现一个上升沿,会使Q7'=Q7,Q7=Q6,…RC0用来控制74HC595的锁存信号,所以也应为输出。当SPI主控发送模式配置正确后,把0x3F送到SSPBUF就会自动启动一次数据发送。启动VSM后运行程序。

主控发送模式的程序设计实例

本节通过一个用SPI接口控制74HC595芯片的例子来介绍主控发送模式的编程方法。

【例10-1】电路如图10-4所示。用SPI模块控制移位寄存器芯片74HC595,使数码管显示0。

电路图在光盘位置:“\Example\Chapter10\S101\SPI74595.DSN”。

978-7-111-33274-9-Chapter10-12.jpg

图10-4 SPI模块控制移位寄存器实验电路图

题意分析

●本程序中用到了一个8位的移位寄存器芯片74HC595,其功能是移位时钟SH_CP(ShiftClockPulse)端每出现一个上升沿,会使Q7'=Q7,Q7=Q6,…,Q1=Q0,Q0=DS。当ST_CP(StoreClockPulse)出现上升沿时会把数据输出到Q7'、Q7、Q6、…、Q0上。具体使用方法参考74HC595的数据手册。74HC595数据手册在光盘位置:“\Example\Chapter10\S101\74HC595.PDF”。

●由于PIC16F877是主控方,所以应该由单片机提供时钟,RC3/SCK为输出,RC5/SDO为输出。RC0用来控制74HC595的锁存信号,所以也应为输出。

●要使数码管显示0,74HC595应该输出0的字形码,即0x3F,此值应该由单片机发送给74HC595芯片,所以本例中单片机要发送的数据就是0x3F。当SPI主控发送模式配置正确后,把0x3F送到SSPBUF就会自动启动一次数据发送。(www.daowen.com)

设计过程

1)用MPLAB新建项目S101,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S101”文件夹下。

2)新建main.c文件并加入项目中,其内容如下所示(本项目所有源码内容参考光盘“\Example\Chapter10\S101”文件夹内容)。

978-7-111-33274-9-Chapter10-13.jpg

978-7-111-33274-9-Chapter10-14.jpg

3)把项目保存后成功编译出目标文件。然后用调试工具Proteus VSM加载SPI74595.DSN。启动VSM后运行程序。程序运行效果是数码管X1上会显示0的字形。

4)读者可以用示波器观察SCK和SDO的输出波形来具体理解SPI的工作过程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈