-
點陣原理是LED的兩端都接IO,當正極為1,負極為0時,對應的LED亮起。
以下是 8 8 的 LED 點陣程式,參考一下。
#include
#define uchar unsigned char#define uint unsigned intuchar code tab={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0xfe,0x82,0x80,0xc0,0x00,0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,0x00,0x02,0x0e,0x72,0x80,0x70,0x0e,0x02,0x00,0x00,0x82,0xfe,0x92,0xba,0x82,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
delay(uint t)
uint a,b;
for(a=0;afor(b=0;b<110;b++)void main(void)
uint i,j,xx;
uchar bittemp=0x01;
while(1)
for(i=0;i<40;i++)
for(xx=0;xx<500;xx++)bittemp=0x80;
for(j=0;j<8;j++)
p2=0x00;衝 裁。
p0= ~tab[i+8-j];
p2 = bittemp;
bittemp >>= 1;
-
我可以幫你!
-
你可以來找我,我以前做過產品,我可以告訴你我的經驗嗎?
-
程式和具體電路可以結合起來看問題,有一種方法可以做到不用專門研究**和電路:把你除錯用的所有漢字都改成0xff,看看漢字的位置是否全部顯示出來,然後把第乙個位元組改成0x00或0xef,看看對應的顯示是否正確, 您還可以更改其他位元組的點陣。這樣,您就可以找出問題所在!
第 7-15 行是漢字的下半部分,所以讓我們看看程式和電路。
-
沒有必要專門研究**和電路:把你除錯用的漢字點陣全部改成0xff,看看漢字的位置是否全部顯示出來,然後把第乙個位元組改成0x00或0xef,看看對應的顯示是否正確,也可以把其他位元組的點陣改成點陣。 這樣,您就可以找出問題所在!
第 7-15 行是漢字的下半部分,所以讓我們看看程式和電路。
-
???您想用發光二極體模擬這樣的功能嗎?
-
1.基於51的點陣屏顯示: (1)點亮第乙個8*8點陣:
1.首先,在 Proteus、AT89C LS138、Matrix-8*8-Green 下選擇我們需要的元件(此處使用綠色點陣)。 在 Proteus 中
8*8點陣有四種顏色,分別是矩陣-8*8-綠色、矩陣-8*8-藍色和矩陣-8*8-橙色
matrix-8*8-red。
請記住:紅色的是上下選擇; 選擇以下顏色作為其他顏色的上行空間! 所有的點都選擇在高列和低行中!
也就是說,如果乙個點位於低行訊號和高列訊號中,則該點被點亮! 這個結論是我們程式設計的基礎。
2.選擇以上三個元件後,我們開始接線,如下圖所示:
這裡 P2 是列選擇,P3 作為行選擇連線到 38 解碼器。
選擇38解碼器的原因:38解碼器每次都可以輸出對應IO口的低電平,正好與點陣屏的低電平相反,並節省了IO口,極大地方便了我們的程式設計和未來的擴充套件。
3.讓我們先點亮它,看看乙個簡單的程式:
點亮奇數行和偶數列的點,效果如下圖)。
這是來源
**8*8LED點陣屏顯示***
#include
voiddelay(int
z) 延時功能。
voidmain()
上面的程式實現了點亮這個 8*8 點陣的奇數行和偶數列的點的功能。 關鍵點是看while迴圈,首先選擇線p3=0,此時38解碼器的輸入端為000,則輸出端為01111111,即b0端為低,此時選擇點陣屏的第一行, 然後我們被選中將0x55分配給 P2 埠,即 01010101,然後選擇偶數列,然後是延遲。然後糾正第一對。
第三行、第五行和第七行在同一列中被選中。 這將點亮奇數行和偶數列相交的點陣螢幕。
學完這個程式後,我們會發現,其實點陣屏的原理就是這麼簡單,而且和數碼管的動態顯示非常相似,只是方式不同而已。
對不起,我通過了三次**,沒有傳下去,鬱悶! 希望大家能理解哈!
但是,我的空間中有乙個 word 文件。
-
h應關閉圖形顯示功能,可以檢視LCD資料表。
2.本程式是通過判斷P1 7的引腳來判斷液晶是否繁忙。 這沒有問題。 P1 不能永遠0xff。
如果您的 P1 插槽中有資料更改,即使您先將其全部設定為 1,它也會立即更改為不同的狀態,並且不會一直0xff所有資料。
3.反向顯示意味著背景是黑色的,要顯示的字元是白色的,這與通常的顯示正好相反。
-
問題 1:請參考 LCD 手冊。
問題 2:busy 是乙個變數,其值等於 p1 的最高位數。 p1=0xff 是 51 需要的命令,如果要讀取外部電平,必須先將高電平寫到那個口中。 這是由於內部上拉電阻的影響。
您可以參考教科書來了解 IO 埠的結構。 你把高寫給P1,然後讀它,這是它的實際電平值,可能是高的,也可能是低的。 busy 是液晶輸出的電平值,不忙時為 0
問題。 3. 你看過電影嗎? 這就是反轉的效果,說白了,就是黑白顛倒。
-
呵呵 如上所述,51的嘴巴有些很特別,你輸出的電平不高,你看不懂外部電平。 這是雙向埠的缺點。 從概念上講不容易理解。
這感覺很奇怪,但當你仔細觀察這些埠的內部硬體結構時,你就會明白它。 這非常有趣,你可以做乙個非常靈活的設計。
-
問題 1:我不知道您的 LCD 控制器是什麼,但您應該檢視該控制器的文件以獲取非常詳細的說明;
問題2:51 MCU I O口既可以是輸入也可以是輸出,當你想讀取外部輸入資料時,先把對應的位置放在高位,如果外部資料低,它會拉下對應的引腳,不管你原來寫的是什麼,0xff還是0x00,所以LCD在不忙的時候都會把引腳拉低。
問題3:反向顯示是指背景和要顯示的資料完全顛倒,使原來顯示的顏色變成背景色,原來的背景色變成資料顏色。
-
51當使用微控制器作為輸入埠時,必須使用IO埠作為輸入埠,因為要判斷顯示屏的狀態,所以必須將IO埠,也就是您程式中的P1埠設定為輸入埠。
在顯示屏上,通常是我們看到的字元的痕跡被點亮,而反向顯示則恰恰相反,就是點亮看不見的部分。 和郵票一樣,有凸有凹,如果我們說正常顯示是凸,那麼反向顯示就是凹顯示。
-
這是16x16點陣顯示的漢字,如果想16x16顯示溫度可以加一下,但是顯示起來不是很好,有關於溫度的程式也可以在我的**上找到。或。
-
您的硬體電路是什麼樣的,使用哪些 IO 埠?
-
我沒有讀過你的程式,我無法理解它。
我認為如此:
1:詞塊是第乙個詞的圖形顯示,即乙個詞以圖形方式顯示。
如果使用 4 個 8*8 點組成 16*16 點陣,則乙個單詞被分成 4 個單詞塊。
2:您可以使用行來控制列掃瞄,也可以使用列來控制行掃瞄。
例如,這個大字元被分成四個並分別掃瞄。
首先,您需要了解點陣顯示的原理。
8*8點陣應顯示圖片,通常以掃瞄的形式顯示。 晶格內部發光陣列每一排的陰極連線在一起,形成一條共同的陰極線; 每個縱向陽極連線在一起,形成一條共同的正極線。 這樣,8*8點陣共有8條共陰線和8條共陽線。 >>>More
這暗示了第 12、13 和 14 行中存在語法錯誤。 雙擊提示,您將被重定向到相應的行。 檢查標點符號是否為英文格式,說明是否合法等。 >>>More
前兩句話是自定義字元。
設定起始位址0x40後,可以寫入8位元組的點陣資料,即形成乙個字元。 >>>More