⑴ 單片機 8*8點陣C51程序
一.基於51的點陣屏顯示:(1)點亮第一個8*8點陣:
1.首先在Proteus下選擇我們需要的元件,AT89C51、74LS138、MATRIX-8*8-GREEN(在這里使用綠色的點陣)。在Proteus
6.9中8*8的點陣總共有四種顏色,分別為MATRIX-8*8-GREEN,MATRIX-8*8-BLUE,MATRIX-8*8-ORANGE
,MATRIX-8*8-RED。
在這里請牢記:紅色的為上列選下行選;其它顏色的為上行選下列選!而所有的點陣都是高電平選中列,低電平選中行!也就是說如果某一個點所處的行信號為低,列信號為高,則該點被點亮!此結論是我們編程的基礎。
2.在選擇完以上三個元件後,我們開始布線,具體如下圖:
這里P2是列選,P3連接38解碼器後作為行選。
選擇38解碼器的原因:38解碼器每次可輸出相應一個I/O口的低電平,正好與點陣屏的低電平選中行相對,並且節省了I/O口,大大方便了我們的編程和以後的擴展。
3.下面讓我們把它點亮,先看一個簡單的程序:
(將奇數行偶數列的點點亮,效果如下圖)
下面是源代碼:
/************8*8LED點陣屏顯示*****************/
#include<reg51.h>
void
delay(int
z)
//延時函數
{
int
x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void
main()
{
while(1)
{
P3=0;
//行選,選擇第一行
P2=0x55;
//列選,即該行顯示的數據
delay(5);
//延時
/*****下同*****/
P3=2;
//第三行
P2=0x55;
delay(5);
P3=4;
//第五行
P2=0x55;
delay(5);
P3=6;
//第七行
P2=0x55;
delay(5);
}
}
上面的程序實現了將此8*8點陣的奇數行偶數列的點點亮的功能。重點讓我們看while循環內,首先是行選P3=0,此時38解碼器的輸入端為000,則輸出端為01111111,即B0端為低電平,此時選中了點陣屏的第一行,接著列選我們給P2口賦0x55,即01010101,此時又選中了偶數列,緊接著延時。然後分別對第三、五、七行進行相同的列選。這樣就點亮了此點陣屏奇數行偶數列交叉的點。
完成這個程序,我們會發現其實點陣屏的原理是如此簡單,和數碼管的動態顯示非常相似,只不過換了一種方式而已。
對不起啦,我傳了三次圖片都沒傳上,郁悶哪!希望你能理解哈!
不過我有傳一份WORD文檔在我的空間裡面
⑵ 用51單片機做16*16點陣廣告屏設計的開題報告怎麼寫
1:Dais-PG206試驗箱,這是教學用的,應該是你們學校的實驗儀器,建議你到實驗室了解一下。
2:16×16點陣就是256個LED發光二極體集成在一塊上,16個腳接高電平16腳通過限流電阻接地,通電就亮,原理很簡單。
3:通信原理這個定義很廣泛,不過用在你的設計上用VB6.0做上位機通信程序,那必須得用到「串口通信」,做這個設計了解這個協議就足夠了,這個通訊協議肯定比你想的要簡單。
4:16×16點陣要顯示漢字,一直亮著很耗電,為了節約能源用單片機循環點亮的方式,大概一秒鍾點亮12次以上,人眼看到的基本就是一直亮的狀態,原理就是這樣,至於怎麼實現,你可以在網上下一個C程序,自己讀一遍(如果你會的話,程序不會很長,真想學的話找個人教你1天就能讀懂那個程序)。
5:鍵盤程序在網上找很多,原理就是判斷單片機引腳的電平狀態,別忘了加防抖程序。
6:整個系統的原理弄明白了,電氣圖自然就會畫了。
開題報告:談談現在廣告屏的現狀,以後的發展趨勢,本系統的大概說明字數不用太多
補充一句:畢業設計是在學校最後一次學習的機會,好好珍惜吧,即使一點不會最好還是硬著頭皮自己做,以後受益匪淺,祝你好運!