電子線路課程設計報告(16X16LED點陣屏)_第1頁
電子線路課程設計報告(16X16LED點陣屏)_第2頁
電子線路課程設計報告(16X16LED點陣屏)_第3頁
電子線路課程設計報告(16X16LED點陣屏)_第4頁
電子線路課程設計報告(16X16LED點陣屏)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.江西理工大學應用科學學院微機控制系統課程設計報告 題 目: LED電子屏設計 姓 名: 學 號: 專業班級: 指導教師: 完成時間: 2016年6月 日設計報告綜合測試平時總評格式(10分)內容(10分)圖表(5分)功能測試(35分)答辯(20分)考勤(20分)指導教師簽名:;目錄1 設計任務和性能指標11.1 設計任務11.2 性能指標12 設計方案22.1 需求分析22.2 方案論證23 系統硬件設計33.1硬件電路組成33.2 單片機系統及外圍電路33.3 LED的顯示方式43.4 LED陣列的驅動電路54 系統軟件設計64.1 點陣左移顯示的流程圖及分析64.2系統各單元電路設計94

2、.3 字符的點陣顯示原理及字庫代碼獲取方法105調試及性能分析115.1 調試步驟115.2 仿真結果126 總結12參考文獻13附錄1 系統硬件電路圖1314附錄2 程序清單151 設計任務和性能指標1.1 設計任務1、顯示屏為16×16點陣(由四塊8×點陣模塊組成),可顯示各種圖文。2、掉電時能保存顯示的信息。3、上電后在顯示屏上順序顯示“江西理工大學應用科學學院”,當按下按鍵后顯示屏停在對應的漢字上,再次按下時,重復循環顯示。4、寫出詳細的設計報告。1.2 性能指標LED是英文light emitting diode(發光二極管)的縮寫,發光二極管的核心部分是由p型半

3、導體和 n型半導體組成的晶片,在p型半導體和n型半導體之間有一個過度層p-n結,注入的少數載流子復合時會把多余的能量以光的形式釋放出來,從而把電能直接轉換為光能。LED在我們日常生活的電器中隨處可見,極為普通也廣為人知。LED具有效率高、光線質量高、能耗小、壽命長等特點,主要可用于平面顯示領域、便攜設備顯示屏、照明以及紅外線LED領域等下游應用產品市場。LED點陣顯示器,以發光二極管為像素,它用高亮度發光二極管芯陣列組合后,環氧樹脂和塑模封裝而成。具有高亮度、功耗低、引腳少、視角大、壽命長、耐濕、耐冷熱、耐腐蝕等特點。點陣顯示器有單色和雙色兩類,可顯示紅、黃、綠、橙等色。LED點陣有 4

4、15;4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多種。根據像素的顏色的數目可分為,單基色、雙基色、三基色等,根據像素顏色的不同所顯示的文字、圖象等內容的顏色也不同,單基色點陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點陣顯示內容的顏色由像素內不同顏色發光二極管點亮組合方式決定,如紅綠都亮時可顯示黃色,如果按照脈沖方式控制二極管的點亮時間,則可實現256或更高級灰度顯示,即可實現真彩色顯示。LED點陣顯示器單塊使用時,既可代替數碼管顯示數字,也可顯示各種中西文字及符號如5×7點陣

5、顯示器用于顯示西文字母5×8點陣顯示器用于顯示中西文,8×8點陣用于顯示中文文字,也可用于圖形顯示。用多塊點陣顯示器組合則可構成大屏幕顯示器,但這類實用裝置常通過微機或單片機控制驅動。2 設計方案2.1 需求分析圖1 方案總體框圖2.2 方案論證本設計采用四塊8×8點陣模塊組成一塊16×16 LED點陣顯示屏。方案總體框圖如圖1所示,大體上可以分成微機本身的硬件、顯示驅動電路、控制信號電路三部分??刂齐娐凡糠职ㄒ粋€51 CUP和一些外圍電路。在整個電路當中此控制電路部分相當于一個上位機,它負責控制整個電路以及相應的程序的運行、與PC機的串行通訊、以及給

