?? ps7219.txt
字號:
sbit load =P3^3; // data load in
sbit da =P3^4;
sbit clk =P3^5; // Define the 5*LED and the linght
void ledini(void)
{
DELAY(2000);
load=0;
DELAY(10);
TRT(15,10); /* Intensity */
DELAY(10);
TRT(4,11); /* Scan Limit */
DELAY(10);
TRT(31,9); /* Decode Mode */
DELAY(10);
TRT(1,12); /* Shut down */
DELAY(10);
}
void DISP(unsigned int num) reentrant
{unsigned char bcd1,bcd2,bcd3,bcd4;
if (num>999)
{bcd1=num/1000;
bcd2=(num-bcd1*1000)/100;
bcd3=(num-bcd1*1000-bcd2*100)/10;
bcd4=(num-bcd1*1000-bcd2*100-bcd3*10);
}
else if (num>99)
{bcd1=15;
bcd2=num/100;
bcd3=(num-bcd2*100)/10;
bcd4=(num-bcd2*100-bcd3*10);
}
else if (num>9)
{bcd1=15;
bcd2=15;
bcd3=num/10;
bcd4=(num-bcd3*10);
}
else
{bcd1=15;
bcd2=15;
bcd3=15;
bcd4=num;
}
TRT(bcd1,1);
TRT(bcd2,2);
TRT(bcd3,3);
TRT(bcd4,4);
}
void TRT(unsigned char date, unsigned char address) reentrant
{ unsigned char i ,j;
j=EA;
EA=0;
load=0;
NOP();
for (i=0;i<8;i++)
{ clk=1;
da=(bit)(address&0x80);
address=address<<1;
DELAY(1);
clk=0;
DELAY(1);
}
DELAY(10);
for (i=0;i<8;i++)
{ clk=1;
DELAY(1);
da=(bit)(date&0x80);
date=date<<1;
DELAY(1);
clk=0;
load=1;
DELAY(1);
}
clk=1;
DELAY(2);
EA=j;
}
void DELAY(int t) reentrant
{int i,j ;
for(i=0;i<t;i++) /*延時1ms*/
{if (t>50) WATCHDOG();
for(j=0;j<30;j++);
}
}
void NOP(void) /*Nop Operate */
{
;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -