led點陣點亮一個點
開發(fā)板led點陣模塊電路圖如下:
74HC595:74HC595是一個8位串行輸入、并行輸出的位移緩存器。芯片第11角為數(shù)據(jù)輸入時鐘線,上升沿有效。芯片第12腳為輸出存儲器鎖存時鐘線,上升沿有效。芯片第13腳為輸出有效(低電平)。芯片第14腳為串行數(shù)據(jù)輸入。
為表示出輸入74HC595的8位二進制數(shù),開發(fā)板加入了led模塊(圖一中綠色所示)。若要使led發(fā)光,則需將JP595接vcc。
OE為輸出有效控制端,低電平有效,所以務(wù)必將JOE短接片短接到GND端。
_nop_();函數(shù)為延時一個機器周期,所對應(yīng)頭文件為intrins.h
#include《reg52.h》#include《intrins.h》#define uc unsigned charsbit srclk=P3^6;sbit rclk=P3^5;sbit ser=P3^4;void c74hc595(uc dat){ uc i; srclk=rclk=0; for(i=1;i《=8;i++) { ser=dat》》7; dat《《=1; srclk=1; _nop_(); srclk=0; } rclk=1; _nop_(); rclk=0;}void main(){ c74hc595(0x80); P0=0x7f; while(1);}
LED8X8點陣顯示數(shù)字0-9數(shù)字
下面是電路圖:
/* 名稱:8X8LED點陣顯示數(shù)字
說明:1.8X8LED點陣屏循環(huán)顯示數(shù)字0~9,刷新過程為動態(tài)變換完成。
2.行掃描為XX,接P1口,列掃描為YY,接P3口
*/
#include《reg51.h》
#include《intrins.h》
#define uchar unsigned char
#define uint unsigned int
uchar code XX[]=
{
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, //0
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, //1
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, //2
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, //3
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, //4
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, //5
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, //6
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00, //7
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00 //9
};
uchar code YY[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar i,k,j,t=0,Num_Index;
void yanchi(uchar ms)
{
while(ms--)
{
for (i=0;i《100;i++);
}
}
//主程序
void main()
{
while(1)
{
for(t=0;t《10;t++)
{
for(j=0;j《50;j++)
{
for(k=0;k《8;k++)
{
P1=YY[k];
P3=~XX[t*8+k];
yanchi(2);
}
}//**************************0
}
}
}
/*******************************************************************************************/
#include《reg51.h》
#include《intrins.h》
#define uchar unsigned char
#define uint unsigned int
uchar code XX[]=
{
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, //0
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, //1
0x00,0x21,0x43,0x45,0x49,0x31,0x00,0x00, //2
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, //3
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, //4
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, //5
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, //6
0x00,0x40,0x40,0x4f,0x50,0x60,0x00,0x00, //7
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00 //9
};
uchar code YY[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uint i,k,j,t;
void yanchi(uchar ms)
{
while(ms--)
{
for (i=0;i《100;i++);
}
}
//主程序
void main()
{
while(1)
{
for(t=0;t《200;t++)
{
for(j=0;j《20;j++)
{
for(k=0;k《8;k++)
{
P1=YY[k];
P2=~XX[(t%10)*8+k];
P3=~XX[((t%100)/10)*8+k];
P0=~XX[(t/100)*8+k];
yanchi(2);
}
}//**************************0
}
}
}
責任編輯:YYX
評論
查看更多