MCU C51 LED點陣顯示驅動器設計100

發布 科技 2024-08-15
15個回答
  1. 匿名使用者2024-02-01

    點陣原理是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;

  2. 匿名使用者2024-01-31

    我可以幫你!

  3. 匿名使用者2024-01-30

    你可以來找我,我以前做過產品,我可以告訴你我的經驗嗎?

  4. 匿名使用者2024-01-29

    程式和具體電路可以結合起來看問題,有一種方法可以做到不用專門研究**和電路:把你除錯用的所有漢字都改成0xff,看看漢字的位置是否全部顯示出來,然後把第乙個位元組改成0x00或0xef,看看對應的顯示是否正確, 您還可以更改其他位元組的點陣。這樣,您就可以找出問題所在!

    第 7-15 行是漢字的下半部分,所以讓我們看看程式和電路。

  5. 匿名使用者2024-01-28

    沒有必要專門研究**和電路:把你除錯用的漢字點陣全部改成0xff,看看漢字的位置是否全部顯示出來,然後把第乙個位元組改成0x00或0xef,看看對應的顯示是否正確,也可以把其他位元組的點陣改成點陣。 這樣,您就可以找出問題所在!

    第 7-15 行是漢字的下半部分,所以讓我們看看程式和電路。

  6. 匿名使用者2024-01-27

    ???您想用發光二極體模擬這樣的功能嗎?

  7. 匿名使用者2024-01-26

    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 文件。

  8. 匿名使用者2024-01-25

    h應關閉圖形顯示功能,可以檢視LCD資料表。

    2.本程式是通過判斷P1 7的引腳來判斷液晶是否繁忙。 這沒有問題。 P1 不能永遠0xff。

    如果您的 P1 插槽中有資料更改,即使您先將其全部設定為 1,它也會立即更改為不同的狀態,並且不會一直0xff所有資料。

    3.反向顯示意味著背景是黑色的,要顯示的字元是白色的,這與通常的顯示正好相反。

  9. 匿名使用者2024-01-24

    問題 1:請參考 LCD 手冊。

    問題 2:busy 是乙個變數,其值等於 p1 的最高位數。 p1=0xff 是 51 需要的命令,如果要讀取外部電平,必須先將高電平寫到那個口中。 這是由於內部上拉電阻的影響。

    您可以參考教科書來了解 IO 埠的結構。 你把高寫給P1,然後讀它,這是它的實際電平值,可能是高的,也可能是低的。 busy 是液晶輸出的電平值,不忙時為 0

    問題。 3. 你看過電影嗎? 這就是反轉的效果,說白了,就是黑白顛倒。

  10. 匿名使用者2024-01-23

    呵呵 如上所述,51的嘴巴有些很特別,你輸出的電平不高,你看不懂外部電平。 這是雙向埠的缺點。 從概念上講不容易理解。

    這感覺很奇怪,但當你仔細觀察這些埠的內部硬體結構時,你就會明白它。 這非常有趣,你可以做乙個非常靈活的設計。

  11. 匿名使用者2024-01-22

    問題 1:我不知道您的 LCD 控制器是什麼,但您應該檢視該控制器的文件以獲取非常詳細的說明;

    問題2:51 MCU I O口既可以是輸入也可以是輸出,當你想讀取外部輸入資料時,先把對應的位置放在高位,如果外部資料低,它會拉下對應的引腳,不管你原來寫的是什麼,0xff還是0x00,所以LCD在不忙的時候都會把引腳拉低。

    問題3:反向顯示是指背景和要顯示的資料完全顛倒,使原來顯示的顏色變成背景色,原來的背景色變成資料顏色。

  12. 匿名使用者2024-01-21

    51當使用微控制器作為輸入埠時,必須使用IO埠作為輸入埠,因為要判斷顯示屏的狀態,所以必須將IO埠,也就是您程式中的P1埠設定為輸入埠。

    在顯示屏上,通常是我們看到的字元的痕跡被點亮,而反向顯示則恰恰相反,就是點亮看不見的部分。 和郵票一樣,有凸有凹,如果我們說正常顯示是凸,那麼反向顯示就是凹顯示。

  13. 匿名使用者2024-01-20

    這是16x16點陣顯示的漢字,如果想16x16顯示溫度可以加一下,但是顯示起來不是很好,有關於溫度的程式也可以在我的**上找到。或。

  14. 匿名使用者2024-01-19

    您的硬體電路是什麼樣的,使用哪些 IO 埠?

  15. 匿名使用者2024-01-18

    我沒有讀過你的程式,我無法理解它。

    我認為如此:

    1:詞塊是第乙個詞的圖形顯示,即乙個詞以圖形方式顯示。

    如果使用 4 個 8*8 點組成 16*16 點陣,則乙個單詞被分成 4 個單詞塊。

    2:您可以使用行來控制列掃瞄,也可以使用列來控制行掃瞄。

    例如,這個大字元被分成四個並分別掃瞄。

相關回答
9個回答2024-08-15

首先,您需要了解點陣顯示的原理。

8*8點陣應顯示圖片,通常以掃瞄的形式顯示。 晶格內部發光陣列每一排的陰極連線在一起,形成一條共同的陰極線; 每個縱向陽極連線在一起,形成一條共同的正極線。 這樣,8*8點陣共有8條共陰線和8條共陽線。 >>>More

7個回答2024-08-15

建議將 delay:mov r1,

最好將其更改為 delay:mov r1, 200。 >>>More

4個回答2024-08-15

買我的 USB 驅動器,先把我變成最好的。

8個回答2024-08-15

這暗示了第 12、13 和 14 行中存在語法錯誤。 雙擊提示,您將被重定向到相應的行。 檢查標點符號是否為英文格式,說明是否合法等。 >>>More

16個回答2024-08-15

前兩句話是自定義字元。

設定起始位址0x40後,可以寫入8位元組的點陣資料,即形成乙個字元。 >>>More