這次的程式是通過控制led點陣,點亮乙個+號。我們使用的是乙個8×8的電子,需要操作16bit,實現對行和列的管理,這點其實和矩陣按鍵是有些類似,只不過乙個是輸入,乙個是輸出,都是通過逐行掃瞄實現的(矩陣按鍵由於每次只檢查乙個按鍵,也可以使用行列掃瞄)。
下面是led點陣的原理圖
從上圖可以看出,每乙個led都是乙個發光二極體,要讓某乙個led發光,就需要在一端設定為高電平(1),另一端是低電平(0);按照上圖的實現,行是要設定為高電平,列設定為低電平,行列交叉的led就會被點亮。每次可以控制一行或一列的led,然後進行逐行或逐列掃瞄即可。
下面是實現**:
#include
#include
typedef
unsigned
int u16;
typedef
unsigned
char u8;
sbit ser=p3^4;
sbit srclk=p3^6;
sbit rclk=p3^5;
#define leds p0
u8 tmp,i;
u8 lednum;
u8 plus[8]
=;//顯示+號需要一次顯示的內容
void
hc595sendbyte
(u8 byte)
//這個函式是用來傳送串轉並的資料,每次傳送乙個位元組,對應8個行引腳
rclk=0;
//讓rclk輸入乙個上公升沿,並口輸出資料
rclk=1;
}void
delay_ms
(u16 n)
}void
main()
}
上面就是led點陣的實現**了,是通過逐列掃瞄實現的,當然也可以通過逐行事項,需要注意的就是殘影的消除。 自學51微控制器 7 LED點陣學習
3 取模軟體簡單介紹 4 點陣動畫顯示 5.收穫 led點陣由多個led小燈構成,以8 8led點陣介紹,實物圖和內部原理圖如下。圖7 2左側8個引腳為內部led小燈陽極,上側8個引腳為陰極。點亮led點陣與點亮led小燈原理相似,根據led點陣電路圖分析即可,詳細見第三章。利用定時器中斷和數碼管動...
51微控制器LED點陣重影(74HC595)
如下 include include intrins.h typedef unsigned char u8 typedef unsigned int u16 sbit srclk p3 6 sbit rclk p3 5 sbit ser p3 4 u8 a u16 code c u16 code b...
51微控制器控制LED顯示漢字
2007 12 25 12 34 26 用51微控制器控制led顯示漢字,電路中行方向由p0口和p2口完成掃瞄,由於p0口沒有上拉電阻,因此接乙個4.7k 8的排阻上拉。如沒有排阻,也可用8個普通的4.7k 1 8w電阻。為提供負載能力,接16個2n5551的npn三極體驅動。列方向則由4 16解碼...