pic单片机学习之spi操作数码管-皇冠最新app版本

×
单片机 > 单片机程序设计 > 详情

pic单片机学习之spi操作数码管

发布时间:2025-02-17 发布时间:
|

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

 

__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;

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

}



『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』

网站地图