PIC16F877单片机外围功能模块实战指南

需积分: 33 1 下载量 80 浏览量 更新于2024-10-23 收藏 163KB PDF 举报
"pic877的外围功能模块资料" 这篇资料主要介绍了 PIC16F877 这款单片机的外围功能模块及其应用,包括简单应用实例、MSSP模块(Master Synchronous Serial Port)在SPI工作方式下的功能以及相关的程序示例。这份资料适合电子爱好者和初学者学习,旨在帮助他们快速掌握电子工艺和单片机编程。 1. **简单应用实例**: 在这个例子中,讲解了如何使用 PIC16F877 的 PORTD 口控制8个发光二极管。通过设置 TRISD 寄存器为0,将 PORTD 设置为输出模式,然后在循环中改变 PORTD 的值来点亮或熄灭LED。代码中的 `TRISD=0X00` 表示所有 PORTD 管脚都被配置为输出,`PORTD=0XF0` 则用于点亮前4个LED,熄灭后4个。 2. **MSSP模块SPI方式功能**: MSSP 模块是 PIC16F877 单片机中的一个多功能串行接口,支持SPI通信协议。SPI 初始化程序通过设置 PIR1 和 SSPCON 寄存器来开启SPI功能,并设定波特率和时钟极性。SPIINIT() 函数中,`SSPCON=0x30` 代表 SPI 开启,时钟极性CKP设为0,时钟频率为FOSC/4。`SSPSTAT=0xC0` 用于配置SPI状态,而 `TRISC=0x00` 则将SCK和SDO引脚设为输出。 3. **程序清单**: 提供了一个在实验板上已验证过的程序,用于在8个LED上依次显示数字1到8。程序中使用了一个静态数组 `table` 存储了每个数字对应的LED码,通过SPI接口发送数据。`PORTAIT` 宏定义实现了位操作,方便地址定位。`SPIINIT()` 函数用于初始化SPI接口,确保其正常工作。 通过这份资料,读者可以了解 PIC16F877 的基本操作,包括IO口配置、SPI通信的初始化和数据传输,从而在实际项目中灵活应用。对于想要深入学习单片机编程和电子设计的人来说,这是一份非常有价值的参考资料。