您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > PIC单片机学习之SPI操作数码管 -
本文所属标签:
为本文创立个标签吧:

PIC单片机学习之SPI操作数码管 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]/****************************现象:通过查询的方式利用SPI接口实现对74HC595的操作,并在数码上显示。*****************************/#include #include "../head/config.h" //包含自己的配置头文件__CONFIG(HS&WD

/****************************
现象:通过查询的方式利用SPI接口实现对74HC595的操作,并在数码上显示。
*****************************/
#include
#include "../head/config.h" //包含自己的配置头文件

本文引用地址: http://www.21ic.com/app/mcu/201808/782783.htm

__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);//对熔丝位进行设置

uchar data_temp;
//单片机LED共阳极段码表(带小数点) 0~9
const char table1[]={0X0A,0XFA,0X8C,0XA8,0X78,0X29,0X09,0XBA,0X08,0X28};
//数码管位码表
const char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//端口初始化子程序
void SPI_init(void)
{
PIR1 = 0x00; // SSPIF=0;没有中断发生
SSPCON = 0x30; //主控方式,Fosc/4,CKP=1空闲时钟电平为高,SSPEN=1使能同步串行功能
SSPSTAT = 0xC0; //SMP=1 时序信号末尾采样输入数据,CKE=1时序信号上升沿发送数据
TRISC = 0x00; //SDO引脚为输出,SCK引脚为输输出,SDI引脚输出
}
//SPI发送数据子程序
void SPI_tx(uchar spi_data)
{
SSPBUF = spi_data;
do
{
;
}while(!SSPIF);//等待产生SSP中断,等待发送完成
SSPIF=0;
data_temp=SSPBUF;//将接受到的数据放在变量中
}

void main(void)
{
uchar i;
SPI_init();
while(1)
{
for(i = 0;i < 8;i++)
{
RC4=0;

SPI_tx(table[i]); //先发送位选码
SPI_tx(table1[i+2]); //再发送要显示的数据

RC4=1;

}
} //最后给出锁存信号。任务完成

}




              查看评论 回复



嵌入式交流网主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > PIC单片机学习之SPI操作数码管 -
 

"PIC单片机学习之SPI操作数码管 -"的相关文章

网站地图

围观()