|
本帖最后由 javastory 于 2021-5-7 11:05 編輯
設(shè)計(jì)一個(gè)8*16的led共陽點(diǎn)陣,行用74ls164,列用74hc154,設(shè)計(jì)思想是行一次輸出8位數(shù)據(jù),列導(dǎo)通,然后這一列就亮,但是現(xiàn)在顯示的效果是全亮,然后一列一列從左向右滅,不到16列的時(shí)候滅得就沒有規(guī)律了,不知道錯(cuò)誤原因,請(qǐng)高手幫忙指出錯(cuò)誤,謝謝,單片機(jī)代碼如下:
P2^0--3接74hc154數(shù)據(jù)端
sbit COW_1641 = P2^4; //74ls164數(shù)據(jù)輸入
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);
}
}
}
新手,幫忙指出錯(cuò)誤原因,謝謝!
|
-
led.jpg
(730.26 KB, 下載次數(shù): 60)
下載附件
2021-5-7 11:05 上傳
|