?? ledmatrix.c
字號:
#include "REGx51.H"
#include "INTRINS.H"
#define SRCLK P2_0
#define SER P2_1
#define RCLK P2_2
unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/*
unsigned char code dat[80] = {
0x0E,0x11,0x11,0x11,0x11,0x11,0x11,0x0E,
0x04,0x06,0x04,0x04,0x04,0x04,0x04,0x0E,
0x0E,0x11,0x11,0x08,0x04,0x02,0x01,0x1F,
0x0E,0x11,0x10,0x0C,0x10,0x10,0x11,0x0E,
0x08,0x0C,0x0A,0x0A,0x09,0x1E,0x08,0x08,
0x1F,0x01,0x01,0x0F,0x10,0x10,0x11,0x0E,
0x0E,0x09,0x01,0x0F,0x11,0x11,0x11,0x0E,
0x1F,0x09,0x08,0x04,0x04,0x04,0x04,0x04,
0x0E,0x11,0x11,0x0E,0x11,0x11,0x11,0x0E,
0x0E,0x11,0x11,0x11,0x1E,0x10,0x12,0x0E,
};
*/
/*
unsigned char code dat[] = {
0x00,0x00,0x7C,0xC6,0xC6,0xCE,0xD6,0xD6,
0xE6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,
0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0xC6,0x06,0x2C,0x18,0x30,
0x60,0xC0,0xC6,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0xC6,0x06,0x06,0x3C,0x06,
0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,
0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00,
0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xFC,0x0E,
0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x38,0x60,0xC0,0xC0,0xFC,0xC6,
0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0xFE,0xC6,0x06,0x06,0x0C,0x18,
0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0xC6,
0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7E,0x06,
0x06,0x06,0x0C,0x78,0x00,0x00,0x00,0x00
} ;
*/
unsigned char code dat[] = // 數據表
{
0x20,0x00,0x10,0x02,0x1F,0xFF,0x18,0x0C,
0x42,0x2C,0x23,0xFC,0x33,0x6C,0x37,0x6C,
0x07,0x6C,0x0F,0x6C,0x4B,0xEC,0x3A,0x4C,
0x30,0x0C,0x38,0x2C,0x38,0x1C,0x10,0x08,
0x01,0x80,0x01,0x82,0x7F,0xFF,0x01,0x80,
0x21,0x82,0x3F,0xFF,0x36,0x26,0x33,0x76,
0x32,0x46,0x37,0xF6,0x31,0x86,0x3F,0xFE,
0x31,0x86,0x31,0x86,0x31,0x9E,0x20,0x04,
0x04,0x10,0x1E,0x18,0x78,0x98,0x18,0xD8,
0x18,0x78,0x7E,0x58,0x19,0x18,0x3D,0x98,
0x3E,0xDA,0x3A,0x9F,0x58,0x78,0x5B,0x98,
0x18,0x18,0x18,0x18,0x18,0x18,0x10,0x10,
0x10,0x20,0x18,0x30,0x18,0x32,0x1B,0xFF,
0x7E,0x30,0x18,0x34,0x19,0xFE,0x1A,0x8C,
0x1C,0xCC,0x38,0x58,0x78,0x78,0x58,0x30,
0x18,0x78,0x18,0xCE,0x39,0x87,0x12,0x02,
0x01,0x00,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x84,0x3F,0xFE,0x01,0x80,0x01,0xC0,
0x03,0x40,0x03,0x60,0x06,0x20,0x06,0x30,
0x0C,0x18,0x18,0x0E,0x30,0x07,0x40,0x02,
0x09,0x10,0x0D,0x98,0x14,0xB2,0x3F,0xFF,
0x70,0x06,0x20,0x24,0x07,0xF0,0x00,0x60,
0x00,0xC0,0x00,0xC4,0x3F,0xFE,0x00,0xC0,
0x00,0xC0,0x00,0xC0,0x03,0xC0,0x00,0x80,
0x10,0x00,0x19,0x08,0x19,0xFC,0x19,0x98,
0x7F,0x98,0x19,0x98,0x39,0x98,0x3D,0x98,
0x3F,0x98,0x5B,0x98,0x59,0x98,0x19,0x98,
0x19,0x1A,0x1B,0x1A,0x1A,0x1F,0x14,0x0E,
0x10,0x10,0x18,0x1A,0x18,0x1B,0x1B,0xFF,
0x7D,0x58,0x19,0x58,0x3D,0x5A,0x3F,0xFB,
0x3B,0x5E,0x59,0x5E,0x59,0x4C,0x19,0x58,
0x1B,0x5D,0x1A,0x35,0x1C,0x67,0x10,0x83,
0x01,0x00,0x01,0x80,0x01,0x80,0x21,0x84,
0x3F,0xFE,0x31,0x8C,0x31,0x8C,0x3F,0xFC,
0x31,0x8C,0x31,0x8C,0x3F,0xFC,0x21,0x88,
0x01,0x82,0x01,0x82,0x01,0xFF,0x00,0xFE,
0x00,0x08,0x0F,0xFC,0x00,0x18,0x00,0x30,
0x00,0x60,0x00,0xC0,0x00,0xC2,0x7F,0xFF,
0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,
0x00,0xC0,0x00,0xC0,0x03,0xC0,0x00,0x80,
0x00,0x00,0x00,0x08,0x3F,0xFC,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x84,0x7F,0xFE,0x00,0x00,
0x06,0x82,0x3F,0xFF,0x0C,0xC6,0x0C,0xC6,
0x0C,0xFE,0x7F,0x84,0x1C,0x00,0x1E,0x7E,
0x3F,0x18,0x2D,0x18,0x2C,0x7E,0x4C,0x18,
0x0C,0x18,0x0C,0x18,0x0C,0x1A,0x0C,0xFF,
0x08,0x20,0x0C,0x30,0x0D,0x30,0x3F,0xA2,
0x0D,0x7F,0x7F,0xEC,0x0D,0x4C,0x1F,0xCC,
0x31,0xA8,0x47,0x38,0x06,0x10,0x0F,0xB8,
0x76,0x6C,0x26,0x46,0x0E,0x87,0x05,0x02,
0x02,0x02,0x7F,0xFF,0x18,0x6C,0x18,0x6C,
0x30,0x6C,0x22,0x6C,0x3E,0x6C,0x77,0xFF,
0x36,0x6C,0x36,0x6C,0x36,0x6C,0x3E,0xCC,
0x34,0xCC,0x21,0x8C,0x03,0x0C,0x04,0x08,
0x03,0x00,0x11,0x84,0x3F,0xFE,0x70,0x0C,
0x2F,0xF8,0x03,0x40,0x06,0x20,0x0C,0x30,
0x1F,0xF8,0x09,0x90,0x01,0x80,0x0F,0xF0,
0x01,0x80,0x01,0x80,0x01,0x84,0x3F,0xFE
};
void WriteByte(unsigned char val)
{
unsigned char m, c;
c = val;
for (m=0; m<8; m++)
{
SRCLK = 0; //拉低74HC595時鐘
_nop_();
SER = c&0x01;//發送74HC595一位串行數據
c=c>>1;
SRCLK = 1;//拉高74HC595時鐘
_nop_();//延時
}
SER = 1;//釋放數據總線
//以下3條指令若在多字節時,應該移入多字節全發送完后在執行此3條指令
}
void main(void)
{
unsigned char i, j ;
unsigned int l,k;
while(1)
{
for(j=0; j<15; j++)
{
for(l=0; l<100; l++)
{
for(i=0; i<16; i++)
{
k=j*32;;
WriteByte(dat[k+i*2+1]);
WriteByte(dat[k+i*2]);
P1= i;
RCLK = 0;
_nop_();//延時
RCLK = 1;//打入并行數據
}
}
for(l=0; l<100; l++)
{
for(i=0; i<16; i++)
{
WriteByte(0x00);
WriteByte(0x00);
P1= i;
RCLK = 0;
_nop_();//延時
RCLK = 1;//打入并行數據
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -