本帖最后由 javastory 于 2021-5-7 11:05 編輯
設計一個8*16的led共陽點陣,行用74ls164,列用74hc154,設計思想是行一次輸出8位數據,列導通,然后這一列就亮,但是現在顯示的效果是全亮,然后一列一列從左向右滅,不到16列的時候滅得就沒有規律了,不知道錯誤原因,請高手幫忙指出錯誤,謝謝,單片機代碼如下:
P2^0--3接74hc154數據端
sbit COW_1641 = P2^4; //74ls164數據輸入
sbit CLK_1641 = P2^5;
unsigned char colcount[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
unsigned char code image[16] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xB7,0xB7,0xB7,0xFF}; //字母F,縱向,正序
void delay(unsigned int delay){
unsigned char i;
for(;delay>0;delay--)
for(i=0;i<110;i++);
}
void main(){
unsigned int col,coldata;
unsigned char temp;
P2=0xff;
while ( 1 ) {
for (col=0;col<16;col++){
P2=colcount[col]; //P2^0--3輸入,各列輪流輸出低電平
temp=image[col];
CLK_1641 = 0;
for(coldata=0;coldata<8;coldata++){
CLK_1641 = 0;
COW_1641=temp&0x80;
CLK_1641 = 1;
temp<<=1;
delay(200);
}
CLK_1641 = 1;
//delay(500);
}
}
}
新手,幫忙指出錯誤原因,謝謝!
|