樓主主函數寫法不規范導致的異常。
- #include<reg51.h>
- #define u16 unsigned int
- #define u8 unsigned char
- sbit SH_CP=P2^0; //595_11腳
- sbit DS=P2^1; //595_14腳
- sbit ST_CP=P2^2; //595_12腳
- sbit K1=P1^0;
- unsigned char shengduan[10]={0x02,0x9F,0x24,0x0C,0x98,0x48,0x40,0x1E,0x00,0x08};
- void delay(u16 y)
- {
- u16 i,j;
- for(i=0;i<y;i++)
- {
- for(j=0;j<120;j++);
- }
- }
- void HC595SendByte(u8 dat)
- {
- unsigned char a;
- SH_CP=0;
- ST_CP=0;
- DS=0;
- for(a=0;a<8;a++)
- {
- DS=dat<<7;
- dat>>=1;
-
- SH_CP=1;
- delay(1);//延時
- SH_CP=0;
- delay(1);//延時
- }
- ST_CP=1;
- delay(1);
- ST_CP=0;
- }
- void main(void) //主函數
- {
- u8 num;
- // u8 i; //沒有使用的變量,還不能刪
- while(1)
- {
- if(K1==0)
- {
- delay(10);
- if(K1==0)
- {
- num++;
- if(num==10)
- num=0;
- while(!K1);
- }
- }
- // while(!K1);
- HC595SendByte(shengduan[num]);
- // delay(1);//延時
- }
- }
復制代碼 |