為什么我點陣是這樣的代碼,結果卻是這樣的
單片機源程序如下:
- #include "reg51.h"
- //#include "insrins.h"
- typedef unsigned char u8;
- typedef unsigned int u16;
- sbit SRCLK=P3^6
- sbit RCLK=P3^5
- sbit SER=P3^4
- #define LEDDZ_COL_PORT P0
- u8 heart_row[8]={0x78,0x84,0x82,0x41,0x41,0x82,0x84,0x78};
- u8 heart_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
- void delay(u16 t)
- {
- while(t--);
- }
- void Hc595SendByte(u8 d1)
- {
- u8 a;
- RCLK=1;
- for(a=0;a<8;a++)
- {
- SER=d1>>7;
- d1<<=1;
-
-
- SRCLK=1;
- delay(1);
- SRCLK=0;
- delay(1);
- }
- RCLK=0;/*必須有歸零*/
- delay(1);
- }
- void main()
- {
- int i;
- while(1)
- {
- for(i=0;i<8;i++)
- {
- LEDDZ_COL_PORT=heart_col[i];
- Hc595SendByte(heart_row[i]);
- }
-
- }
- }
復制代碼 |