zoukankan      html  css  js  c++  java
  • PIC单片机学习之SPI操作数码管

    /****************************
    现象:通过查询的方式利用SPI接口实现对74HC595的操作,并在数码上显示。
    *****************************/
    #include <pic.h>
    #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;

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

    }

  • 相关阅读:
    Dubbo 节点telnet测试
    node.js 文件下载
    node.js获取ip及mac
    excel中根据A列筛选B列填充C列
    django在读取数据库时未筛选到符合条件的记录会报错
    django分页功能
    django中命令行调试程序
    Python中if-else的多种写法
    python自定义函数的参数之四种表现形式
    python类变量和实例变量的区别
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1905177.html
Copyright © 2011-2022 走看看