PIC驱动HC595显示的仿真及器件迁移的问题

2020-02-06 10:31发布

本人初涉PIC,开发平台为MPLAB7。5+PICC,学习板为QL200,参考某一程序驱动595,使用PIC16F887芯片仿真显示通过,但使用16f690芯片替换却不能仿真;887能仿真,使用学习板硬件试验却又无显示,烦请有相关实践经验的大大们提示一句。万分多谢以下为程序。

#include "pic.h"
void mDelay(unsigned int i);
const unsigned char LEDCODE[]=
{
        0xC0,/*0*/
        0xF9,/*1*/
        0xA4,/*2*/
        0xB0,/*3*/
        0x99,/*4*/
        0x92,/*5*/
        0x82,/*6*/
        0xF8,/*7*/
        0x80,/*8*/
        0x90,/*9*/

};

#define HC595_SER   RC2
#define HC595_SH_CP RC1        //锁存脉冲
#define HC595_ST_CP RC0        //移位脉冲

void HC595_WRITE(unsigned char Data)
{
char i;
for(i=0;i<8;i++)
  {
     if(Data&0x80) HC595_SER=1;
       else HC595_SER=0;
        HC595_ST_CP=0;
        HC595_ST_CP=1;
       Data<<=1;
  }
//HC595_SH_CP=0;
//HC595_SH_CP=1;
}

void WRITE_Data(unsigned char d,unsigned char n)
{
HC595_WRITE(LEDCODE[d]);
HC595_WRITE((1<<n));
HC595_SH_CP=0;
HC595_SH_CP=1;//锁存数据输出
}

void System_Init(void)
{
//TRISB=0x00;
TRISC=0x00;
}

void main()
{
System_Init();
while(1)
{
WRITE_Data(2,0);
mDelay(10);
WRITE_Data(0,1);
mDelay(10);
WRITE_Data(1,2);
mDelay(10);
WRITE_Data(0,3);
mDelay(10);
WRITE_Data(2,4);
mDelay(10);
WRITE_Data(0,5);
mDelay(10);
WRITE_Data(1,6);
mDelay(10);
WRITE_Data(0,7);
mDelay(10);

}

}
void mDelay(unsigned int i)
{
        unsigned int a,b;
    for(a=i;a>0;a--)
     for(b=5;b>0;b--);
}
spi.zip (37.95 KB, 下载次数: 6) 2014-7-21 16:29 上传 点击文件名下载附件



附件为两个仿真电路使用PROTEUS7。8,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。