?? wl001.c
字號:
#include <led.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(unsigned int ms);
void alldie(unsigned int ms);
void alllight(unsigned int ms);
void dotlight(unsigned char pp0, unsigned char pp1);
void MatrixDisplay(struct Character *ptr, unsigned char size, unsigned char rev);
void worddisplay(unsigned char word,unsigned int ms, unsigned char rev);
void decode(struct Character *ptr, unsigned char size);
void sendbyte(unsigned char byte);
void out595(void);
unsigned int ledup,leddown;
//------------------------------------------------------------------------
main()
{
uchar temp=0x00;
uchar alphabet = 'A';
uint i;
alllight(2000);
alldie(2000);
alllight(2000);
alldie(2000);
while(1)
{
for(i=0; i<24; i++)
{
ledup = 6 ; leddown = 0 ;
while( ledup )
{
ledup--;
for(leddown=0; leddown<6; leddown++) worddisplay(alphabet,20,1);
}
ledup = 0 ; leddown = 6 ;
while( leddown )
{
leddown--;
for(ledup=0; ledup<6; ledup++) worddisplay(alphabet,20,1);
}
alphabet++;
//worddisplay(alphabet,100,0);
}
worddisplay(temp,200,0);
temp++;
if(temp==0x0a)temp=0x00;
}
}
//--------------------------
//-----------------------------------
void delayms(unsigned int ms)
{
uint i;
while(ms--)
{
for(i = 0; i < 5; i++);
}
}
//-----------------------
//------------------------------------------------
void sendbyte(uchar byte)
{
uchar c;
for(c=0;c<8;c++)
{
CLK=0;
DAT=byte&0x80;
byte=byte<<1;
CLK=1;
}
}
//----------------------------------------------
void out595(void)
{
RCLK=0;
nop();
RCLK=1;
}
//-----------------------------------------------
void alldie(uint ms)
{
P1=0xFF;
sendbyte(0xFF);
out595();
delayms(ms);
}
//--------------------------
void alllight(uint ms)
{
P1=0x00;
Red=0;
sendbyte(0x00);
out595();
delayms(ms);
}
//-------------------------------
void dotlight(uchar pp0, uchar pp1)
{
P1=pp1;
sendbyte(pp0);
out595();
}
//-----------------------------------------------
//----------------------------------------------------
void decode(struct Character *ptr, unsigned char size)
{
unsigned short int i,j;
unsigned char tempstart, tempqty;
tempstart=0; tempqty=0;
for(i=0; i<64; i++) LED[i]=0;
for(j=0; j<size; j++)
{
if(ptr[j].line=='H'){ tempqty = ptr[j].qty; tempstart=ptr[j].start;
while(tempqty--)
{
LED[tempstart - 1] = 1 ;
tempstart++ ;
}
}
if(ptr[j].line=='V'){tempqty = ptr[j].qty; tempstart=ptr[j].start;
while(tempqty--)
{
LED[tempstart - 1] = 1 ;
tempstart = tempstart + 8 ;
}
}
if(ptr[j].line=='L'){tempqty = ptr[j].qty; tempstart=ptr[j].start;
while(tempqty--)
{
LED[tempstart - 1] = 1 ;
tempstart = tempstart + 7 ;
}
}
if(ptr[j].line=='R'){tempqty = ptr[j].qty; tempstart=ptr[j].start;
while(tempqty--)
{
LED[tempstart - 1] = 1 ;
tempstart = tempstart + 9 ;
}
}
if(ptr[j].line=='D'){
LED[ptr[j].start - 1] = 1 ;
}
}
}
//-------------------------------------------------
//------------------------------------------------
void MatrixDisplay(struct Character *ptr, unsigned char size, unsigned char rev)
{
uint i,j;
uchar pp0,pp1;
unsigned char *tempLED;
pp0=0xef;pp1=0x7f;
decode(ptr,size);
tempLED=&LED[0];
for(i=0; i<8; i++)
{
pp1=_crol_(pp1,1);
for(j=0; j<8; j++)
{
pp0=_crol_(pp0,1);
tempLED++;
if(*tempLED==1) { dotlight(pp0,pp1); delayms(ledup); alldie(leddown); }
}
}
}
//------------------------------------------------
//------------------------------------------------
void worddisplay(uchar word,uint ms,uchar rev)
{
while(ms--)
{
if(word==0x01) MatrixDisplay(one,2,rev);
if(word==0x02) MatrixDisplay(two,5,rev);
if(word==0x03) MatrixDisplay(thr,7,rev);
if(word==0x04) MatrixDisplay(fou,3,rev);
if(word==0x05) MatrixDisplay(fiv,6,rev);
if(word==0x06) MatrixDisplay(six,5,rev);
if(word==0x07) MatrixDisplay(sev,3,rev);
if(word==0x08) MatrixDisplay(eig,7,rev);
if(word==0x09) MatrixDisplay(nin,5,rev);
if(word==0x00) MatrixDisplay(zer,4,rev);
// if(word==0xff){MatrixDisplay(test);}
if(word=='A') MatrixDisplay(A,5,rev);
if(word=='B') MatrixDisplay(BB,6,rev);
if(word=='C') MatrixDisplay(C,5,rev);
if(word=='D') MatrixDisplay(D,4,rev);
if(word=='E') MatrixDisplay(E,4,rev);
if(word=='F') MatrixDisplay(F,3,rev);
if(word=='G') MatrixDisplay(G,6,rev);
if(word=='H') MatrixDisplay(H,3,rev);
if(word=='I') MatrixDisplay(I,3,rev);
if(word=='J') MatrixDisplay(J,3,rev);
if(word=='K') MatrixDisplay(K,3,rev);
if(word=='L') MatrixDisplay(L,2,rev);
if(word=='M') MatrixDisplay(M,4,rev);
if(word=='N') MatrixDisplay(N,3,rev);
if(word=='O') MatrixDisplay(O,4,rev);
if(word=='P') MatrixDisplay(PP,4,rev);
if(word=='Q') MatrixDisplay(Q,5,rev);
if(word=='R') MatrixDisplay(R,5,rev);
if(word=='S') MatrixDisplay(S,7,rev);
if(word=='T') MatrixDisplay(T,2,rev);
if(word=='U') MatrixDisplay(U,3,rev);
if(word=='V') MatrixDisplay(V,4,rev);
if(word=='W') MatrixDisplay(W,5,rev);
if(word=='X') MatrixDisplay(X,2,rev);
if(word=='Y') MatrixDisplay(Y,3,rev);
if(word=='Z') MatrixDisplay(Z,3,rev);
}
}
//---------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -