⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.c

📁 PIC单片机的SPI通信子程序
💻 C
字号:
硬件连接如下:PIC16F877:                74HC595

                                           RA5--ST_CP

                                           RC3/SCK--SH_CP

                                          RC5/SDO--DS

74HC595其他引脚MS接高电平,OE接低电平。

#include  <pic1687x.h>
//*该程序用于在8个LED上依次显示1~8等8个字符*/
const int table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};
unsigned  char  data; 
//*spi初始化子程序*/
void  SPIINIT()
{
 PIR1=0;  
 SSPCON=0x30;   //* SSPEN=1;CKP=0 , FOSC/4 */
 SSPSTAT=0xC0;
 TRISC=0x00;   //*SDO引脚为输出,SCK引脚为输出*/
}
//*系统各输入输出口初始化子程序*/
void initial()
{
 TRISA=0x00;   //*A口设置为输出*/
 INTCON=0x00;   //*关闭所有中断*/
 RA5=0;  //*LACK送低电平,为锁存做准备*/
}
//*SPI发送子程序*/
void   SPILED(int data)
{
 SSPBUF=data;   //*启动发送*/
 do
 {
          ;
 }while(SSPIF==0);  //*等待发送完毕*/
SSPIF=0;    //*清除SSPIF标志*/
}
//*主程序*/
main()
{
 unsigned int  i;
 initial();           //*系统初始化*/
 SPIINIT();    //*SPI初始化*/ 
  for(i=8;i>0;i--)   //*连续发送8个数据*/
   {
  data=table[i];   //*通过数组的转换获得待显示的段码*/ 
  SPILED(data);  //*发送显示段码显示*/  
   }
 RA5=1;    //*最后给锁存信号,代表显示任务完成*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -