目錄
1LED點陣屏簡紹
2? 8*8點陣屏電路圖74
3? ?74HC595芯片
4實踐編程
1LED點陣屏簡紹
?2? 8*8點陣屏電路圖74
怎么點亮,正極給高負極給低
不能同時靜態顯示,跟數碼管動態顯示一樣,反復橫跳,利用視覺效果
?3? ?74HC595芯片
串入并出:串行輸入,并行輸出
? 一個字節? ? ? ? ? ? ? ? ? ? ? A點? ? ? ? ? ? ? ? ? ? ? ? ?B點??
87654321? ? ?通道(串行)一次一個到B
并行八個通道(速度快,但是占用硬件多)
為什么要級聯?
輸出要8個io口,點陣16腳,需要2*8
595內部有一個八位移位寄存器
鎖存器:保持不閃屏
級聯輸出:3個io口輸出16位(14腳進,11,12腳出
4實踐編程
1點亮一個點
#include<reg52.h>sbit DIO = P3^4;//串行數據口
sbit S_CLK = P3^5;//移位寄存器時鐘
sbit R_CLK = P3^6;//輸出鎖存器時鐘void main()
{//ROW行0x80 COL 0xfeunsigned char i,dat;dat = 0xfe;for(i-0;i<8;i++){S_CLK = 0;R_CLK = 0;if(dat & 0x01)DIO = 1;else DIO =0;S_CLK = 1;//dat = dat>> 1;dat >>=1;}dat = 0x80;for(i-0;i<8;i++){S_CLK = 0;R_CLK = 0;if(dat & 0x01)DIO = 1;else DIO =0;S_CLK = 1;dat >>=1;}R_CLK = 1;while(1);}
?顯示一個電字
#include<reg52.h>
#include<intrins.h>sbit DIO = P3^4;//串行數據口
sbit S_CLK = P3^5;//移位寄存器時鐘
sbit R_CLK = P3^6;//輸出鎖存器時鐘unsigned char code table[8] = {0xef,0x01,0x6d,0x01,0x6d,0x01,0xee,0xe0};
//0xef,0x01,0x6d,0x01,0x6d,0x01,0xee,0xe0:電
void Send_Byte(unsigned char dat)
{unsigned char i;S_CLK = 0;R_CLK = 0;for(i=0;i<8;i++){if(dat & 0x01)DIO = 1;else DIO =0;S_CLK = 1;//dat = dat>> 1;dat >>=1;S_CLK =0;}}
void main()
{unsigned char j,ROW;while(1){ROW = 0x80;for(j=0;j<8;j++){Send_Byte(table[j]);Send_Byte(ROW);R_CLK = 1;R_CLK =0;ROW = _crol_(ROW,1);}}}
?
?