4594|1

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

PIC单片机 SPI数码管显示问题————跪求进来帮助解决一下。非常感谢!! [复制链接]

本人PIC单片机新手。   最近用dsPIC30F4013单片机做了一个电路板,其中显示部分是SPI驱动74HC595移位寄存器 数码管显示。  测试电路板的时候首先测的是显示部分,但无论怎么修改程序、配置字都不行 电路板硬件检查了 没问题。 所以很是纠结郁闷,现在都无从下手了, 求高手给解决一下。
     单片机没有外画晶振,采用的是内部FRC   目的是:驱动10个数码管从左到右依次显示9到0十个数。   显示部分电路见下图 只截了其中5个数码管。或者程序见附件。
程序如下:
/**********************************************
** 文件名  :dsPIC30F4013.c                  **
**   **
**********************************************/

#include "p30f4013.h" //ds30f4013头文件

_FOSC(CSW_FSCM_OFF&FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF&MCLR_EN);
_FGS(CODE_PROT_OFF);

const int Table2[10] = {0x82,0x9f,0xa8,0x89,0x95,0xc1,0xc0,0X8f,0x80,0x81}; // 不带小数点的显示段码表,依顺序为0-9共10个 */

const int Lengths = 1;

//系统初始化子程序,放在程序首部
void InitializeSys()
{
    SRbits.IPL = 7;         //关闭所有可屏蔽中断                               
}                                                                                                                                      

//SPI输出初始化子程序
void InitializeSPIOut()
{
//    TRISF = TRISF&0xff97;   //RF3、RF5、RF6输出
//    SPI1CON = 0x0379;       // 字节通讯模式,CKP=1,CKE=1,FOSC/32,时钟上升沿发送数据
//    SPI1STATbits.SPIEN = 1; //SPI1EN=1
//    IFS0bits.SPI1IF = 0;    // 清除SPI1IF标志

TRISF = 0X0000;   //RF3、RF5、RF6输出
            IFS0bits.SPI1IF=0;                                                /*清除SSPIF标志*/
        SPI1CONbits.MSTEN=1;
        SPI1CONbits.CKP=1;
        SPI1CONbits.SSEN=0;
        SPI1CONbits.CKE=1;
        SPI1STATbits.SPIEN=1;
}

//在十个数码管上显示Lens长度的数据
void DisplayOnLED(int Lens)
{
    int i=0;
    PORTFbits.RF5 = 0;                 //RF5送低电平,给SPIOut输出锁存做准备
    for(i=0; i     {
        SPI1BUF = Table2;
        while(SPI1STATbits.SPITBF == 1);
    }
        SPI1BUF=0xff;
        while(SPI1STATbits.SPITBF==1);
    PORTFbits.RF5 = 1;                 //给锁存信号,显示数据
}

void main()                                       
{
    InitializeSys();  
    InitializeSPIOut();
    DisplayOnLED(Lengths);
    while(1);
}   

MPLAB_4013.rar

55.74 KB, 下载次数: 21

点赞 关注
 

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
问题 以解决,,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
福禄克有奖直播:高精度测温赋能电子制造 报名中!
直播时间:2025年2月28日(周五)上午10:00
直播主题:高精度测温赋能电子制造
小伙伴们儿快来报名直播吧~好礼等你拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表