HC595 pic 16f887显示数字2345,结果变成流水灯显示2345,怎么办
#include <pic.h> //调用头文件,可以去PICC软件下去查找PIC16F88X单片机的头文件
__CONFIG(XT&WDTDIS&LVPDIS&BORDIS); //定义配置字,
#define CLK RB3
#define DATA RB4
#define LOAD RB5
#define key0 RB0
#define key1 RB1
#define key2 RB2
const unsigned char LED[11]=
{
~0x3f, //0
~0x06, //1
~0x5b, //2
~0x4f, //3
~0x66, //4
~0x6d, //5
~0x7d, //6
~0x07, //7
~0x7f, //8
~0x6f, //9
~0x80, //.
};
void delay1(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
{
for(j=0;j<10;j++);
}
}
/*HC595控制LED*/
void senddata(unsigned char x,unsigned char y)//y值为LED_ENBLE=1,2,4,8分别对应第1,2,3,4位LED
{
unsigned char i;
PORTB=0;
NOP();
NOP();
for(i=0;i<8;i++)
{
if((x<<i)&0x80)DATA=1;
else
DATA=0;
CLK=0;
NOP();
CLK=1;
}
LOAD=0;
NOP();
LOAD=1;
PORTD=((PORTD&&0)|~y);
}
void main(void)
{
ANSEL=0X00; //所有IO为数字IO
ANSELH=0X00; //所有IO为数字IO
OSCCON=0X08;
TRISB=0B00000111; //RB3-5设置为输出
TRISD=0B00000000;
senddata(LED[2],1);
senddata(LED[3],2);
senddata(LED[4],4);
senddata(LED[5],8);
}
#include <pic.h> //调用头文件,可以去PICC软件下去查找PIC16F88X单片机的头文件
__CONFIG(XT&WDTDIS&LVPDIS&BORDIS); //定义配置字,
#define CLK RB3
#define DATA RB4
#define LOAD RB5
#define key0 RB0
#define key1 RB1
#define key2 RB2
const unsigned char LED[11]=
{
~0x3f, //0
~0x06, //1
~0x5b, //2
~0x4f, //3
~0x66, //4
~0x6d, //5
~0x7d, //6
~0x07, //7
~0x7f, //8
~0x6f, //9
~0x80, //.
};
void delay1(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
{
for(j=0;j<10;j++);
}
}
/*HC595控制LED*/
void senddata(unsigned char x,unsigned char y)//y值为LED_ENBLE=1,2,4,8分别对应第1,2,3,4位LED
{
unsigned char i;
PORTB=0;
NOP();
NOP();
for(i=0;i<8;i++)
{
if((x<<i)&0x80)DATA=1;
else
DATA=0;
CLK=0;
NOP();
CLK=1;
}
LOAD=0;
NOP();
LOAD=1;
PORTD=((PORTD&&0)|~y);
}
void main(void)
{
ANSEL=0X00; //所有IO为数字IO
ANSELH=0X00; //所有IO为数字IO
OSCCON=0X08;
TRISB=0B00000111; //RB3-5设置为输出
TRISD=0B00000000;
senddata(LED[2],1);
senddata(LED[3],2);
senddata(LED[4],4);
senddata(LED[5],8);
}