標(biāo)題: 基于單片機16*16點陣顯示屏的設(shè)計及論文 [打印本頁]
作者: 15202495722 時間: 2016-5-17 09:38
標(biāo)題: 基于單片機16*16點陣顯示屏的設(shè)計及論文
摘 要 伴隨著科技的進(jìn)步,LED點陣顯示屏作為一種新興的顯示器件走進(jìn)我們的視野,它是由多個獨立的LED發(fā)光二極管封裝而成。通過LED點陣顯示屏可以顯示數(shù)字、符號以及文字,通常用在廣告,指示牌,公告牌上。
本設(shè)計利是一種基于STC89C52單片機的16*16點陣顯示屏的設(shè)計,其中STC89C52單片機負(fù)責(zé)對整個系統(tǒng)進(jìn)行總體控制,設(shè)計中使用4塊8*8單紅色點陣屏來組成16*16點陣屏,通過三極管來控制點陣的行方向的控制,而列方向的控制采用兩片串行輸入八位并行輸出的74LS595級聯(lián)來控制,通過快速的動態(tài)刷新來顯示我們需要的內(nèi)容,已達(dá)到動態(tài)顯示的目的。
關(guān)鍵詞:點陣 單片機 譯碼器 動態(tài)掃描
Abstract
With advances in technology, LED dot matrix display as a display device into our new vision, it is more independent of the LED light emitting diode packages. LED dot matrix display can show by numbers, symbols and text, often used in advertising, signs, bulletin boards.
The design is based on STC89C52 Lee microcontroller 16 * 16 dot matrix display design, which is responsible for the entire chip STC89C52 overall control system design using four 8 * 8 to form a single red dot-matrix screen 16 * 16 points front panel, through the decoder to control the direction of the control line dot matrix, and the column direction is controlled by two serial input parallel output of the 74LS595 eight cascaded to control, through a fast dynamic refresh to show that we need content, has reached the dynamic display purposes.
Keywords: dot matrix single-chip decoder dynamic scan
目 錄
摘 要 2
第1章 緒 論 4
1.1 課題的研究背景 4
1.1.1 LED電子顯示屏概述 4
1.1.2 LED電子顯示屏的分類 4
1.1.3 設(shè)計任務(wù) 5
1.2 MCS-51系統(tǒng)單片機簡介 6
第2章 總體設(shè)計 7
2.1 系統(tǒng)概述 7
2.1.1 顯示單元的選擇 7
2.1.2 滾屏方式選擇 7
2.1.3 關(guān)于屏幕的可擴展性 7
2.1.4 單片機控制器的考慮 8
2.1.5 關(guān)于點陣數(shù)據(jù)的存儲方式 8
第3章 硬件電路設(shè)計 9
3.1 整體設(shè)計框圖 9
3.2 主控電路 9
3.2.1 STC89C52 單片機簡介 9
3.3 LED點陣顯示電路 18
3.3.1 74LS595的總體特點和工作原理 19
3.4整體電路 21
3.5實物圖 21
第4章 軟件實現(xiàn) 22
4.1 概述 22
4.2系統(tǒng)程序方案設(shè)計 22
4.2.1主程序設(shè)計 23
4.2.2子程序設(shè)計 24
4.2.3延時函數(shù) 25
4.2.4行選控制 25
總 結(jié) 27
參考文獻(xiàn) 28
附錄1: 電路原理圖 29
附錄2: LED點陣顯示源程序 30
致 謝 38
元件清單 39
第1章 緒 論1.1 課題的研究背景 本文主要圍繞點陣的特點開展的點陣設(shè)計,設(shè)計中的難度諸多如限流電阻的計算,掃描時間的控制等,下面我們就介紹下點陣的概況。
1.1.1 LED電子顯示屏概述LED電子顯示屏(Light Emitting Diode Panel)是由幾百--幾十萬個半導(dǎo)體發(fā)光二極管構(gòu)成的像素點,按矩陣均勻排列組成。利用不同的半導(dǎo)體材料可以制造不同色彩的LED像素點。目前應(yīng)用最廣的是紅色、綠色、黃色。而藍(lán)色和純綠色LED的開發(fā)已經(jīng)達(dá)到了實用階段。 LED顯示屏是一種通過控制半導(dǎo)體發(fā)光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。
LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;而條幅顯示屏則適用于小容量的字符信息顯示。LED顯示屏因為其像素單元是主動發(fā)光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩(wěn)定等優(yōu)點。因而被廣泛應(yīng)用于車站、碼頭、機場、商場、醫(yī)院、賓館、銀行、證券市場、建筑市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。
LED顯示屏的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。
1.1.2 LED電子顯示屏的分類按顏色分類
單基色顯示屏:單一顏色(紅色或綠色)。
雙基色顯示屏:紅和綠雙基色,256級灰度、可以顯示65536種顏色。
全彩色顯示屏:紅、綠、藍(lán)三基色,256級灰度的全彩色顯示屏可以顯示一千六百多萬種顏色。
按顯示器件分類
LED數(shù)碼顯示屏:顯示器件為7段碼數(shù)碼管,適于制作時鐘屏、利率屏等,顯示數(shù)字的電子顯示屏。
LED點陣圖文顯示屏:顯示器件是由許多均勻排列的發(fā)光二極管組成的點陣顯示模塊,適于播放文字、圖像信息。
按使用場合分類
室內(nèi)顯示屏:發(fā)光點較小,一般Φ3mm--Φ8mm,顯示面積一般零點幾至十幾平方米。
室外顯示屏:面積一般幾十平方米至幾百平方米,亮度高,可在陽光下工作,具有防風(fēng)、防雨、防水功能。
按發(fā)光點直徑分類
室內(nèi)屏:Φ3mm、Φ3.75mm、Φ5mm、
室外屏:Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm
室外屏發(fā)光的基本單元為發(fā)光筒,發(fā)光筒的原理是將一組紅、綠、藍(lán)發(fā)光二極管封在一個塑料筒內(nèi)共同發(fā)光增強亮度。
1.1.3 設(shè)計任務(wù)本設(shè)計的任務(wù)就是完成一個16*16的點陣設(shè)計,并能滾動顯示“你好!我是陸敏杰”內(nèi)容。
任務(wù)要求:
(1) 能同時流動顯示漢字
(2) 能實現(xiàn)顯示漢字無閃爍
(3) 能實屏幕亮度較高
1.2 MCS-51系統(tǒng)單片機簡介 MCS-51系類單片機就有:
1.可靠性高:因為芯片是按工業(yè)測控環(huán)境要求設(shè)計的,故抗干擾的能力優(yōu)于PC機。系統(tǒng)軟件(如:程序指令,常數(shù),表格)固化在ROM中,不易受病毒破壞。許多信號的通道均在一個芯片內(nèi),故運行時系統(tǒng)穩(wěn)定可靠。
2.便于擴展:片內(nèi)具有計算機正常運行所必需的部件,片外有很多工擴展用的(總線,并行和串行的輸入/輸出)管腳,很容易組成一定規(guī)模的就算計機應(yīng)用系統(tǒng)。
3.控制功能強:具有豐富的控制指令:如:條件分支轉(zhuǎn)移指令,I/O的邏輯操作指令,位處理指令。
4.實用性好:體積小,功耗低,價格便宜,易于產(chǎn)品化。
單片機的發(fā)展歷史簡介:
(1) 第1階段(1971年—1978年),以MCS-48系列為代表,稱4位單片機。在片內(nèi):CPU有4位或8位;ROM有1KB或2KB;RAM有64B或128B;只有并行接口,無串行接口;只有1個8位的定時/計時器;中斷源只有2個。在片外:尋址范圍只有4KB;芯片引腳有40個。
(2) 第2階段(1978年—1983年)以MCS-51系列為代表,稱8位單片機。在片內(nèi):CPU有8位;ROM有4KB或8KB;RAM有128B或256B;有串/并行接口;有2個或者3個16位的定時/計時器;中斷源有5至7個。在片外:尋址范圍有64KB;芯片引腳有40個。
(3) 第3階段(1983年以后),以MCS-96系列為代表,稱16位單片機。在片內(nèi):CPU有16位;ROM有8KB;RAM有232B;有串/并行接口;有4個16位的定時/計時器;中斷源有8個;增加了D/A和A/D轉(zhuǎn)換電路。在片外:尋址范圍有64KB;芯片引腳有48個或者68個。
以上是對MCS-51系列以其優(yōu)良的性價比,在我國得到了廣泛的應(yīng)用。
第2章 總體設(shè)計2.1 系統(tǒng)概述 一個完備的系統(tǒng)要考慮到多種問題的實現(xiàn),點陣的設(shè)計也是如此,下面我詳細(xì)說明我的設(shè)計過程。
2.1.1 顯示單元的選擇顯示一個簡體漢字,至少需要16×16點陣來描述。為了在較遠(yuǎn)距離處獲得清晰的視覺效果,本設(shè)計采用4個8×8點陣,像素直徑5mm的紅色LED模塊拼接成16×16點陣的LED陣列。這樣每個16×16漢字能夠獲得12×12cm的顯示尺寸,因此在50米處仍能清晰閱讀。本設(shè)計要求整個屏幕能顯示“你好!我是陸敏杰”一系列漢字,則需要用使用16*16紅色點陣滾動顯示。
2.1.2 滾屏方式選擇字符的位置在屏幕上實現(xiàn)移動,即術(shù)語“滾屏”。可以用硬件實現(xiàn),但無疑增加了額外的硬件成本及設(shè)計難度。因此本設(shè)計采用軟件算法實現(xiàn)左滾屏顯示的常見滾屏方式。用軟件來完成滾屏算法,其最大的優(yōu)點在于成本低廉,而且可維護性、可升級性大大增強。
2.1.3 關(guān)于屏幕的可擴展性除了基本要求外,本設(shè)計還要實現(xiàn)顯示單元數(shù)目的隨意擴展。在傳統(tǒng)的并行傳輸方式中,因受到列數(shù)據(jù)鎖存器地址線數(shù)目的制約,不能隨意的增添顯示單元,且每個顯示單元的電路結(jié)構(gòu)不同,PCB結(jié)構(gòu)也不同,完全不符合模塊化設(shè)計的要求。因此摒棄了傳統(tǒng)的并行傳輸方式,而采用獨特的串行鎖存技術(shù),通過控制五根總線就能實現(xiàn)各顯示單元之間的列數(shù)據(jù)鎖存。不僅板間連接簡單,更是降低了PCB布局及布線的難度。每個顯示單元的PCB都是完全一樣的,便于量產(chǎn)。
2.1.4 單片機控制器的考慮因本設(shè)計采用軟件來實現(xiàn)滾屏,且傳輸方式為串行方式。所以對微控制器單元的處理速度要求較高,可供選擇的有ARM7和高速8位單片機。ARM的處理速度極快,但對于條屏的應(yīng)用,ARM內(nèi)部的資源浪費嚴(yán)重,且成本較高。因此選擇高速8位單片機作為控制器,常見的高速8位單片機有AVR系列單片機,C8051F系列單片機,STC89C52單片機。這幾種單片機的處理速度均能達(dá)到1MIPS/MHz(在時鐘頻率為1MHz時處理能力為每秒100萬條指令),但AVR系列單片機的極限時鐘頻率只能到16MHz,而C8051F系列SOC類似于ARM7,時鐘速度可到100MHz,但會浪費其內(nèi)部豐富的資源,而且價格昂貴,用在單色條屏的控制中頗感浪費。于是最佳選擇為STC89C52系列單片機,其最高時鐘能到40MHz,且有較豐富的接口及存儲器資源,價格極其低廉,零售價僅為9元/片。大幅降低了產(chǎn)品成本。
2.1.5 關(guān)于點陣數(shù)據(jù)的存儲方式目前使用最廣泛的技術(shù)是,通過上位機軟件將待顯示的字符串轉(zhuǎn)換為對應(yīng)的點陣字模數(shù)據(jù),通過燒寫的方式將這些字模數(shù)據(jù)按一定的順序編址后存儲在E2PROM中。在條屏顯示的過程中按規(guī)定的方式取出E2PROM中的字模數(shù)據(jù)進(jìn)行處理。對于一個16×16點陣的漢字字模數(shù)據(jù),需要連續(xù)32字節(jié)的E2PROM空間來存儲。照此計算,若有256個需要顯示的字符,則至少需要32B×256=8192字節(jié)(8KB)的E2PROM存儲空間。通常的單片機內(nèi)部沒有集成這么大容量的E2PROM。因此這種方案,需要在單片機外部擴展大容量的E2PROM,增加硬件成本。上位機程序設(shè)計由于涉及到漢字取模,取模算法的難度較大。在多字下載的時候傳輸時間也較長。諸多弊端使本設(shè)計放棄了傳統(tǒng)方案。因為本設(shè)計只需要很少的顯示內(nèi)容所以直接保存在STC89C52中是足夠的,因此沒有使用外部設(shè)備。
第3章 硬件電路設(shè)計3.1 整體設(shè)計框圖 經(jīng)過對此設(shè)計的分析,為了能夠?qū)崿F(xiàn)要求,利用單片機STC89C52作為本系統(tǒng)的主控模塊。LED點陣顯示屏作為顯示模塊,把單片機傳來的數(shù)據(jù)顯示出來,并且可以實現(xiàn)滾動顯示。硬件整體設(shè)計框圖如圖1所示:
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps3FB.tmp.jpg
圖1 整體設(shè)計框圖
下面對硬件電路進(jìn)行說明:
3.2 主控電路 此方案通過主控電路控制完成LED點陣顯示屏的字符滾動顯示,主控制器使用STC公司生產(chǎn)的單片機STC89C52。
3.2.1 STC89C52 單片機簡介 STC89C52 是STC公司推出的一款超強抗干擾,加密性強,在線可編程,高速,低功耗CMOS 8位單片機。片內(nèi)含 8k bytes 的可反復(fù)擦寫Flash只讀程序存儲器和256 bytes 的隨機數(shù)據(jù)存儲器(RAM),器件采用STC公司的高密度、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容, 片內(nèi)置通用8位中央處理器 (CPU)和Flash存儲單元, 功能強大的STC89C52單片機適合于許多較為復(fù)雜控制應(yīng)用場合。
1)STC89C52 外部結(jié)構(gòu)及特性
其外形封裝有兩種方式:雙列直插式40腳封裝(DIP)和方形44腳封裝 (PLCC),直插式40 腳封裝(DIP)和外部總線結(jié)構(gòu)如圖2和圖3所示:
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps3FC.tmp.jpg
圖2 STC89C52引腳排列 圖3外部總線
STC89C52的 4 個 8 位I/O口的功能說明如下:
(1)P0口:P0 口是一個 8 位漏極開路的雙向 I/O 口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低 8 位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash 編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。
(2)P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向 I/O口,p1輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0 和 P1.2 分別作定時器/計數(shù)器 2 的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器 2 的觸發(fā)輸入(P1.1/T2EX)。在 flash 編程和校驗時,P1口接收低8位地址字節(jié)。
(3)P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用 16 位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送 1。在使用8 位地址(如 MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2 口輸出 P2 鎖存器的內(nèi)容。在 flash 編程和校驗時,P2 口也接收高 8 位地址字節(jié)和一些控制信號。
(4)P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p2 輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在 flash 編程和校驗時,P3 口也接收一些控制信號。P3 口亦作為AT89C52特殊功能(第二功能)使用,如下所示:
l P3.0 RXD(串行輸入口)
l P3.1 TXD(串行輸出口)
l P3.2 INTO(外部中斷0 輸入口)
l P3.3 INT1(外部中斷 1 輸入口)
l P3.4 TO(定時器 0 外部輸入)
l P3.5 TI(定時器 1 外部輸入)
l P3.6 WR(外部數(shù)據(jù)存儲器寫選通信號)
l P3.7(外部數(shù)據(jù)存儲器讀選通信號)
2)功耗特性
(1)掉電模式:
典型功耗 <0.1uA,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序
(2)空閑模式:
典型功耗 2mA
(3)正常工作模式:
典型功耗 4mA-7mA
(4)掉電模式可由外部中斷喚醒,適用于水表,氣表等電池供電系統(tǒng)及便攜設(shè)備
3)STC單片機的命名規(guī)則
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps41C.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps41D.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps41E.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps41F.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps420.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps421.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps422.tmp.png STC89 xx xx xx—40 x-xxxx
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps423.tmp.png
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps424.tmp.png
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps434.tmp.png
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps435.tmp.png
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps436.tmp.png
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps437.tmp.png
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps438.tmp.png
4)STC89C52的內(nèi)部組成
STC89C52單片機在一塊芯片中集成了 CPU、RAM、ROM、定時器/計數(shù)器、看門狗和多種功能的 I/O 口設(shè)備的等,相當(dāng)于一臺計算機所需要的基本功能部件。
STC89C52單片機內(nèi)包含的具體部分如下:
l 一個8 位 CPU。
l 一個片內(nèi)振蕩器及時鐘電路。
l 8KB Flash 程序存儲器。
l 256 B RAM 數(shù)據(jù)存儲器。
l 三個16 位定時器/計數(shù)器。
l 可尋址 64KB 的外部數(shù)據(jù)存儲器和 64KB 的外部程序存儲器空間的控制電路。 32 條可編程的 I/O線(4組8 位并行 I/O端口)。
l 一個可編程全雙工串口通信。
l 8 個中斷源、兩個優(yōu)先級嵌套中斷結(jié)構(gòu)。
STC89C52單片機的框圖如圖4所示,各功能部件由內(nèi)部總線連接在一起。
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps439.tmp.jpg
圖4 STC89C52單片機框圖
5)特殊功能寄存器SFR
(1)單片機內(nèi)核特殊功能寄存器
(2)系統(tǒng)管理特殊功能寄存器
(3)中斷特殊功能寄存器
6)STC89C52單片機定時器的使用
定時和計數(shù)功能由特殊功能寄存器TMOD的控制位C/`T進(jìn)行選擇,TMOD寄存器的各位信息如下表所列。可以看出,2個定時/計數(shù)器有4中操作模式,通過TMOD的M1和M0選擇。2個定時/計數(shù)器的模式0、1和2都相同,模式3不同,各模式下的功能如圖5所述:
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps44A.tmp.jpg
圖5 定時/計數(shù)器各模式功能
| | |
| | TMOD.7控制定時器1,置1時只有在INIT0腳為高及TR1控制位置1時才可打開定時器/計數(shù)器1 |
| | TMOD.3控制定時器0,置1時只有在`INIT1腳為高及TR0控制位置1才可打開定時器/計數(shù)器1 |
| | TMOD.6控制定時器1用作定時器或計數(shù)器,清零則用作定時器(從內(nèi)部系統(tǒng)時鐘輸入),置1用作計數(shù)器(從T1/P3.5腳輸入) |
| | TMOD.2控制定時器0用作定時器或計數(shù)器,清零則用作定時器(從內(nèi)部系統(tǒng)時鐘輸入),置1用作計數(shù)器(從T0/P3.4腳輸入) |
| | |
| | 13位定時器/計數(shù)器,兼容8048定時器模式,TL1只用低5位參與分頻,TH1整個8位全用 |
| 16位定時器/計數(shù)器,TL1、TH1全用 |
| 8位自動重裝載定時器,當(dāng)溢出時將TH1存放的值自動重裝入TL1 |
| 定時器/計數(shù)器1此時無效(停止計數(shù)) |
| | |
| | 13位定時器/計數(shù)器,兼容8048定時器模式,TL0只用低5位參與分頻,TH1整個8位全用 |
| 16位定時器/計數(shù)器,TL0、TH0全用 |
| 8位自動重裝載定時器,當(dāng)溢出時將TH1存放的值自動重裝入TL0 |
| 定時器0此時作為雙8位定時器/計數(shù)器。TL0作為一個8位定時器/計數(shù)器,通過標(biāo)準(zhǔn)定時器0的控制位控制。TH0僅作為一個8位定時器,由定時器1的控制位控制。 |
(1)模式0
將定時器設(shè)置成模式0時,類似8048定時器,即8位計數(shù)器帶32分頻的預(yù)分頻器。下圖所示為模式0工作方式。此模式下,定時器配置為13位的計數(shù)器,由TLn的低5位和THn的8位所構(gòu)成。TLn低5位溢出向THn進(jìn)位,THn計數(shù)溢出置為TCON中的溢出標(biāo)志位TFn(n=0,1)。GATE=0時,如TRn=1,則定時器計數(shù)。GATE=1時,允許由外部輸入INIT1控制定時器1,INIT0控制定時器0,這樣可實現(xiàn)脈寬測量。
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps45B.tmp.jpg
圖6 定時器/計數(shù)器0和定時器/計數(shù)器1的模式0
(2)模式1
模式1除了使用THn及TLn全部16位外,其他與模式0完全相同、
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps45C.tmp.jpg
圖7定時器/計數(shù)器0和定時器/計數(shù)器1的模式1
(3)模式2
此模式下定時器/計數(shù)器0和1作為可自動重裝載的8位計數(shù)器(TLn),如下圖所示,TLn的溢出不僅置位TFn,而且將THn內(nèi)容重新裝入TLn,THn內(nèi)容由軟件預(yù)置,重裝時THn內(nèi)容不變,模式2的操作對于定時器0及定時器1是相同的。
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps46C.tmp.jpg
圖8 定時器/計數(shù)器0和1的模式2
(4)模式3
對定時器1,在模式3時,,定時器1停止計數(shù),效果與將TR1設(shè)置為0相同。
對定時器0,此模式下定時器0的TL0及TH0作為2個獨立的8位計數(shù)器。下圖為模式3時的定時器0邏輯圖。TL0占用定時器0的控制位:C/`T、GATE、TR0、INT0及TF0。TH0限定為定時器功能(計數(shù)器周期),占用定時器1的TR1及TF1。此時,TH0控制定時器1中斷。
模式3是為了增加一個附加的8位定時器/計數(shù)器而提供的,使單片機具有三個定時器/計數(shù)器。模式3只使用與定時器/計數(shù)器0,定時器T1處于模式3時相當(dāng)于TR1=0,停止計數(shù)(此時T1可用來作串行口波特率發(fā)生器),而T0可作為兩個定時器用。
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps46D.tmp.jpg
圖9 定時器/計數(shù)器0的模式3
3.3 LED點陣顯示電路本設(shè)計使用的是4塊8*8單色點陣屏設(shè)計16*16點陣屏,采用單色顯示,進(jìn)行顯示所要顯示的字符,通過三極管來控制點陣的行方向的顯示,而列方向的16條線則由74LS595的八位并行輸出端控制。
3.3.1 74LS595的總體特點和工作原理1)總體特點:74LS595是8位串行輸入轉(zhuǎn)并行輸出移位寄存器,三態(tài)輸出功能,具有數(shù)據(jù)存儲寄存器,移位寄存器和存儲器是分別的時鐘。數(shù)據(jù)在SHcp的上升沿輸入,在STcp的上升沿進(jìn)入的存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。在移位的過程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場合很有用處,數(shù)碼管沒有閃爍感。其DIP封裝引腳圖如圖7所示:
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps46E.tmp.jpg
圖7 74LS595引腳圖
各引腳及其功能:
| |
| |
| |
| |
| |
| |
| 并行數(shù)據(jù)輸出口,即儲寄存器的數(shù)據(jù)輸出口 |
2)工作原理
每當(dāng)SHcp上升沿到來時, Ds引腳當(dāng)前電平值在移位寄存器中左移一位,在下一個上升沿到來時移位寄存器中的所有位都會向左移一位,同時Q7'也會串行輸出移位寄存器中高位的值,這樣連續(xù)進(jìn)行8次,就可以把數(shù)組中每一個數(shù)(8位的數(shù))送到移位寄存器;然后當(dāng)STcp上升沿到來時,移位寄存器的值將會被鎖存到鎖存器里,并從Q1~7引腳輸出。74LS595的主要優(yōu)點是具有數(shù)據(jù)存儲寄存器,在移位的過程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場合很有用處,點陣沒有閃爍感。
74HC595在5V供電的時候能夠達(dá)到30MHz的時鐘速度,每個并行輸出端口均能承受20mA的灌電流和拉電流。這個特點保證了不用增加額外的擴流電路即可輕松的驅(qū)動LED。它輸入端允許500nS的上升(下降)時間,對嚴(yán)重畸形的時鐘脈沖仍能檢測。這樣就可以容納較大的傳輸線對地電容,使本設(shè)計的抗干擾能力增強。
74HC595并行輸出端與LED模塊列線之間通過20Ω的電阻連接,這里電阻起到分壓,去除紅色LED的并聯(lián)嵌位作用。使紅綠兩組LED均能正常發(fā)光。
由于LED顯示屏的工作電流時刻在變化,造成了系統(tǒng)電壓的波動。這種電壓波動有高頻成分,也有低頻成分。輕則對周圍無線電環(huán)境造成電磁污染,重則使系統(tǒng)時鐘紊亂,邏輯錯誤。為避免此,在每個74HC595的電源VCC和GND旁邊都并聯(lián)了兩個電容,用于濾波和退耦。穩(wěn)定系統(tǒng)電壓,旁路掉電源中的高頻脈動成份。消除自激,減小對外雜散電磁輻射,提高EMI電磁兼容性。
3.4整體電路見附錄1(電路原理圖)
3.5實物圖 下面為我制作的16*16點陣實物圖,正面圖與背面圖。
file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps46F.tmp.pngfile:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps480.tmp.png
16*16正面點陣圖 16*16背面點陣圖
第4章 軟件實現(xiàn)4.1 概述整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。 從軟件的功能不同可分為兩大類: 一是監(jiān)控軟件 (主程序) ,它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。 首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。
4.2系統(tǒng)程序方案設(shè)計系統(tǒng)程序主要包括了:主程序、點陣顯示驅(qū)動程序。
主程序:主要控制整個顯示部分的初始化,使系統(tǒng)在目測條件下LED顯示屏各點亮度均勻、充足,可顯示文字和數(shù)字,顯示的文字和數(shù)字應(yīng)穩(wěn)定、清晰無串?dāng)_。文字顯示可以移入移出。本設(shè)計的顯示內(nèi)容為“你好!我是陸敏杰”實現(xiàn)向右移動功能。
下面是主程序部分:
程序中首先對各個變量進(jìn)行初始化,并對74HC595進(jìn)行初始化,當(dāng)時初始化過程完成后,開始顯示處理。
//主函數(shù)
void main()
{
uchar i=1,j=0;
uchar X=0;
//595c初始化
Init595();
//循環(huán)演示
下面的程序是對顯示的處理主要是對漢字的移動和顯示的處理
while(1)
{
for(j=0;j<10;j++)//循環(huán)顯示10次
{
//送入16個位數(shù)據(jù)
for(i=1;i<17;i++)
{
WriteS(0xff,0xff);//消影
Wei_154(i);
WriteS(HanZi[i*2-2+2*X],HanZi[i*2-1+2*X]);//顯示內(nèi)容
Wei_154(i);
delay(7);//顯示
G2=0;//關(guān)閉
}
}
X++;
if(X==17*16)
X=0;
}
}
在主函數(shù)中完成函數(shù)的調(diào)用及字體的移動處理,所以使人們能看見可以移動字體顯示。
點陣顯示驅(qū)動程序:
主要實現(xiàn)對74ls595,已實現(xiàn)畫面的動態(tài)刷新。
//74ls595初始化
void Init595()
{
SI=1;
SCK=0;
RCK=0;
}
//向595中寫一個字節(jié)
void Write_byte595(uchar temp)
{
uchar i,data_=temp;
G2=1;
for(i=0;i<8;i++)//傳值8位
{
if(data_&0x01==0x01)//低位為1
{
SI=1;
}
else //低位為0
{
SI=0;
}
//產(chǎn)生一個上升沿
SCK=0;
SCK=1;
SCK=0;
data_>>=1;
}
RCK=0;//顯示數(shù)據(jù)
RCK=1;
RCK=0;
}
//595寫入一行的字節(jié)
void WriteS(uchar data1,uchar data2)
{
Write_byte595(data2);
Write_byte595(data1);
}
4.2.1主程序設(shè)計 通過主程序?qū)?font face="Times New Roman">74ls595的初始化和對子程序的調(diào)用完成單片屏幕的動態(tài)刷新以達(dá)到點陣的動態(tài)顯示目的。
4.2.2子程序設(shè)計 將各個功能程序以子程序的形式寫好, 當(dāng)寫主程序的時候, 只需要調(diào)用子程序,然后在寄存器的分配上作一下調(diào)整,消除寄存器沖突和 I/O 沖突即可。程序應(yīng)該盡可能多的使用調(diào)用指令代替跳轉(zhuǎn)指令。因為跳轉(zhuǎn)指令使得程序難以看懂各程序段之間的結(jié)構(gòu)關(guān)系。而調(diào)用指令則不同,調(diào)用指令使得程序結(jié)構(gòu)清晰,無論是修改還是維護都比較方便。將功能程序段寫成子程序的形式,除了方便調(diào)用之外,還有一個好處那就是以后寫程序的時候如果要用到,就可以直接調(diào)用這個單元功能模塊。下面對LED點陣顯示屏的顯示部分流程圖做介紹:
4.2.3延時函數(shù) 因為顯示原理是視覺暫留原理需要有延時控制顯示。延時函數(shù)如下:
//等待函數(shù)
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=7;y>0;y--);
}
4.2.4行選控制 通過單片機IO口控制三極管,可以實現(xiàn)5線控制16線的過程,如程序所示:
//154位選驅(qū)動
void Wei_154(uchar W)
{
G2=0;//使能
switch(W)
{
case 16:
{
A_=1;
B_=1;
C_=1;
D_=1;
break;
}
case 15:
{
A_=0;
B_=1;
C_=1;
D_=1;
break;
}
case 14:
{
A_=1;
B_=0;
C_=1;
D_=1;
break;
}
case 13:
{
A_=0;
B_=0;
C_=1;
D_=1;
break;
}
case 12:
{
A_=1;
B_=1;
C_=0;
D_=1;
break;
}
case 11:
{
A_=0;
B_=1;
C_=0;
D_=1;
break;
}
case 10:
{
A_=1;
B_=0;
C_=0;
D_=1;
break;
}
case 9:
{
A_=0;
B_=0;
C_=0;
D_=1;
break;
}
case 8:
{
A_=1;
B_=1;
C_=1;
D_=0;
break;
}
case 7:
{
A_=0;
B_=1;
C_=1;
D_=0;
break;
}
case 6:
{
A_=1;
B_=0;
C_=1;
D_=0;
break;
}
case 5:
{
A_=0;
B_=0;
C_=1;
D_=0;
break;
}
case 4:
{
A_=1;
B_=1;
C_=0;
D_=0;
break;
}
case 3:
{
A_=0;
B_=1;
C_=0;
D_=0;
break;
}
case 2:
{
A_=1;
B_=0;
C_=0;
D_=0;
break;
}
case 1:
{
A_=0;
B_=0;
C_=0;
D_=0;
break;
}
總 結(jié)經(jīng)過近兩個月的努力,終于順利完成了畢業(yè)設(shè)計。在此LED點陣顯示系統(tǒng)中,由于我采用了STC89C5單片機,并且采用串行移位寄存器74HC595作列線驅(qū)動,使本設(shè)計的硬件成本大幅下降,而又提高了顯示單元的可擴展性。因為使用了高速單片機,使本系統(tǒng)的動態(tài)刷新率,移動速度等得到保障。本設(shè)計充分利用了單片機的E2PROM等片上資源,節(jié)約成本的同時使外圍電路簡潔美觀,故障率降低。總體的性能指標(biāo)均達(dá)到或超過了題目的要求。
畢業(yè)設(shè)計是每個大學(xué)生必須面臨的一項綜合素質(zhì)的考驗,如果說在過去四年里,我們的學(xué)習(xí)是一個知識的積累過程,那么現(xiàn)在的畢業(yè)設(shè)計就是對過去所學(xué)知識的綜合運用,是對理論進(jìn)行深化和重新認(rèn)識的時間活動。在這近兩個月的畢業(yè)設(shè)計中,我們有艱辛的付出,當(dāng)然更多的是豐收的喜悅。知識固然得到了鞏固和提高,但我相信在實踐中的切身體會將會使我在以后的工作和學(xué)習(xí)中終身受用。
首先,學(xué)習(xí)能力得到了提高。在畢業(yè)設(shè)計中,自始至終獨立完成硬件電路的設(shè)計、單片機軟件編寫等。在這些過程中,遇到許多困難,但通過書籍或網(wǎng)絡(luò)查閱了很多相關(guān)文章和向?qū)熣埥毯蠼K于解決了。通過這次畢業(yè)設(shè)計,我不僅對理論有了更深一步的認(rèn)識,增強了和外界技術(shù)的溝通,還培養(yǎng)了自學(xué)能力和分析解決問題的能力,更重要的是,培養(yǎng)了克服困難的勇氣和信心。
其次,培養(yǎng)了自己的市場觀念。一個商品是否能夠搶占市場,除了必須的功能和質(zhì)量要求外,其價格是最大的競爭優(yōu)勢。如何在保證質(zhì)量和完成同等功能的情況下,把產(chǎn)品的成本降到最低。是每個設(shè)計人員在作出方案時首要考慮的因素。
再次,則是人際交流能力得到鍛煉。人非生而知之者!人的學(xué)識總是不能面面俱到的,這就要求我們必須善于借鑒別人的成功經(jīng)驗或失敗教訓(xùn),使自己少走彎路。
總之,畢業(yè)設(shè)計完成了,但又面臨著工作。我相信我會把自己的熱情和所學(xué)奉獻(xiàn)到自己的工作中,不斷努力,不斷進(jìn)取!
參考文獻(xiàn)[1] 譚浩強. C程序設(shè)計(第二版)[M]. 北京:清華大學(xué)出版社,1999.12.
[2] 彭為.單片機典型系統(tǒng)設(shè)計實例精講[M].北京:電子工業(yè)出版社,2006.5.
[3] 李良榮.現(xiàn)代電子設(shè)計技術(shù)-基于Multisim7[M].北京:機械工業(yè)出版社,2005.4.
[4] 姜承昊. 最新LED驅(qū)動電路設(shè)計、應(yīng)用與制造新技術(shù)新工藝實用手冊[M].北京:中國科學(xué)技術(shù)文獻(xiàn)出版社,2008.3.
[5] 魏洪興.嵌入式系統(tǒng)設(shè)計與實例開發(fā)實驗教材I[M].北京:清華大學(xué)出版社,2005.9.
[6] 童詩白.模擬電子技術(shù)基礎(chǔ)(第三版)[M].北京:高等教育出版社,2001.1.
[7] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,1998.11.
[8] 中國集成電路大全編委會編.《中國集成電路大全——CMOS集成電路》[M]. 北京:國防工業(yè)出版社,1985.
附錄1: 電路原理圖file:///C:/Users/阿坤/AppData/Local/Temp/ksohtml/wps491.tmp.jpg
附錄2: LED點陣顯示源程序#include <reg52.h> //調(diào)用單片機頭文件
#define uchar unsigned char //無符號字符型 宏定義 變量范圍0~255
#define uint unsigned int //無符號整型 宏定義 變量范圍0~65535
// // 1 2 3 4 5 6 7 8
uint code we[16]={0xfffb,0xffdf,0xff7f,0xffef,0xfffe,0xfffd,0xffbf,0xfff7,
0xdfff,0xfbff,0xfdff,0x7fff,0xf7ff,0xbfff,0xfeff,0xefff}; //左
/***********************1ms延時函數(shù)*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<50;j++);
}
uchar code table[][32] = {//
{0xFB,0x7F,0xFB,0xBF,0xFB,0xDF,0xFB,0xE7,0xFB,0xF9,0x03,0xFE,0xBB,0xFF,0xBB,0xFF,0xBB,0xBF,0xBB,0x7F,0xBB,0xBF,0x3B,0xC0,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFF,0xFF},/* ,0*/
{0xF7,0xFF,0xF7,0x7F,0xF7,0xBF,0xF7,0xDF,0xF7,0xE7,0x07,0xF8,0x76,0xFF,0x71,0xFF,0x77,0xBF,0x77,0x7F,0x77,0xBF,0x77,0xC0,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xFF,0xFF},/* ,1*/
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",8*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",9*/
};
uchar hanzi[32] ;
uchar i;
sbit SI=P3^6;
sbit SCK=P3^3; //上升沿有效
sbit RCK=P3^4; //上升沿有效
/**********發(fā)送一個數(shù)據(jù)************/
void send_byte(uchar a)
{
uchar i,nn;
nn=a;
for(i=0;i<8;i++)
{
SCK=0;
nn<<=1;
SI=CY;
SCK=1;
}
}
/**********595輸出************/
void out()
{
RCK=0;
RCK=1;
}
uint flag_value = 0;
uchar you = 0 ;
/**********主函數(shù)************/
void main()
{
static uchar value,value1,j;
for(i=0;i<32;i++ )
hanzi = 0xff;
flag_value = 0;
while(1)
{
value ++;
if(value >= 10) //延時進(jìn)來處理
{
value = 0;
value1 ++;
if(value1 <= 16)
{
value1 = 0;
for(j=0;j<15;j++)
{
hanzi[j*2+1] = hanzi[j*2+3] ;
hanzi[j*2] = hanzi[j * 2+2];
}
hanzi[30] = table[you][flag_value * 2];
hanzi[31] = table[you][flag_value * 2 + 1];
flag_value ++;
if(flag_value >= 16)
{
flag_value = 0;
you ++;
if(you >= geshu) //字全部顯示完了
you = 0;
}
}
}
for(i=0;i<16;i++)
{
out(); //595輸出
P2 = we / 256;
P0 = we % 256;
send_byte(hanzi[i*2]) ; //上
send_byte(hanzi[i*2+1]) ; //下
delay_1ms(1);
}
}
}
致 謝
此設(shè)計及論文是在*888*老師悉心指導(dǎo)和大力支持下完成的,*888*老師以其嚴(yán)謹(jǐn)求實的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神對我產(chǎn)生重要影響。在論文的寫作過程中,也得到了許多同學(xué)的寶貴建議,同時還有那些與我一起工作奮斗的兄弟姐妹,所以在此,我要一并致以誠摯的謝意。感謝所有關(guān)心、支持、幫助過我的良師益友。
元件清單STC89C52 1片
40DIP座 1個
30P電容 2個
12MHZ晶振 1個
10K電阻 1個
10uf電容 1個
排座 3個
自鎖開關(guān) 1個
10CM*10CM電路板 1個
導(dǎo)線 若干
排針 1條
74HC595 2個
74HC154 1個
8550 16個
2K電阻 16個
470歐電阻 16個
28DIP座 1個
16DIP座 2個
電池盒 1個
8*8紅色點陣塊 4個
作者: 2536583774 時間: 2016-6-13 22:00
學(xué)長,您有詳細(xì)的16*16點陣資料嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
精品视频一区二区三区
|
久久精彩视频
|
国产成人精品免高潮在线观看
|
久久国产精品一区二区三区
|
欧美精品一区二区三区在线播放
|
久久久久久av
|
中文视频在线
|
成在线人视频免费视频
|
日韩三级精品
|
久久毛片
|
成人在线小视频
|
欧美国产激情
|
亚洲精品久久久一区二区三区
|
欧美一区2区三区4区公司二百
|
欧美午夜在线
|
久久综合久
|
久久久精品网
|
亚洲激情网站
|
国产精品96久久久久久
|
国产精品久久亚洲
|
人人人人干
|
99精品久久久
|
久久久91精品国产一区二区三区
|
龙珠z在线观看
|
一区二区三区四区电影视频在线观看
|
一区二区三区精品在线
|
国产精品久久久久久一区二区三区
|
一区二区免费在线观看
|
www.成人.com|
人人看人人干
|
欧美日韩综合
|
亚洲精品成人
|
第四色影音先锋
|
一区二区三区四区免费观看
|
国产精品日韩高清伦字幕搜索
|
精品欧美一区二区在线观看
|
中文字幕免费观看
|
华人黄网站大全
|
99热热
|
天天射视频
|
999久久久
|