6、屏體電路部分發送命令。點陣顯示屏體、以及它的行和列的各個驅動電路。由于兩部分的電路在制板時可以放到一起,所以可以將其字庫放到控制電路部分使用串行通訊方式來與屏體電路部分進行數據和命令的傳送。此顯示電路采用掃描方式進行顯示時,每行有一個行驅動器,各行的同名列共用一個列驅動器。由行譯碼器給出的行選通信號,從第一行開始,按順序依次對各行進行掃描(把該行與電源的一端接通)。另一方面,根據各列鎖存的數據,確定相應的列驅動器是否將該列與電源的另一端接通。接通的列,就在該行該列燃亮相應的LED;未接通的列所對應的LED熄滅。3 系統硬件設計3.1硬件電路組成本產品采用以P89C51單片機為核心芯片的電路來實

7、現,主要由P89C51芯片、晶振電路、三極管驅動電路、按鍵控制電路、8×8 LED點陣5部分組成,電路框圖如圖1所示。其中,P89C51是一種帶4kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,工業標準的MCS一51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進行1 000次寫擦循環,數據保留時間為10年。他是一種高效微控制器,為很多嵌人式控制系統提供了

8、一種靈活性高且價廉的方案。因此,在智能化電子設計與制作過程中經常用到P89C51芯片。時鐘電路由P89C51的18,19腳的時鐘端(XTAI 1及XTAL2)以及12 MHz晶振X 、電容C2、C3組成,采用片內振蕩方式。復位電路采用簡易的上電復位電路,主要由電阻R ,R2,電容C ,開關K 組成,分別接至P89C51的RST復位輸人端。LED點陣顯示屏采用8x8共64個象素的點陣,可通過萬用表檢測發光二極管的方法測試判斷出該點陣的引腳分布。我們把行列總線接在單片機的I/O口,然后把上面分析到的掃描代碼送入總線,就可以得到顯示的字符了。我們在實際應用中是將LED點陣的8條列線通過驅動電路接在P

