📄 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 + -