版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE本科生畢業(yè)論文PAGEPAGE1摘要:本文介紹了一款以單片機(jī)AT89S51為控制器的LED點(diǎn)陣顯示屏系統(tǒng)的設(shè)計(jì)。該系統(tǒng)可實(shí)現(xiàn)中英文字符的顯示和動(dòng)態(tài)特效顯示。并且可以通過級(jí)連的方式來擴(kuò)大顯示屏幕的尺寸以達(dá)到增加顯示內(nèi)容的目的。系統(tǒng)采用PC機(jī)作為上位機(jī),上位機(jī)向單片機(jī)發(fā)送控制命令和上位機(jī)所存儲(chǔ)的顯示代碼,AT89S51單片機(jī)接收并處理PC機(jī)的控制命令以及顯示代碼,由顯示驅(qū)動(dòng)模塊驅(qū)動(dòng)一個(gè)16×16分辨率的LED點(diǎn)陣顯示屏的掃描顯示。PC機(jī)與單片機(jī)之間的通信采用RS—232C通信標(biāo)準(zhǔn)來實(shí)現(xiàn)。所選用的AT89S51單片機(jī)具有價(jià)格低廉程序?qū)懭敕奖愕奶攸c(diǎn)使得整個(gè)系統(tǒng)方便維護(hù)和檢修。除此之外,該系統(tǒng)只占用了單片機(jī)少量的I/O口和內(nèi)存,為系統(tǒng)留下了功能擴(kuò)展的空間。關(guān)鍵字:AT89S51;LED點(diǎn)陣顯示;串行通對(duì)設(shè)計(jì)題目的特點(diǎn),作者對(duì)論文的內(nèi)容和結(jié)構(gòu)將做如下安排:(1)初步方案的論證和選擇搜集題目的有關(guān)資料,并參照目前通用的設(shè)計(jì)思想和設(shè)計(jì)方法擬定幾套設(shè)計(jì)方案進(jìn)行分析比較。最終選定了以PC機(jī)為上位機(jī),單片機(jī)為核心控制器件,外加譯碼電路和驅(qū)動(dòng)電路的設(shè)計(jì)方案。(2)方案實(shí)現(xiàn)以設(shè)計(jì)方案為指導(dǎo)思想選擇合適的器件來實(shí)現(xiàn)這一思想,選擇器件時(shí)要從功能和電氣特性兩方面來選擇和論證。經(jīng)過對(duì)比選擇選定AT89S51單片機(jī)為核心控制器件,由串并轉(zhuǎn)換器74LS164和鎖存器74LS373為譯碼電路器件,三極管8550和ULN2803為驅(qū)動(dòng)電路器件。論文列出了詳細(xì)的器件參數(shù)和在系統(tǒng)中的連接使用方法。(3)軟件編寫根據(jù)硬件特點(diǎn)和設(shè)計(jì)要求,軟件選用C語言編寫。程序按功能分為靜態(tài)顯示、動(dòng)態(tài)顯示、通信等幾個(gè)功能上相對(duì)獨(dú)立的模塊。然后按照所劃分的模塊逐個(gè)編寫和調(diào)試,最后將獨(dú)立的模塊整合起來。(4)驗(yàn)證與測(cè)試調(diào)試分為硬件調(diào)試、軟件調(diào)試和系統(tǒng)聯(lián)合調(diào)試幾步來進(jìn)行。在硬件調(diào)試中發(fā)現(xiàn)有單片機(jī)端口驅(qū)動(dòng)能力不足、驅(qū)動(dòng)電路工作不穩(wěn)定等問題。在軟件調(diào)試中出現(xiàn)程序整合工作不協(xié)調(diào)等問題。通過分析,查找找出了問題原因并設(shè)法將其解決。(5)結(jié)論設(shè)計(jì)完成后對(duì)設(shè)計(jì)中所遇到的問題、經(jīng)驗(yàn)教訓(xùn)、以及自己的想法進(jìn)行總結(jié)。第2章方案論證與選擇2.1系統(tǒng)硬件方案大多數(shù)的LED顯示屏都在戶外,所以對(duì)硬件的質(zhì)量要求非常的高。為方便檢修和維護(hù)硬件電路設(shè)計(jì)時(shí)常常采用模塊化的設(shè)計(jì)方法。硬件的設(shè)計(jì)采用模塊化設(shè)計(jì),既要滿足模塊本身功能又要能夠和整個(gè)系統(tǒng)兼容。如圖2-1所示,根據(jù)顯示系統(tǒng)的功能特點(diǎn)確定系統(tǒng)硬件由顯示屏部分,控制部分,通信系統(tǒng)及上位機(jī)四部分組成。上位機(jī)通過通信部分向控制部分發(fā)送控制指令和顯示內(nèi)容代碼,控制部分執(zhí)行顯示指令并將顯示代碼處理后控制顯示部分的顯示內(nèi)容和顯示方式[3]。圖2-1系統(tǒng)硬件組成框圖2.1.1顯示屏主控制器控制部分是整個(gè)系統(tǒng)的核心部分,其功能為與上位機(jī)通信接收上位機(jī)發(fā)送的數(shù)據(jù)和控制指令處理過后控制顯示部分顯示內(nèi)容。其常用的電子設(shè)計(jì)方法有單片機(jī)、DSP、及EDA技術(shù)。幾種設(shè)計(jì)方法比較各有其特點(diǎn):(1)單片機(jī)單片機(jī)是集成了CPU,ROM,RAM和I/O口的微型計(jì)算機(jī)。它有很強(qiáng)的接口性能,非常適合于工業(yè)控制,因此又叫微控制器(MCU)。單片機(jī)品種齊全,型號(hào)多樣CPU從8,16,32到64位,多采用RISC技術(shù),片上I/O非常豐富,有的單片機(jī)集成有A/D,“看門狗”,PWM,顯示驅(qū)動(dòng),函數(shù)發(fā)生器,鍵盤控制等。它們的價(jià)格也高低不等,這樣極大地滿足了開發(fā)者的選擇自由。除此之外單片機(jī)還具有低電壓和低功耗的特點(diǎn)。隨著超大規(guī)模集成電路的發(fā)展,NMOS工藝單片機(jī)被CMOS代替,并開始向HMOS過渡。供電電壓由5V降到3V,2V甚至到1V,工作電流由mA降至μA,這在便攜式產(chǎn)品中大有用武之地[4]。個(gè)的發(fā)光二極管出現(xiàn)問題時(shí)只需更換一個(gè)二極管即可,檢修的成本較低,缺點(diǎn)在于連接線路復(fù)雜;而點(diǎn)陣模塊構(gòu)成的方法卻正好與之相反,模塊構(gòu)成省約了大量的連線,不過當(dāng)一個(gè)LED出現(xiàn)問題時(shí)同在一個(gè)模塊的所有LED都必須被更換。這就加大了維修的成本。兩種方法相比較,決定采取模塊構(gòu)成的方法來制作一個(gè)LED點(diǎn)陣顯示屏。為了避免模塊的缺點(diǎn),選擇點(diǎn)陣數(shù)較小的模塊來減小出現(xiàn)這一問題的風(fēng)險(xiǎn)。所以構(gòu)建一個(gè)16×16的LED點(diǎn)陣屏選用四塊8×8點(diǎn)陣模塊。圖2-2LED點(diǎn)陣圖一個(gè)16×16的LED顯示屏行和列各有16支引腳,不能單靠51單片機(jī)的端口驅(qū)動(dòng)所以必須要對(duì)單片機(jī)的端口個(gè)數(shù)進(jìn)行擴(kuò)展。經(jīng)常采用的端口擴(kuò)展方法是用串并轉(zhuǎn)換芯片進(jìn)行譯碼。常用的串并轉(zhuǎn)換芯片有74LS154(4線-16線譯碼器)、74LS164(8位串并轉(zhuǎn)換器)、74HC595等。51系列單片機(jī)端口低電平時(shí),吸入電流可達(dá)20mA,具有一定的驅(qū)動(dòng)能力;而為高電平時(shí),輸出電流僅數(shù)十μA甚至更?。娏鲗?shí)際上是由腳的上拉電流形成的),基本上沒有驅(qū)動(dòng)能力,所以單片機(jī)不能直接驅(qū)動(dòng)LED顯示屏顯示。在單片機(jī)和顯示屏之間還需要增加以功能放大位目的的驅(qū)動(dòng)電路[7]。2.1.4硬件設(shè)計(jì)方案最終方案如圖2-3所示,以PC機(jī)作為上位機(jī)存儲(chǔ)和處理顯示內(nèi)容用串行通信的方式將顯示內(nèi)容和控制指令傳輸?shù)絾纹瑱C(jī)系統(tǒng),單片機(jī)根據(jù)上位機(jī)傳輸來的內(nèi)容和指令通過端口譯碼擴(kuò)展后驅(qū)動(dòng)4塊8×8LED點(diǎn)陣模塊構(gòu)成的16×16的LED點(diǎn)陣顯示屏。題目將以此方案為指導(dǎo)思想展開具體的硬件電路設(shè)計(jì)。圖2-3硬件設(shè)計(jì)方案2.2系統(tǒng)軟件方案軟件的設(shè)計(jì)除了滿足設(shè)計(jì)功能外還必須要滿足易讀寫,方便下載和編譯。設(shè)計(jì)目標(biāo)和硬件總體結(jié)構(gòu)確定的情況下,軟件可以分為主程序,顯示子程序,各種特效顯示子程序,通信程序三個(gè)主要部分組成。具體結(jié)構(gòu)如圖2-4所示。圖2-4軟件功能結(jié)構(gòu)框圖軟件的編寫需要借助軟件編輯器和編譯軟件,編譯完成后還需要下載到單片機(jī)中執(zhí)行。編寫軟件之前得首先選擇一種合適的語言以及配套的編輯器和編譯軟件。最后還要選擇一款與所選單片機(jī)的下載器或下載軟件來把編寫的程序下載到單片機(jī)中執(zhí)行。第3章系統(tǒng)硬件設(shè)計(jì)3.1硬件整體設(shè)計(jì)概述及功能分析顯示系統(tǒng)具體設(shè)計(jì)主要由上位機(jī),通信系統(tǒng),單片機(jī)系統(tǒng),譯碼電路,顯示驅(qū)動(dòng)電路和16×16的點(diǎn)陣屏六部分組成。具體工作流程為:上位PC機(jī)通過通信系統(tǒng)向單片機(jī)發(fā)送控制指令和顯示代碼內(nèi)容,單片機(jī)接收后執(zhí)行控制指令處理顯示代碼將顯示內(nèi)容通過I/O口串行輸出并且控制譯碼電路完成串并轉(zhuǎn)換并行輸出,最后由顯示驅(qū)動(dòng)電路進(jìn)行電壓和電流的處理以達(dá)到LED顯示屏的顯示電流,電壓要求進(jìn)而使顯示屏顯示內(nèi)容[11]。根據(jù)硬件的功能結(jié)構(gòu)圖選取合適器件,器件不但要求能實(shí)現(xiàn)所要求的功能還要能兼容至整個(gè)系統(tǒng)之中。通過查閱資料和對(duì)比最終的硬件原理圖如圖3-1所示。圖3-1硬件原理圖3.2.2控制系統(tǒng)設(shè)計(jì)控制電路設(shè)計(jì)中采用的是單片機(jī)系統(tǒng),該系統(tǒng)必須要是工作在一個(gè)最小系統(tǒng)(指單片機(jī)的可以的最小配置系統(tǒng))。AT89S51的最小系統(tǒng)包括了外界時(shí)鐘電路和復(fù)位電路,選定一定數(shù)量的IO口作為控制口控制外部的各種器件和數(shù)據(jù)的輸出。根據(jù)功能選擇一定的單片機(jī)端口添加外圍的器件,具體電路如圖3-2所示。在該系統(tǒng)中,P1各口主要用作LED顯示數(shù)據(jù)的控制輸出。由于端口的驅(qū)動(dòng)能力有限所以該端口外接了5K的上拉電阻來提高驅(qū)動(dòng)能力。其中P1.5P1.6P1.7還復(fù)用為ISP下載功能口。具體接法為:P1.0,P1.1,P1.4,P1.5分別接四塊74LS164的A端,向74LS164送入串行數(shù)據(jù)經(jīng)過其轉(zhuǎn)換后并行輸出;P1.2和P1.6分別接列和行的74LS164的CLOCK端,產(chǎn)生移位脈沖是串行數(shù)據(jù)并行輸出;P1.3和P1.7接列和行的CLEAR端,在一組數(shù)據(jù)完成串并轉(zhuǎn)換后清除164芯片中的內(nèi)容轉(zhuǎn)換新的數(shù)據(jù);其中P1.5P1.6P1.7還復(fù)用為ISP下載功能口。P2.0接164芯片的使能控制端,當(dāng)為高電平使允許輸出;P2.2和P2.3接鎖存器74LS373的OE和LE端控制鎖存器的工作狀態(tài)。端口30,EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。因?yàn)闆]有擴(kuò)展外部程序存儲(chǔ)器所以將EA置為高電平。圖3-2控制部分電路圖由于P3口是特殊功能口,在該系統(tǒng)中基本是采用其第二功能。其第二功能和實(shí)際運(yùn)用如表3-1所示:表3-1AT89S51P3口第二功能的應(yīng)用端口第二功能實(shí)際作用P3.0RXD(串行輸入口)與上位機(jī)通信的數(shù)據(jù)輸入口P3.1TXD(串行輸出口)與上位機(jī)通信的數(shù)據(jù)輸出口P3.2外部中斷0做按鍵中斷,控制顯示狀態(tài)P3.3外部中斷1做按鍵中斷,控制運(yùn)行模式AT89S51單片機(jī)的P1在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,P2口在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。所以P1和P2口留為外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的擴(kuò)展用,以備內(nèi)部存儲(chǔ)器和程序存儲(chǔ)器不夠用的情況時(shí)使用[12]。3.3譯碼電路設(shè)計(jì)譯碼電路的功能是為了解決單片機(jī)I/O端口不足。行譯碼所用器件為串并轉(zhuǎn)換器74LS164和鎖存器74LS373。具體電路如圖3-3所示圖3-3行譯碼電路圖3.3.1串并轉(zhuǎn)換器74LS164列譯碼采用的是芯片74LS164。如果不采用譯碼電路完全依靠單片機(jī)的端口輸出來控制16×16的LED點(diǎn)陣屏顯示,需要32個(gè)端口。而采用了譯碼電路后僅僅需要7~9個(gè)端口便可實(shí)現(xiàn)控制顯示。大大減少了I/O口的占用數(shù)目,為單片機(jī)擴(kuò)展其他功能預(yù)留下來了空間。74LS164為一個(gè)8位數(shù)據(jù)的串并轉(zhuǎn)換器。當(dāng)清除端(CLEAR)為低電平時(shí),輸出端(QA-QH)均為低電平。串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng)A、B任意一個(gè)為低電平,則禁止新數(shù)據(jù)輸入,在時(shí)鐘端(CLOCK)脈沖上升沿作用下Q0為低電平。當(dāng)A、B有一個(gè)為高電平,則另一個(gè)就允許輸入數(shù)據(jù),并在CLOCK上升沿作用下決定Q0的狀態(tài)。表3-174LS164工作參數(shù)參數(shù)最小值標(biāo)準(zhǔn)值最大值單位高電平輸入電壓2——V低電平輸入電壓——0.8V高電平輸出電壓2.43.2--V低電平輸出電壓—0.20.4V時(shí)鐘頻率0—25MHZ這就要求單片機(jī)的引腳輸出的高低電平要在芯片的識(shí)別范圍內(nèi),由于采用了列選通行傳送顯示代碼的方法所以行譯碼電路上也加上了74L373鎖存芯片。這就要求74LS164芯片的輸出要滿足鎖存芯片的高低電平區(qū)分范圍和頻率要求。3.3.2鎖存器74L373由于74LS164芯片不具有鎖存功能,所以在74LS164進(jìn)行八位數(shù)據(jù)的串并轉(zhuǎn)換時(shí),串行數(shù)據(jù)的第一位會(huì)從QA依次移位到QH,第二位數(shù)據(jù)會(huì)從QA依次移位到QG,依次類推在八位數(shù)據(jù)轉(zhuǎn)換完成之前74LS164芯片的輸出會(huì)出現(xiàn)一段時(shí)間的亂序輸出,這一結(jié)果會(huì)通過驅(qū)動(dòng)電路表現(xiàn)在顯示屏上。結(jié)果就是顯示屏無序?qū)ㄩW爍,不能顯示所需內(nèi)容。因此在串并轉(zhuǎn)換完成前就需要74LS164的輸出口不與驅(qū)動(dòng)電路導(dǎo)通。所以選擇鎖存器74LS373來完成這一功能。74LS373為八D鎖存器(3S,鎖存允許輸入有回環(huán)特性)。373為三態(tài)輸出的八D透明鎖存器,共有54/74S373和54/74LS373兩種線路結(jié)構(gòu)形式當(dāng)三態(tài)允許控制端OE為低電平時(shí),O0~O7為正常邏輯狀態(tài),可用來驅(qū)動(dòng)負(fù)載或總線。當(dāng)OE為高電平時(shí),O0~O7呈高阻態(tài),即不驅(qū)動(dòng)總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)鎖存允許端LE為高電平時(shí),O隨數(shù)據(jù)D而變。當(dāng)LE為低電平時(shí),O被鎖存在已建立的數(shù)據(jù)電平。表3-274LS373工作參數(shù)表參數(shù)最小值額定值最大值單位電源電壓4.7555.25V輸入高電平電壓2——V輸入低電平電壓——0.8V輸出高電平電壓——-2.6mA輸出低電平電壓——24mA由表與表比較可以看出,74LS164的輸出條件與74LS373的輸入條件相匹配,理論上可以實(shí)現(xiàn)鎖存器對(duì)譯碼器的數(shù)據(jù)鎖存。3.4驅(qū)動(dòng)電路設(shè)計(jì)3.4.1行驅(qū)動(dòng)電路設(shè)計(jì)發(fā)光二極管,LED(LightEmittingDiodes),即是在在某些半導(dǎo)體材料的PN結(jié)中,注入的少數(shù)載流子與多數(shù)載流子復(fù)合時(shí)會(huì)把多余的能量以光的形式釋放出來,從而把電能直接轉(zhuǎn)換為光能。PN結(jié)加反向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種利用注入式電致發(fā)光原理制作的二極管叫發(fā)光二極管,通稱LED。行驅(qū)動(dòng)采用PNP三極管8550接法如圖3-4示:圖3-4行驅(qū)動(dòng)器件8550的接法8550為PNP型三極管,內(nèi)部結(jié)構(gòu)如圖3-5示。發(fā)射極e接5V電源,基極接譯碼信號(hào)輸出端,集電極接輸出驅(qū)動(dòng)LED點(diǎn)陣屏。當(dāng)譯碼器端口輸出為低電平時(shí),發(fā)射極與基極電勢(shì)差為5V-基極中帶負(fù)電的電子越過PN結(jié)擴(kuò)散到發(fā)射區(qū)。發(fā)射極產(chǎn)生和電子擴(kuò)散方向相反的電流,由于基極電子大量擴(kuò)散到發(fā)射極集電極電子擴(kuò)散到基極中形成了電流。當(dāng)譯碼器端口輸出高電平時(shí)發(fā)射極與基極之間的電勢(shì)差為5V--,由于發(fā)射極與基極之間電勢(shì)差的減少基極電子向發(fā)射極擴(kuò)散的電子數(shù)量減少故集電極電流也隨之減少。故8550在驅(qū)動(dòng)電路中起到提供驅(qū)動(dòng)電流和選通開關(guān)的作用。圖3-58550內(nèi)部結(jié)構(gòu)圖3.4.2列驅(qū)動(dòng)電路設(shè)計(jì)列驅(qū)動(dòng)采用ULN2803。ULN2803是一種高電壓大電流達(dá)林頓管陣列內(nèi)部結(jié)構(gòu)如圖,該陣列中的八個(gè)NPN達(dá)林頓連接晶體管是低邏輯電平數(shù)字電路(如TTL,CMOS或PMOS)和大電流高電壓的燈,繼電器,打印機(jī)錘和其他類似負(fù)載間的接口的理想器件。廣泛用于計(jì)算機(jī),工業(yè)和消費(fèi)類產(chǎn)品中。所有器件有集電極開路輸出和用于瞬變抑制的續(xù)流箝位二極管。集電極輸出功率可達(dá)50V×600mA[13]。ULN2803作為列驅(qū)動(dòng)執(zhí)行的是列選的工作,當(dāng)選通的列輸入高電平時(shí)其對(duì)應(yīng)的輸輸出低電平。相對(duì)應(yīng)的輸出取反,并能提供較大的灌電流來吸收行驅(qū)動(dòng)流出進(jìn)過顯示屏后的電流。具體電路如圖3-7所示。圖3-7列驅(qū)動(dòng)原理圖3.5通信系統(tǒng)硬件設(shè)計(jì)AT89S51單片機(jī)具有全雙工串行UART通道,支持單片機(jī)進(jìn)行數(shù)據(jù)的串行傳輸。除了單片機(jī)要與PC機(jī)制定通信協(xié)議,確定發(fā)送速率外還需要解決的問題就是信號(hào)電平問題。RS-232C標(biāo)準(zhǔn)規(guī)定了PC機(jī)發(fā)送數(shù)據(jù)總線TXD和接收數(shù)據(jù)總線RXD采用EIA電平,即傳送數(shù)字“1”時(shí)傳輸線上的電平在-3~-15V之間;傳送數(shù)字“0”時(shí),傳輸線上的電平在+3~+15之間。但單片機(jī)串行口采用正邏輯TTL電平,即數(shù)字“1”時(shí)為+5V數(shù)字“0”時(shí)為-5V,所以單片機(jī)與計(jì)算機(jī)不能直接相連進(jìn)行通信必須將RS-232C與TTL電平進(jìn)行轉(zhuǎn)換[14]。在通用的電平轉(zhuǎn)換芯片中MAX232系列的芯片以集成度高,單+5V電源工作,只需外接5個(gè)小電容即可完成RS-232C與TTL電平之間的轉(zhuǎn)換而成為單片機(jī)系統(tǒng)中的常用芯片。在該顯示系統(tǒng)中,MAX232為通信系統(tǒng)中最重要的硬件組成部分[15]。電路如圖3-8所示:圖3-8串口通信系統(tǒng)電路圖3.6電源設(shè)計(jì)在系統(tǒng)中MAX232、74LS164、74LS373、AT89S51都需要5V的供電電壓,在系統(tǒng)開發(fā)過程中可以使用電腦USB供電。在實(shí)際的大屏幕LED顯示屏設(shè)計(jì)中,用電腦USB供電明顯不切實(shí)際。此時(shí)需要對(duì)民用的220V進(jìn)行降壓整流為5V直流電壓為顯示系統(tǒng)供電。電路圖如圖3-9所示。圖3-9電源原理圖如圖所示,用220V轉(zhuǎn)12V的變壓器進(jìn)行降壓后再通過一個(gè)橋式整流電路將交流電整流為直流電。最后通過5V三端穩(wěn)壓模塊LM7805得出穩(wěn)定的5V輸出。3.7級(jí)連大屏幕LED顯示屏要實(shí)現(xiàn)LED的大屏幕顯示主要采用內(nèi)部譯碼器級(jí)連和多個(gè)單片機(jī)系統(tǒng)級(jí)連的方法。譯碼器級(jí)連如圖3-10所示將第1個(gè)74LS164的Q7端接第2個(gè)74LS164的A端,將第2個(gè)74LS164的Q7端接第3個(gè)74LS164的A端,如此炮制當(dāng)N塊74LS164相級(jí)連時(shí)就變?yōu)橐粋€(gè)串行輸入7×N口輸出的串并轉(zhuǎn)換器。這種級(jí)連的優(yōu)點(diǎn)在于一塊單片機(jī)可以同時(shí)控制更多的LED點(diǎn)陣顯示屏,且74LS164的價(jià)格低廉整體成本得到了降低。但是這種級(jí)連方法也存在一定的缺點(diǎn),51系列的單片機(jī)的晶振頻率不高74LS164級(jí)連過多會(huì)增加一次掃描的時(shí)間從而導(dǎo)致顯示出現(xiàn)閃爍。從端口輸出的顯示數(shù)據(jù)的顯示也要作出相應(yīng)的改變。圖3-1074LSL64級(jí)連構(gòu)建大屏幕LED顯示屏的另一種方法是將以較小的LED顯示系統(tǒng)做為模塊進(jìn)行級(jí)連。如圖3-11所示,由獨(dú)立的LED顯示系統(tǒng)組成一個(gè)大的LED顯示系統(tǒng)。其中各子顯示系統(tǒng)之間在功能和控制上都是相互獨(dú)立的,將一幅大屏幕畫面拆分為幾塊小畫面再分別送入到各子系統(tǒng)中,各子系統(tǒng)同步顯示便可以得到一幅大的畫面。使用這種級(jí)連的辦法可以避免51單片機(jī)晶振頻率低的弱點(diǎn),更容易實(shí)現(xiàn)大屏幕的顯示。但這種方法仍然存在難點(diǎn),一是各獨(dú)立的子系統(tǒng)的通信和協(xié)調(diào)性要求更高了,如果要實(shí)現(xiàn)顯示內(nèi)容的實(shí)時(shí)性必須需要上位機(jī)不斷更新顯示內(nèi)容則增加了上位機(jī)的通信數(shù)據(jù)量,逐個(gè)的單片機(jī)傳送數(shù)據(jù)也會(huì)影響整個(gè)畫面的更新速度;二是成本提高了。圖3-11由子系統(tǒng)構(gòu)建大屏幕LED顯示屏在實(shí)際應(yīng)用中通常采用內(nèi)部擴(kuò)展和外部級(jí)連聯(lián)合使用的方法來構(gòu)建大屏幕LED顯示屏幕。即增加單個(gè)顯示系統(tǒng)顯示屏幕大小的同時(shí)又將單個(gè)的顯示系統(tǒng)級(jí)連。詳細(xì)硬件原理圖見附錄1。
第4章系統(tǒng)軟件設(shè)計(jì)4.1程序設(shè)計(jì)系統(tǒng)軟件采用C語言編寫,按照模塊化的設(shè)計(jì)思路設(shè)計(jì)。首先分析程序所要實(shí)現(xiàn)的功能,程序要實(shí)現(xiàn)串口通信,靜態(tài)顯示,動(dòng)態(tài)顯示三大功能。其功能結(jié)構(gòu)如圖2-4所示。通信程序接收上位機(jī)數(shù)據(jù),交給主程序處理再通過控制程序選擇不同的顯示程序進(jìn)行顯示。主程序的工作流程如圖4-1所示:系統(tǒng)初始化系統(tǒng)初始化從顯示數(shù)組讀取數(shù)據(jù)到顯示寄存器讀取顯示控制命令選擇顯示方式調(diào)用相應(yīng)顯示程序RI=1?起始位?接收顯示數(shù)據(jù)及控制命令將顯示數(shù)據(jù)移入顯示數(shù)組將控制命令賦值給控制字符NNYY開始中斷開始中斷返回圖4-1主程序流程圖程序開始時(shí)首先必須對(duì)單片機(jī)進(jìn)行初始化,其中初始化的內(nèi)容包括:中斷優(yōu)先級(jí)的設(shè)定,中斷初始化,串行通信時(shí)通信方式的選擇和波特率的設(shè)定,各IO口功能的設(shè)定等。初始化完成后程序進(jìn)入待機(jī)狀態(tài)等待中斷的發(fā)生,該程序中主要用到了兩個(gè)外部中斷源和串行中斷。外部中斷源由按鍵的電平變化觸發(fā),外部中斷主要功能是選擇LED點(diǎn)陣顯示屏的控制方式是由按鍵控制還是上位機(jī)控制和顯示狀態(tài)是靜態(tài)顯示還是動(dòng)態(tài)顯示。串行中斷包括發(fā)送中斷和接收中斷都是由軟件觸發(fā)。中斷產(chǎn)生后由預(yù)先初始化時(shí)設(shè)定跳轉(zhuǎn)執(zhí)行中斷子程序。中斷程序設(shè)定了LED點(diǎn)陣顯示屏所要顯示的內(nèi)容和顯示的方式,最后執(zhí)行的是各種顯示程序。按照設(shè)定的方式和內(nèi)容顯示出所需要的內(nèi)容。4.2顯示程序的設(shè)計(jì)4.2.1LED顯示屏的顯示方式LED點(diǎn)陣屏顯示方式主要由靜態(tài)顯示和動(dòng)態(tài)掃描顯示兩種。對(duì)靜態(tài)顯示來說,每一個(gè)發(fā)光二極管都需要一套驅(qū)動(dòng)電路,一幀畫面輸入以后便可一勞永逸地顯示,除非我們改變了顯示內(nèi)容,需要重新輸出新的點(diǎn)陣數(shù)據(jù).這種方式系統(tǒng)原理相對(duì)簡(jiǎn)單一些,但所需的譯碼驅(qū)動(dòng)裝量很多,引線多而繁雜,不便于大屏幕的制造,成本高,其可靠性也較低.另一種動(dòng)態(tài)掃描顯示是把整個(gè)LED屏幕分成若干部分,每一幅畫面的顯示是顯示完一部分后,又顯示第二部分……直到顯示完最后一部分又重新開始顯示第一部分,重復(fù)循環(huán)進(jìn)行.在重復(fù)掃描速度足夠快的情況下,我們看到的就是一幅穩(wěn)定的畫面.也就是說采用動(dòng)態(tài)掃描顯示需要不斷進(jìn)行畫面的刷新.在這種方式下其顯示驅(qū)動(dòng)電路可重復(fù)利用,引線也大大減少,從而使硬件成本降低,且屏幕上的發(fā)光二極管輪流發(fā)光,使用時(shí)的耗電量大大降低.大屏幕的制造、維護(hù)要容易許多,可靠性也增加了.兩種顯示方式的比較再結(jié)合51單片機(jī)IO口數(shù)量有限的原因決定采用動(dòng)態(tài)掃描的方式進(jìn)行顯示。動(dòng)態(tài)掃描分為行掃描和列掃描兩種方式區(qū)別在于選通端和數(shù)據(jù)輸入端分別是行還是列。在該顯示系統(tǒng)中掃描顯示的工作原理如圖4-2所示,先選通列然后再從行送入對(duì)應(yīng)列的數(shù)據(jù),這樣從第1列到第16列循環(huán)往復(fù),只要切換的速度足夠的快利用人眼的延時(shí)特性就可以看見一幅穩(wěn)定的畫面。圖4-2掃描顯示程序原理圖4.2.2點(diǎn)陣數(shù)據(jù)表達(dá)方式該顯示系統(tǒng)的顯示數(shù)據(jù)采取縱向取模方向正向的數(shù)據(jù)存儲(chǔ)方式如圖4-3,圖4-3點(diǎn)陣數(shù)據(jù)原理圖即數(shù)據(jù)是縱向的,一個(gè)像素對(duì)應(yīng)一個(gè)位。8個(gè)像素對(duì)應(yīng)一個(gè)字節(jié),字節(jié)的位順序是上高下低,比如從上到下8個(gè)點(diǎn)的狀態(tài)是“**-”(*為黑點(diǎn),-為白點(diǎn)),則轉(zhuǎn)換的字模數(shù)據(jù)是0x82(B1000_0010)。如圖(4-3)所示,一幅16×16的點(diǎn)陣畫面點(diǎn)陣數(shù)據(jù)按照B1B2B3……B31B32存儲(chǔ)。所以一幅畫面的數(shù)據(jù)量為32字節(jié)。畫面顯示時(shí)選通的第i列對(duì)應(yīng)的數(shù)組元素為第i和i+16個(gè)元素[16]。4.2.3顯示程序的設(shè)計(jì)開始顯示程序分為靜態(tài)顯示程序、左移顯示、右移顯示、上移顯示、下移顯示五種種顯示方式。其中上下左右移動(dòng)程序都調(diào)用了靜態(tài)顯示程序?yàn)樽映绦?。靜態(tài)顯示程序流程圖如圖4-4所示:開始初始化初始化讀取顯示數(shù)據(jù)讀取顯示數(shù)據(jù)依次選通列,行74LS164的CLOCK端置低,鎖存器禁止輸出依次選通列,行74LS164的CLOCK端置低,鎖存器禁止輸出對(duì)應(yīng)行數(shù)組元素與0X01相與,相與結(jié)果寫入單片機(jī)端口輸出對(duì)應(yīng)行數(shù)組元素與0X01相與,相與結(jié)果寫入單片機(jī)端口輸出數(shù)組元素右移一位,對(duì)應(yīng)74LS164CLOCK端置高數(shù)組元素右移一位,對(duì)應(yīng)74LS164CLOCK端置高N右移次數(shù)是否為8?N右移次數(shù)是否為8?YY鎖存器允許輸出鎖存器允許輸出圖4-4靜態(tài)顯示程序流程圖顯示采用的是列掃描的顯示方式,選通一列后按照列與數(shù)據(jù)元素的對(duì)應(yīng)關(guān)系第i列對(duì)應(yīng)的行數(shù)據(jù)為數(shù)組中的第i和第i+16個(gè)元素。將對(duì)應(yīng)元素的由低至高位依次從端口輸出具體做法為將元素向右邏輯移位后再與0X01相與,所得結(jié)果通過單片機(jī)端口輸出到串并轉(zhuǎn)換器的A端,鎖存在鎖存器里完成一列數(shù)據(jù)移位后再將其輸出。如此依次循環(huán)選通各列來顯示所需畫面[17]。圖4-5左右移/上下移程序流程圖動(dòng)態(tài)顯示程序流程如圖4-5所示,根據(jù)顯示數(shù)據(jù)的存儲(chǔ)原理通過改變實(shí)際LED列與數(shù)據(jù)邏輯列的方法來實(shí)現(xiàn)程序的左右移動(dòng)。顯示數(shù)據(jù)與列的對(duì)應(yīng)關(guān)系為:第i列對(duì)應(yīng)的數(shù)據(jù)為數(shù)組中i和第2×i個(gè)數(shù)據(jù)。所以當(dāng)ULN2803選通時(shí),而送入后一列的數(shù)據(jù)則相當(dāng)于畫面左移移位,同理送入前一列數(shù)據(jù)相當(dāng)于右移一位。如此循環(huán)則產(chǎn)生一幅穩(wěn)定運(yùn)動(dòng)的畫面。顯示數(shù)組中,第1至16個(gè)元素的第8至第1位LED顯示屏中的第1至第8行。同理第17至32個(gè)元素的第8至第1位LED顯示屏中的第9至第16行。所以將元素?cái)?shù)據(jù)進(jìn)行邏輯位移便能產(chǎn)生上下移動(dòng)的效果[18]。4.3通信程序的設(shè)計(jì)系統(tǒng)采用串行中斷的方式進(jìn)行通信。MCS-51單片機(jī)的五個(gè)中斷源兩種類型:一類是外部中斷源;另一類是內(nèi)部中斷源,包括兩個(gè)定時(shí)器/計(jì)數(shù)器(T0和T1)的溢出中斷和串行口的接收和發(fā)送中斷。MCS-51單片機(jī)設(shè)置了4個(gè)專用寄存器用于中斷控制,分別為定時(shí)器控制寄存器(TCON),串行口中斷控制器(SCON),中斷允許控制寄存器(IE),中斷優(yōu)先級(jí)控制寄存器(IP)。編程時(shí)通過設(shè)置其狀態(tài)來管理中斷系統(tǒng)。在編輯中斷程序時(shí)首先是將中斷控制寄存器(IE)初始化。其控制位分布如表。EA為中斷允許總控制位,EA=1時(shí)CPU開發(fā)中斷;EA=1時(shí)。CPU屏蔽所有中斷。ES、ET、EX1、ET0、EX0為對(duì)應(yīng)的串行口中斷、定時(shí)器/計(jì)數(shù)器1中斷、外部中斷1中斷、定時(shí)器/計(jì)數(shù)器0中斷、外部中斷0中斷的中斷允許位。對(duì)應(yīng)位為1時(shí)允許其中斷,對(duì)應(yīng)位為0時(shí),禁止其中斷。表4-1中斷允許寄存器格式D7D6D5D4D3D2D1D0EA——ESET1EX1ET0EX0所以初始化時(shí)設(shè)定中斷允許寄存器初值為0XFF,指令為IE=0XFF。程序設(shè)計(jì)時(shí)還要考慮到中斷優(yōu)先級(jí)的問題。因?yàn)椴煌闹袛嗤瑫r(shí)產(chǎn)生而CPU響應(yīng)的順序取決于內(nèi)部查詢順序。設(shè)置串口工作方式1,波特率9600,計(jì)算可得計(jì)數(shù)器初值的十六進(jìn)制表示為0XFD。通信協(xié)議如表4-2所示:表4-2串口通信數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)第1個(gè)字節(jié)第2至第33個(gè)字節(jié)第34個(gè)字節(jié)內(nèi)容起始標(biāo)志位‘S’顯示數(shù)據(jù)控制指令作用判斷是否開始接收數(shù)據(jù)LED的顯示內(nèi)容控制LED顯示方式具體串口中斷程序流程圖如圖4-6所示,在主程序中先進(jìn)行了串行中斷的初始化,初始化內(nèi)容包括了串行工作方式選擇,波特率的設(shè)定,計(jì)數(shù)初值的設(shè)定。程序開始進(jìn)入中斷等待,當(dāng)PC機(jī)向單片機(jī)發(fā)送數(shù)據(jù)時(shí)產(chǎn)生中斷接收允許位RI置1,將SBUF(緩沖寄存器)中的值輸入到暫存器中進(jìn)行數(shù)據(jù)處理。首先判斷數(shù)據(jù)是否設(shè)定的起始標(biāo)志位‘S’如果是則開始接收起始位后的33個(gè)字節(jié),不是則中斷返回繼續(xù)等待。接收到第34個(gè)字節(jié)后便將收到的數(shù)據(jù)發(fā)送回PC機(jī)進(jìn)行驗(yàn)證比較。RI=1?接收串口數(shù)據(jù)RI=1?接收串口數(shù)據(jù)起始位‘S’接收起始位后33位數(shù)據(jù)接收到第34位?將第2位起的32位數(shù)據(jù)發(fā)回PC機(jī)NNNYYY中斷開始中斷返回圖4-6通信程序流程圖所有軟件編寫完成后都必須經(jīng)過編譯才能被單片機(jī)識(shí)別使用。為了減小軟件的修改和優(yōu)化難度,先把各子程序?qū)憺橐粋€(gè)可單獨(dú)執(zhí)行的完整程序。各子程序編譯沒有錯(cuò)誤后再輸入單片機(jī)進(jìn)行驗(yàn)證,這兩項(xiàng)都通過后再將所有的程序整合到一起形成一個(gè)完整的程序再進(jìn)行編譯和驗(yàn)證。詳細(xì)程序見附錄2。
第5章系統(tǒng)調(diào)試硬件制作和軟件編寫過后,得出實(shí)物如圖5-1所示。實(shí)物完成后必須對(duì)其進(jìn)行調(diào)試,檢查設(shè)計(jì)功能是否實(shí)現(xiàn)了。軟件硬件完成后開始進(jìn)行調(diào)試。調(diào)試可分為硬件調(diào)試,軟件調(diào)試和系統(tǒng)聯(lián)合調(diào)試。圖5-1實(shí)物圖5.1系統(tǒng)硬件部分調(diào)試方法硬件調(diào)試主要是調(diào)試各部分的焊接是否合格和各芯片的輸出輸入電壓是否符合設(shè)計(jì)要求,最后測(cè)試各硬件部分能否完成設(shè)計(jì)功能。因此把硬件調(diào)試按照以下四部分分步來進(jìn)行:(1)測(cè)試所有焊點(diǎn)是否有短路和虛焊的現(xiàn)象存在;(2)通電測(cè)試所有硬件芯片的輸入輸出電壓是否在設(shè)計(jì)要求的范圍內(nèi);(3)測(cè)試ISP下栽線的功能是否能夠?qū)崿F(xiàn);(4)測(cè)試串口系統(tǒng)的通信功能是否能夠?qū)崿F(xiàn)。由于最重要的顯示系統(tǒng)功能的測(cè)試需要軟件配合所以在硬件調(diào)試部分只測(cè)試單片機(jī)復(fù)位電平,功能部分測(cè)試放在系統(tǒng)聯(lián)合調(diào)試部分來完成。5.1.1短路與虛焊檢測(cè)檢測(cè)工具為萬用表,使用萬用表的短路報(bào)警功能,逐個(gè)測(cè)試相臨的兩個(gè)焊點(diǎn)檢測(cè)是否短路。按照電路圖檢測(cè)需要連接的兩點(diǎn)是否短路來檢測(cè)是否已經(jīng)連接上,以此來檢測(cè)虛焊的情況。檢測(cè)和修改完成后為下一步通電檢測(cè)排除了短路的危險(xiǎn)和由于虛焊引起檢測(cè)結(jié)果不真實(shí)的麻煩。5.1.2上電測(cè)試由于系統(tǒng)測(cè)試時(shí)是采用USB電源為系統(tǒng)電源,所以電源輸入都為5V。顯示系統(tǒng)中單片機(jī)、譯碼器,鎖存器,驅(qū)動(dòng)電路的電源電壓均要求為5V所以可同時(shí)直接接入。上電后首先觀察電路是否有過熱,異味,冒煙的現(xiàn)象出現(xiàn)。經(jīng)過觀察,沒有這些現(xiàn)象出現(xiàn)。然后測(cè)試各器件的電源,接地及一些電平應(yīng)該固定的端口的電壓。測(cè)試的結(jié)果為:各器件電源端在4.3V~4.8V之間滿足器件的電源電壓要求,單片機(jī)端口在未接負(fù)載時(shí)端口電壓為4.5V。5.1.3串口調(diào)試串口部分的作用為單片機(jī)與PC機(jī)之間通信,要檢查硬件是否正常工作可以采用將MAX232芯片的單片機(jī)端輸出口與輸入口直接相連的辦法來測(cè)試。具體電路圖如圖5-2所示,將MAX232的第10端和第9端直接短接。功能上表示將單片機(jī)的輸出口與輸入口直接相連,單片機(jī)收到數(shù)據(jù)的同時(shí)就將數(shù)據(jù)發(fā)送回PC機(jī)。如果發(fā)送的數(shù)據(jù)能夠被接收則證明串口通信部分的硬件是正常的。【19】將串口與電腦COM1相接,通過串口調(diào)試助手發(fā)送不同位數(shù)的數(shù)據(jù)再在把發(fā)送的數(shù)據(jù)與接收數(shù)據(jù)相比較。圖5-2串口硬件調(diào)試5.2系統(tǒng)軟件調(diào)試方法由于已經(jīng)進(jìn)行了硬件調(diào)試,所以軟件調(diào)試主要是軟件編譯和將各功能塊程序分別寫入以驗(yàn)證其功能的可實(shí)現(xiàn)性。在進(jìn)行功能調(diào)試前必須用KEILC對(duì)所有程序進(jìn)行編譯,編譯成功生產(chǎn)可執(zhí)行的.hex后方可進(jìn)行功能測(cè)試。其中測(cè)試串口程序的功能是否完善不但要連接單片機(jī)系統(tǒng)還要借助串口調(diào)試工具。串口調(diào)試工具選用的是串口調(diào)試助手,其功能是按照設(shè)定的串口、波特率向單片機(jī)發(fā)送數(shù)據(jù)和接收單片機(jī)向PC機(jī)發(fā)送的數(shù)據(jù)。并且能把發(fā)送和接收的數(shù)據(jù)內(nèi)容顯示在狀態(tài)欄內(nèi)。因此只要設(shè)定PC機(jī)向單片機(jī)發(fā)送的內(nèi)容和單片機(jī)向PC機(jī)發(fā)送的內(nèi)容就可以通過串口調(diào)試助手驗(yàn)證串口通信是否準(zhǔn)確,是否滿足功能要求。串口程序的設(shè)計(jì)為:設(shè)定波特率位9600,以0XAA為起始標(biāo)志位,單片機(jī)接收自起始標(biāo)志位后的32位十六進(jìn)制數(shù)再發(fā)送會(huì)PC機(jī)。測(cè)試程序時(shí)設(shè)定波特率為9600,選擇串口1,無校驗(yàn),8位數(shù)據(jù)。PC機(jī)向單片機(jī)發(fā)送的內(nèi)容為aa11223344556677889900aabbccddeeff11223344556677889900aabbccddeeff。PC機(jī)收到的數(shù)據(jù)為11223344556677889900AABBCCDDEEFF11223344556677889900AABBCCDDEEFF。測(cè)試表明串口程序和串口電路實(shí)現(xiàn)了設(shè)計(jì)目的。再進(jìn)行數(shù)次不同數(shù)據(jù)的發(fā)送,接收到的數(shù)據(jù)也驗(yàn)證了設(shè)計(jì)要求的實(shí)現(xiàn)。圖5-3串口調(diào)試圖串口程序測(cè)試成功后為顯示程序提供了準(zhǔn)確的顯示內(nèi)容。余下得各種顯示程序和中斷程序都編譯成功后只有聯(lián)合硬件才能驗(yàn)證其功能的可行性。5.3系統(tǒng)聯(lián)合調(diào)試及結(jié)果經(jīng)過硬件調(diào)試和軟件調(diào)試,排除了硬件的連接問題和驗(yàn)證了串口功能的可實(shí)現(xiàn)性。其余功能的軟件便可以在此基礎(chǔ)上調(diào)試驗(yàn)證其功能的正確性。聯(lián)合調(diào)試的具體方法如下:(1)編寫一個(gè)逐點(diǎn)掃描的顯示程序,再結(jié)合硬件電路運(yùn)行。這樣做的目的在于檢測(cè)各器件是否能夠正常運(yùn)行和顯示屏的各個(gè)LED燈是否有損壞。結(jié)果顯示顯示屏中只有邊角出有一個(gè)LED燈被燒壞,其他器件邏輯功能運(yùn)行正常。(2)將靜態(tài)顯示子程序與各種動(dòng)態(tài)顯示程序結(jié)合硬件電路進(jìn)行調(diào)試。系統(tǒng)運(yùn)行時(shí)顯示如圖5-1所示,顯示圖像比較清晰,各動(dòng)態(tài)顯示效果也能夠?qū)崿F(xiàn)。但顯示存在兩個(gè)問題。一是發(fā)光點(diǎn)的下方會(huì)出現(xiàn)一個(gè)很微弱的亮點(diǎn),影響了整體的顯示效果。二是同一列的LED燈被點(diǎn)亮的數(shù)量與其亮度出反比,即如果同一列的燈都被點(diǎn)亮則亮度比只點(diǎn)亮幾個(gè)時(shí)要暗一點(diǎn)。(3)將串口通信,顯示,硬件聯(lián)合調(diào)試。按照設(shè)定的通信協(xié)議,先由PC機(jī)向單片機(jī)發(fā)送起始控制字s,接著再發(fā)送32比特的顯示數(shù)據(jù),最后發(fā)送控制顯示方式的顯示控制字。再發(fā)送不同的顯示數(shù)據(jù)和顯示控制字,觀察各種顯示方式的運(yùn)行情況和各種顯示方式之間的切換情況。結(jié)果是顯示屏執(zhí)行顯示控制指令,顯示所發(fā)送的內(nèi)容。5.4調(diào)試結(jié)果分析對(duì)調(diào)試中出現(xiàn)的問題進(jìn)行了分析,得出以下原因和修改辦法。(1)硬件的工作表現(xiàn)出不穩(wěn)定,主要是表現(xiàn)在LED顯示屏的驅(qū)動(dòng)電路部分和單片機(jī)系統(tǒng)部分。具體表現(xiàn)為單片機(jī)接負(fù)載后電壓被拉低值1.7V左右,無法滿足譯碼電路的輸入要求。顯示時(shí)會(huì)有一些行驅(qū)動(dòng)的輸出不夠設(shè)計(jì)指標(biāo),導(dǎo)致所驅(qū)動(dòng)的那一行在顯示屏上表現(xiàn)為選定的點(diǎn)不能夠很好區(qū)分,圖像出現(xiàn)模糊。分析造成這一現(xiàn)象的原因?yàn)椋附訒r(shí)三極管8550遭到了高溫?fù)p壞以致工作不穩(wěn)定和焊接的電路不夠牢靠,還有就是8550的e端所接電壓過高。修改辦法為將單片機(jī)輸出端口外接5K的上拉電阻,替換損壞三極管。(2)虛點(diǎn)的產(chǎn)生與軟件和三極管電壓有關(guān)。修改辦法是將軟件中的延時(shí)時(shí)間調(diào)至恰當(dāng)值,將8550的e端電壓降至3V左右。經(jīng)過調(diào)試和修改,系統(tǒng)實(shí)現(xiàn)了題目所要求的中英文顯示,動(dòng)態(tài)顯示及上位機(jī)通信與控制的要求。
結(jié)論經(jīng)過一段時(shí)間的工作,終于完成了基于51單片機(jī)的LED顯示系統(tǒng)的設(shè)計(jì),項(xiàng)目所要求的功能全部達(dá)到。通過這次設(shè)計(jì)收獲頗多,不僅是所作題目涉及到的軟硬件知識(shí)還有更為重要的實(shí)際經(jīng)驗(yàn)和過程中所發(fā)現(xiàn)的問題。接手題目之后從互聯(lián)網(wǎng)上對(duì)LED進(jìn)行了詳細(xì)的資料收集,從技術(shù)和產(chǎn)業(yè)的兩方面對(duì)LED進(jìn)行了了解。通過了解我認(rèn)識(shí)到LED是一門當(dāng)今應(yīng)用非常廣泛的技術(shù),整個(gè)產(chǎn)業(yè)每年都會(huì)有巨大的產(chǎn)值而且技術(shù)還在不斷發(fā)展和創(chuàng)新[20]。從設(shè)計(jì)之初就確定了參照大屏幕顯示屏的實(shí)現(xiàn)方法和實(shí)際情況設(shè)計(jì)一款小屏幕的LED點(diǎn)陣顯示屏。在查閱了大量的大屏幕顯示屏資料后確定了題目的設(shè)計(jì)方案。整個(gè)設(shè)計(jì)采用AT89S51做核心控制器,74LS164和74LS373組成譯碼電路,三極管8550和ULN2803做行和列驅(qū)動(dòng)。在實(shí)現(xiàn)這一設(shè)計(jì)的過程中所遇到的問題和困難給我留下了寶貴的經(jīng)驗(yàn)和深刻教訓(xùn)。這些經(jīng)驗(yàn)和教訓(xùn)是:(1)設(shè)計(jì)之前應(yīng)該進(jìn)行大量的資料收集和分析,確定一個(gè)清晰的設(shè)計(jì)思路;(2)器件選擇時(shí)要詳細(xì)閱讀器件使用手冊(cè),不但要考慮器件的功能實(shí)現(xiàn)還要考慮器件在整個(gè)系統(tǒng)中的兼容性;(3)硬件的系統(tǒng)的建立必須合理和穩(wěn)定,實(shí)物建立之前最好進(jìn)行仿真這樣才能為軟件提供一個(gè)可靠的試驗(yàn)平臺(tái);(4)軟件的編寫不但要實(shí)現(xiàn)功能還要不斷的優(yōu)化、簡(jiǎn)練、易讀。隨著課題的進(jìn)行,對(duì)LED的了解也越來越深入。認(rèn)為L(zhǎng)ED技術(shù)也會(huì)進(jìn)一步發(fā)展,LED應(yīng)用將會(huì)更加廣泛??梢栽O(shè)想利用LED的高穩(wěn)定性和低能耗,再與無線通信技術(shù)相結(jié)合在沙漠深處或者人跡罕至的雪山之顛樹立一塊依靠太陽能充電,通過無線傳輸方式更改顯示內(nèi)容的信息板為登山者提供指示和天氣信息,為沙漠迷路的人指引方向。設(shè)計(jì)結(jié)束了,但學(xué)習(xí)還在繼續(xù)。我相信通過此次設(shè)計(jì)所得到的知識(shí)、心得、經(jīng)驗(yàn)?zāi)酥粮惺芏紩?huì)讓我在以后的日子里受益匪淺。
致謝這次能夠圓滿完成畢業(yè)設(shè)計(jì)我首先要感謝我的指導(dǎo)老師***老師、***老師、***老師,感謝他們?cè)诋厴I(yè)設(shè)計(jì)期間對(duì)我的指導(dǎo)、勉勵(lì)、和督導(dǎo)。同時(shí)我要感謝大學(xué)四年里教過我課程的老師們,感謝他們對(duì)我知識(shí)增長(zhǎng)所付出的辛勤勞動(dòng)。我還要感謝全班同學(xué),感謝他們大學(xué)四年所做的所有令人感動(dòng)的、幽默的、滑稽的、荒誕的事情。我所在的實(shí)驗(yàn)室的同學(xué),我也要感謝你們。雖然大家來自不同專業(yè)相處時(shí)間也不長(zhǎng),但大家共同的愛好相同的目標(biāo)使得大家互相扶持共同努力。最后我要感謝我所住宿舍的管理員阿姨們,感謝她們不論多晚回去都給我們開門讓我們不至于露宿街頭。還有學(xué)校的保安和廚師,你們是我安全完成畢業(yè)設(shè)計(jì)的保障。
參考文獻(xiàn)[1]關(guān)積珍.\o"LED顯示屏發(fā)展?fàn)顩r及趨勢(shì)"LED.顯示屏發(fā)展?fàn)顩r及趨勢(shì)[J].世界電子元器件,2000,(02):277-301.[2]關(guān)積珍,陸家和.我國(guó)LED顯示屏技術(shù)和產(chǎn)業(yè)發(fā)展及展望.現(xiàn)代顯示,2004,(02):34-37.[3]JeyamkondanS,JayasDS,HollyRA.16x16dotmatrixLEDhas4mmprofile.ElectronicsWeekly,11/26/2003Issue2125,36-36,1/9p,1c;(AN11842012).[4]繆思恩.LED大屏幕顯示電路設(shè)計(jì)[J].電子技術(shù)應(yīng)用,1996,(08):56-77.[5]DaveJackson.關(guān)于DSP芯片的問與答.今日電子,1998,(12):1-7.[6]盧彌堅(jiān).主從分布式LED大屏幕顯示系統(tǒng)[J].電腦與信息技術(shù),1997,(04):6-13.[7]高勝東,梁采,張宏富.一種LED大屏幕顯示系統(tǒng)[J].成都?xì)庀髮W(xué)院學(xué)報(bào),1998,(03):108-120.[8]張全福.匯編語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革與探索.教學(xué)研究,2005,(06):3-5.[9]文哲雄.用單片機(jī)控制LED顯示屏[D].佛山:佛山科學(xué)技術(shù)學(xué)院,1995.[10]彭寧,只佩華.單片機(jī)對(duì)LED大屏幕顯示的控制系統(tǒng)[J].河北大學(xué)學(xué)報(bào)(自然科學(xué)版),1993,13(3):86-89.[11]陳玉華,王銘霞.LED大屏幕顯示電路的設(shè)計(jì)[J].大連海事大學(xué)學(xué)報(bào),1997,(03):55-56.[12]鄭剛,李宇成.LED大屏幕顯示系統(tǒng)的設(shè)計(jì)[J].北方工業(yè)大學(xué)學(xué)報(bào),2001,(03):43-47.[13]李元生.LED光柱專用驅(qū)動(dòng)器[J].家庭電子,2005,(04):1-7.[14]王亭,李瑞濤,宋召清.在Windows下PC機(jī)和單片機(jī)的串行通信[J].微型機(jī)與應(yīng)用,2000(1):25-27.[15]陳新忠.基于RS232總線的單片機(jī)多機(jī)通信軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2002,(03):56-78.[16]喬世杰.小波圖像編碼中的對(duì)稱邊界延拓法[J].中國(guó)圖像圖形學(xué)報(bào),2000,5(9):725-729.[17]李桂平.LED屏幕顯示器的設(shè)計(jì)[J].零陵師范學(xué)院學(xué)報(bào),2002,(9):367-380.[18]DavidFRogers.Computergraphicsalgorithm[M].Beijing:ChinaMachinePress,2002:97-99.[19]Marston,R..Radio-Electronics,WorkingwithLEDdisplaydrivers[J].Mar1992,Vol.63Issue3,65,8p,3charts,23diagrams;(AN9206290756).[20]Regenold,Stephen.LEDsAreStillPopular(andImproving)afterAllTheseYears[Z].Sep2004,Vol.18Issue9,44-44,1/7p,1c;(AN14525210).
附錄1:硬件原理圖
附錄2:設(shè)計(jì)程序//主程序主要為各功能子程序提供運(yùn)行平臺(tái),子程序分為顯示程序,特效顯示程序,//按鍵輸入中斷子程序//#include<reg51.h>//#include<absacc.h>//#include<intrins.h>#include<AT89x52.h>//#include<regx52.h>#defineCOUNT34#defineW0X01unsignedcharbuffer[COUNT];unsignedcharpoint;sbitA1=P1^0;//定義第一列對(duì)應(yīng)端口sbitA2=P1^1;//第二列sbitA3=P1^4;//第一行sbitA4=P1^5;//第二行sbitCLK_L=P1^2;//列移位時(shí)鐘上升沿觸發(fā)sbitCLEAR_L=P1^3;//列清除控制位低電平有效sbitCLK_H=P1^6;//行移位時(shí)鐘sbitCLEAR_H=P1^7;//行清除控制位低電平有效sbitEN=P2^0;sbitP21=P2^1;sbitOE=P2^2;//三態(tài)允許控制端低電平有效sbitLE=P2^3;//鎖存允許端unsignedcharcodeH1[16]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},H2[16]={0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0};//分別暫存行(H)列(L)所要顯示的數(shù)據(jù)unsignedcharL1,L2,i,command,k,j;charz,l,m,n,x;unsignedchardataziku[32];unsignedcharidatasort[32];unsignedintdatatemp;unsignedcharcodeBmp019[]=//靜態(tài)顯示內(nèi)容{/*源文件/文字:壽寬×高(像素):16×16字模格式/大小:單色點(diǎn)陣液晶字模,縱向取模,字節(jié)正序/32字節(jié)數(shù)據(jù)轉(zhuǎn)換日期:2007-5-3116:26:59*/0x00,0x22,0x22,0x2A,0x2A,0x2A,0x2F,0xFA,0x2A,0x2A,0x2A,0x2B,0x2A,0x2A,0x22,0x00,0x04,0x04,0x08,0x10,0x20,0xC0,0x20,0x5C,0x48,0x42,0x41,0xFE,0x40,0x40,0x40,0x00};//*************************************************************//串口中斷程序//功能:從PC機(jī)接收數(shù)據(jù),當(dāng)接收滿34位后將接收到的數(shù)據(jù)發(fā)送回PC機(jī)//*************************************************************com_interrupt(void)interrupt4using3{unsignedcharRECEIVR_buffer;if(RI==1){RECEIVR_buffer=SBUF;RI=0;TI=0;if(point==0){if(RECEIVR_buffer=='s')point++;elsepoint=0;}if(point>0&&point<35)buffer[point++]=RECEIVR_buffer;elsepoint=0;}//TI=0;if(point==35&&RI==0){ command=buffer[34];point=0; x=0;for(k=2;k<34;k++){SBUF=buffer[k]; sort[k-2]=buffer[k]; while(TI==0);TI=0;} }}voiddelay(intk)//延時(shí)程序{while(k--);}//**********************************************************************//靜態(tài)顯示程序//功能:將顯示數(shù)據(jù)處理后,控制串并轉(zhuǎn)換器并行輸出控制LED顯示//**********************************************************************voiddisplay()//顯示子程序{EN=1;P21=1;CLEAR_L=0; delay(5); CLEAR_L=1;for(i=0;i<16;i++){CLK_L=0;A1=H1[i];A2=H2[i];CLK_L=1; L1=ziku[i+z]; L2=ziku[i+16+z];if(i+z<0||i+z>15)continue; OE=1; LE=1; if(L1==0x00&&L2==0x00) continue; for(j=0;j<8;j++){CLK_H=0; if(L1&W==1)A3=0;elseA3=1;if(L2&W==1) A4=0;elseA4=1; CLK_H=1; L1>>=1; L2>>=1;}OE=0; LE=0; delay(110); CLEAR_H=0; delay(1); CLEAR_H=1;}}//右移顯示//功能:使得LED產(chǎn)生畫面右移得效果voidsdisplay_left(){if(m==0){ z++; m=30; } if(z==15) { l=0; z=0; }display(); m--;}//**********************************************************************//右移顯示//功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版腳手架安裝工程安全教育與培訓(xùn)合同3篇
- 二零二五年度苗木種植與生態(tài)農(nóng)業(yè)園區(qū)運(yùn)營(yíng)合作協(xié)議2篇
- 棄土場(chǎng)承包合同(2篇)
- 2025年度個(gè)人跨境貿(mào)易融資連帶責(zé)任擔(dān)保協(xié)議4篇
- 2025年瓦工勞務(wù)合作工程承包協(xié)議書9篇
- 二零二五年度門臉房屋租賃與鄉(xiāng)村振興戰(zhàn)略合作合同4篇
- 二零二五版民辦非企業(yè)公共設(shè)施捐贈(zèng)合同范本4篇
- 化學(xué)實(shí)驗(yàn)教學(xué)講座模板
- 二零二五版苗圃場(chǎng)技術(shù)員環(huán)保技術(shù)支持聘用合同4篇
- 集合交并差運(yùn)算課程設(shè)計(jì)
- 腰椎間盤突出疑難病例討論
- 《光伏發(fā)電工程工程量清單計(jì)價(jià)規(guī)范》
- 2023-2024學(xué)年度人教版四年級(jí)語文上冊(cè)寒假作業(yè)
- (完整版)保證藥品信息來源合法、真實(shí)、安全的管理措施、情況說明及相關(guān)證明
- 營(yíng)銷專員績(jī)效考核指標(biāo)
- 陜西麟游風(fēng)電吊裝方案專家論證版
- 供應(yīng)商審核培訓(xùn)教程
- 【盒馬鮮生生鮮類產(chǎn)品配送服務(wù)問題及優(yōu)化建議分析10000字(論文)】
- 肝硬化心衰患者的護(hù)理查房課件
- 2023年四川省樂山市中考數(shù)學(xué)試卷
- 【可行性報(bào)告】2023年電動(dòng)自行車行業(yè)項(xiàng)目可行性分析報(bào)告
評(píng)論
0/150
提交評(píng)論