9、1口,8條行線通過限流電阻接在P0口。單片機89C51按照設定的程序在P1和P0接口輸出與內部字符對應的代碼電平送至LED點陣的行列線(高電平驅動),從而選中相應的象素LED發光,并利用人眼的視覺暫留特性合成整個字符的顯示。再改變取表地址實現字符的滾動顯示。3.2 單片機系統及外圍電路單片機(Microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機,這些部件包括中央處理器CPU、數據存儲器RAM、程序存儲器ROM、定時器/計數器和多種I/O接口電路。8051是MCS-51系列單片機的一個產品。MCS-51系列單片機是Intel公司推出的通用型單片機, 8051單片機的

10、基本結構3.3 LED的顯示方式LED點陣每個點都有一個紅色的發光二極管。點陣內的二極管間的連接都是行共陽,列共陰。LED點陣顯示器的顯示一般有靜態和動態顯示兩種方案,靜態方案雖然設計簡單,但其使用的管腳太多,如本設計中1616的點陣共有256個發光二極管,顯然單片機沒有這么多的端口,如果采用鎖存器來擴展端口,按8位的鎖存器來計算,1616的點陣需要256÷8=32個鎖存器。這樣在鎖存器上花的成本將比較高。因此在實際應用中的顯示屏幾乎都不采用這種設計,而采用另外一種稱為動態掃描的顯示方法。動態掃描顯示方法是逐行輪流點亮,這樣掃描驅動電路就可以實現多行的同名列共用一套列驅動器。以本設計

11、的1616點陣為例,把所有同一行的發光管的陽極連在一起,把所有同一列的發光管的陰極連在一起,先送出對應第1行發光管亮滅的數據并鎖存,然后選通第1行使其燃亮一定的時間,然后熄滅;再送出第2行的數據并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;,第16行之后,又重新燃亮第1行,反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現象,就能看到顯示屏上穩定的圖形。該方法能驅動較多的LED,控制方式較靈活,而且節省單片機的資源。采用掃描方式進行顯示時,每一行有一個行驅動器,各行的同名列共用一個驅動器。顯示數據通常存儲在單片機的存儲器中,按8位一個字節的形式順序排放。顯示時要把一

12、行中各列的數據都傳送到相應的列驅動器上去,這就存在一個顯示數據傳輸的問題。從控制電路到列驅動器的數據傳輸可以采用并行方式或串行方式。顯然,采用并行方式時,從控制電路到列驅動器的線路數量大,相應的硬件數目多。當列數很多時,并列傳輸的方案是不可取的。采用串行傳輸的方法,控制電路可以只用一根信號線,將列數據一位一位傳往列驅動器,在硬件方面無疑是十分經濟的。但是,串行傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有當一行的各列數據都以傳輸到位之后,這一行的各列才能并行地進行顯示。這樣,對于一行的顯示過程就可以分解成列數據準備(傳輸)和列數據顯示兩部分。對于串行傳輸方式來說,列數據準備時間可能相當

13、長,在行掃描周期確定的情況下留給行顯示的時間就太少了,以致影響到LED的亮度。解決串行傳輸中列數據準備和列數據顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數據的同時,傳送下一列數據。為了達到重疊處理的目的,列數據的顯示就需要具有鎖存功能。經過上述分析,就可以歸納出列驅動器電路應具有的功能。對于列數據準備來說,它應能實現串入并處的移位功能;對于列數據顯示來說,應具有并行鎖存的功能。這樣,本行已準備好的數據打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一行的列數據,而不會影響本行的顯示。3.4 LED陣列的驅動電路正向點亮一顆LED,至少也得10到20毫安,若電流不夠大,則L

14、ED不夠亮!而不管是8051的輸入還是輸出端其高態輸出電流都不是很高,不過12毫安而已。因此,很難直接高態驅動LED。這時候就需要額外的驅動電路。分別針對共陽極和共陰極LED陣列,有兩種不同的驅動方式。針對輸出態的不同,分為:高態掃描-高態顯示,高態掃描-低態顯示,低態掃描-高態顯示和低態掃描-低態顯示四種方式。本設計實際用到的是:共陰型低態掃描-低態顯示信號驅動電路。這種驅動電路采用低態掃描,也就是任何時間只有一個高態信號,其他則為低態信號。一行掃描完成之后,再把高態信號轉到臨近的其他行。掃描信號經限流電阻接到PNP晶體管的基極,晶體管的集電極接地,射極則連至LED點陣的列引腳,若要同時點亮

15、該列的16個LED,則晶體管的電流必須大于200毫安才行。常用的2N3904之類就可以達到當低態的列掃描信號輸入晶體管的基極后,該晶體管即為正向,而產生電流,即可使該列的LED具有點亮的條件所要的顯示信號連接到一個PNP晶體管的基極,而該晶體管的射極連接到VCC,同樣的,當低態的顯示信號輸入時,晶體管的集電極電流將流入行LED的陽極,即可點亮該行的LED。若要并接多個LED陣列,如本設計是使用四個8×8 LED陣列,連接成一個16×16 LED陣列,則一個掃描信號同時要驅動兩行的LED陣列。這時就需要靠鎖存器將這兩組顯示信號鎖住。本設計使用的是74LS373鎖存器,74LS

16、373是以低態輸出的,其輸出的電壓可達24毫安,足以驅動一個LED。當74LS373的G腳(即LE引腳)為高態時,數據可以從輸入端傳輸到鎖存器中;G腳為低態時,數據被鎖住,不會隨輸入端而變。另外,OC腳為輸出控制引腳,當OC腳為高態時,輸出呈現高阻抗;OC為低態時,數據會由鎖存器輸出。在這個電路之中驅動的掃描信號總共有16條,如果直接由8051輸出,將占用2個PORT口,浪費資源,不太理想,在此使用的是一個74LS154(4對16的譯碼器),這個譯碼器是將輸入的16進位碼解碼輸出低態的掃描信號。輸出的低態掃描信號可直接接到PNP晶體管的基極,如果太大的話也可以先經過限流電阻再接到PNP晶體管的

17、基極,信號最后經過晶體管的放大后即可推動16個LED點陣了。4 系統軟件設計4.1 點陣左移顯示的流程圖及分析程序和流程圖的簡要說明:在程序的開始,設定初始的地址是0000H,也定義了取碼指針的位置,設為00H的初始位置,再下面的74LS154掃描指針的初值設為00H,是因為掃描要從開始的零點開始掃。 程序的循環運行是從M3開始的,掃描信號輸出后,取碼指針先去的第一個碼送到點陣的上半部分,打開上面部分點陣的74LS373鎖存器,關閉下面部分點陣的74LS373鎖存器,把信號送到點陣的上部分。再指針加1,關閉上面部分點陣的74LS373鎖存器,打開下面部分點陣的74LS373鎖存器,取相鄰的碼送

18、到點陣的下半部分,緊挨著的延時程序是設定每列掃描的時間:MOV R3,#50DJNZ R3,$延時時間為:1+(2×50)=101uS0.1mS下面的“DJNZ R6,M3”到M3的循環可以計算顯示一次一個整屏的時間為0.1mS×16=1.1 mS,再下面的“DJNZ R1,M2”到M2的循環可以計算出每個屏的停留時間,即是每向左移動一下的時間間隔為0.1mS×16×65=104ms=0.1S。當字型向左移動一位的時候,取碼指針應先加2,再進行下一個字型的取碼,因為本設計的每一列的碼為2個。最后的部分代碼:XRL A,#0FFHJNZ M1 SJMP S

19、TART的意思是:在控制字型移動完以后,返回到頭重新開始移動。 說明一下:本設計是以顯示8個字的循環為例的,正如前面所說,字型可以任意加進去,顯示任意多的左移顯示的字,還可以顯示一些符號和圖形。只要有字型的代碼,再稍微改一下程序就可以顯示了。本設計的顯示效果:顯示向左移動的“XXXX”,移動的速度為每0.1秒移動一下,直到最后一個字。再重頭開始循環顯示。程序流程圖4.2系統各單元電路設計P89C51單片機最小系統最小系統包括晶體振蕩電路、復位開關和電源部分。下圖為P89C51單片機的最小系統。P89C51單片機最小系統三極管驅動電路 掃描驅動電路的功能主要是有P1口輸出高電平使三極管發射結導通

20、,發射結輸出足夠大的電流使二極管導通。4.3 字符的點陣顯示原理及字庫代碼獲取方法 本設計是使用四個8×8 LED陣列,連接成一個16×16 LED陣列,則一個掃描信號同時要驅動兩行的LED陣列。我們以UCDOS中文宋體字庫為例,每一個字由8行8列的點陣組成顯示。我們可以把每一個點理解為一個象素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在64象素范圍內的任何圖形。如查用8位的P89C51單片機控制,如圖所示 單個 8×8點陣等效電路為了弄清楚漢字的點陣組成規律,首先通過列掃描方法獲取漢字的代碼。首先將8行分成4位的上、下兩部分

21、,把發光的象素位編為0不發光的象素位為1的十六進制代碼。這樣就把要顯示的“公”字編為如下代碼:0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出他的掃描代碼從而顯示在屏幕上。上述方法雖然能夠讓我們弄清楚字符點陣代碼的獲取過程。字符點陣顯示一般有點掃描、行掃描和列掃描3種。為了符合視覺暫留要求,點掃描方法的掃描頻率必須大于16×641024 Hz,周期小于1 ms即可。行掃描和列掃描方法的掃描頻率必須大于16×8128 Hz,周期小于78 ms即可。5調試及性能分析首先根據各單元電

22、路模塊,利用Proteus軟件將總的硬件原理圖繪制好,設計好各模塊要使用的I/O口,如:16×16點陣LED顯示屏時候插反,先檢測下,無硬件錯誤后,再進行程序編程。利用C語言的編程方式,將系統要求的基本功能,以及創新功能根據程序流程圖編寫出來,用Keil軟件調試無誤后,生成Hex文件。雙擊Proteus中的P89C51芯片,將Keil生成的Hex加載到芯片內,進行仿真,經調試后所編寫的程序能夠完美實現系統所需的各種功能。5.1 調試步驟先在 Proteus 7.5 SP3 的 ISIS 中畫好電路原理圖,再在Keil Vision 4中編譯好程序,最后將 Keil Vision 4

23、與 Proteus 7.5 SP3 連接調試:1、進入Keil Vision4開發集成環境,創建一個新項目(Project),并為該項目選定合適的單片機CPU器件(如本設計使用的:Atmel公司的AT89C52)。并為該項目加入源程序。2、單擊“Project菜單/Options for Target”選項或者點擊工具欄的“option for ta rget”按鈕,彈出窗口,點擊“Debug”按鈕,在出現的對話框里在右欄上部的下拉菜單里選中“Proteus VSM Monitor”。并且還要點擊一下“Use”前面表明選中的小圓點。再點擊“Setting”按鈕,設置通信接口,在“Host”后面

24、添上“127.0.0.1”,如果使用的不是同一臺電腦,則需要在這里添上另一臺電腦的IP地址(另一臺電腦也應安裝Proteus)。在“Port”后面添加“8000”。設置好后點擊“OK”按鈕即可。最后將工程編譯,進入調試狀態,并運行。3、Proteus 的設置:進入 Proteus 的 ISIS ,鼠標左鍵點擊菜單“Debug”, 選中“use romote debuger monitor”。此后,便可實現 Keil 與 Proteus 連接調試。4、Keil 與 Proteus 連接仿真調試:單擊仿真運行開始按鈕,能清楚地觀察到每一個引腳的電平變化,紅色代表高電平,藍色代表低電平。在LED顯示

25、屏上,就能顯示圖文。5.2 仿真結果仿真圖6 總結本文設計一個16×16點陣LED圖文顯示屏。經過測試,LED各點亮度均勻,可顯示圖形和文字,且穩定清晰無串擾。本系統具有硬件少、結構簡單、容易實現,性能穩定可靠等特點。通過查閱資料,了解了LED發光原理和LED顯示技術的原理和現狀。在 LED點陣顯示屏的設計過程中,學到了很多東西,復習了Protel、Proteus、Keil等軟件的基礎應用?;玖私饬苏麄€嵌入式開發的流程。例如,在進行整個設計之前,應該先根據需求分析,對單片機進行選型,然后對各個硬件模塊進行搭試。在畫PCB電路板的時候,要注意基本的布板原則。在焊接電路板的時候,應該從

26、最基本的最小系統開始,分模塊,逐個進行焊接測試。在對各個硬件模塊進行測試時,要保證軟件正確的情況下去測試硬件,要不然發生錯誤時,不知道到底是哪一方出錯了。總之,這次設計開發,本人受益非淺,在以后的開發過程中一定總結經驗,吸取教訓,為以后的學習工作打好基礎。在此次設計中,總結如下:一、本文設計的16X16 LED顯示屏能夠實現在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示的圖形和文字穩定、清晰無串擾。圖形或文字以左移方式顯示。二、這次點陣設計的過程讓我基本學會了Keil及Proteus的使用,以及重新復習了下Word和Visio軟件的使用。三、通過這次設計,進一步增強了動手的

27、能力,學以致用。我感受到:做任何事都有耐心和毅力,否則將一事無成!四、本次設計因時間有限,不能進一步深入和擴散學習和研究,比如:本設計只能實現顯示最多256個字節的圖形或文字,希望有時間可以對程序和電路圖作更進一步的改進,譬如實現點陣的上下移動、對角線移動、多色顯示等。參考文獻1 潘永雄. 新編單片機原理與應用(第二版)M. 西安電子科技大學, 2007.02附錄1 系統硬件電路圖附錄2 程序清單ORG 0000H START: MOV A,#00H;清除屏幕并MOV P2,A;顯示信號輸出到P2口 MOV 20H,#00;取碼指針地址20H初值為00 MOV R4,00H;74LS154掃描

28、指針初值為00 M1:MOV R1,#65;設置每屏的停留時間M2:MOV R6,#16;每屏一個字,16個數據碼MOV R0,20H;取碼指針存入R0 M3:MOV A,R4;掃描指針載入A CLR P0.2;清P0.2 MOV P1,A;輸出至P1掃描列 MOV A,R0;取碼指針載入A MOV DPTR,#TABLE;數據指針指到TABLE MOVC A,A+DPTR;到TABLE取上半部數據碼 SETB P0.1;P0.1口置1 CLR P0.0;清P0.0口MOV P2,A;輸出至P2口顯示 INC R0;取下一個碼MOV A,R0;取碼指針載入A MOV DPTR,#TABLE;數

29、據指針指到TABLE MOVC A,A+DPTR;到TABLE取下半部碼SETB P0.0 CLR P0.1 MOV P2,A;輸出到P2口顯示INC R0;取碼值加1 MOV R3,#50;設定每列掃描的間隔時間DJNZ R3,$ ;此處可計算出每列掃描需1+(2*50)=101uS0.1mSMOV A,#00H;清除屏幕MOV P2,A INC R4;掃描下一行DJNZ R6,M3;判斷是否顯示一屏,此處可計算出每屏顯示需0.1mS*16=1.1mSMOV R4,#00H;清除74LS154掃描指針為00DJNZ R1,M2;判斷是否可左移,此處可計算出每向左移動一下的時間間隔為;0.1mS*16*65=104mSMOV A,20H;取碼指針載入AADD A,#02;指針加2MOV 20H,A;再存入20H地址

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論