這個是用STC89C52RC單片機和兩個74HC573,P1控制點陣的八列共陰管腳,P2控制八行共陽管腳,通過逐列掃描顯示心形,沒有問題。但是,我用P0口替換P1口就出問題了,如下圖:
我已經加了一排10K歐姆的電阻了,P0和P1的輸出是完全一樣的,但是顯示變成了一大片亮的。
程序代碼如下:
#include
/*延時函數,用來延時**ms的時間*/
void delayms (unsigned int xms)
{
unsigned int i;
unsigned int j;
for (i = xms;i > 0 ; i--)
{
for (j = 110 ; j > 0 ; j--);
}
}
/*main函數,控制8*8點陣顯示*/
void main (void)
{
/*顯示心形,靠左邊,第234567行*/
unsigned char code love_x[] = {
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,};
unsigned char code love_y[] = {
0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00,};
int i;
P0 = 0XFF;
while (1)
{
for (i = 0;;)
{
P2 = 0X00;
P0 = love_x[i];
P1 = love_x[i];
P2 = love_y[i];
delayms(1);
i += 1;
if (i == 8)
{
i = 0;
}
} /*'for' over*/
}
}
代碼貼上來縮進全沒了