無標題.jpg (126.99 KB, 下載次數: 42)
下載附件
2022-1-15 08:35 上傳
- #include <reg51.h>
- //定義74HC595控制管腳
- sbit SCK=P3^6;
- sbit RCK=P3^5;
- sbit SER=P3^4;
- unsigned char matrixLED1[]={0x10,0x38,0x7c,0xfe,0x38,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//LED點陣高電平端口數據
- unsigned char temp[8];
- unsigned char matrixLED0[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED點陣低電平端口數據
- void delay(unsigned int a)
- {
- while(a--);
- }
- void col_data(unsigned char dat)
- {
- unsigned char i=0;
- for(i=0;i<8;i++)//循環8次即可將一個字節寫入寄存器中
- {
- SER=dat>>7;//!優先傳輸一個字節中的高位
- dat<<=1;
- SCK=0;
- delay(1);
- SCK=1;
- delay(1); //上升沿時數據移位
- }
- RCK=0;
- delay(1);
- RCK=1;
- }
- void main()
- {
- unsigned char i,j,k;
- while(1)
- {
- P0=0x00;
- col_data(matrixLED0[i]);
- P0=matrixLED1[i];
- i=++i%8;
- delay(100);
- j++;
- if(j>=100)
- {
- j=0;
- matrixLED1[16]=matrixLED1[0];
- for(k=0;k<16;k++)
- matrixLED1[k]=matrixLED1[k+1];
- }
- }
- }
復制代碼
|