畢業(yè)設(shè)計(論文)基于單片機的廣告流水燈控制設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于單片機的廣告流水燈控制設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于單片機的廣告流水燈控制設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于單片機的廣告流水燈控制設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于單片機的廣告流水燈控制設(shè)計_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本科論文畢業(yè)設(shè)計題目:基于單片機的廣告流水燈控制設(shè)計專業(yè)名稱:電子信息工程學(xué)生姓名:學(xué)生學(xué)號:指導(dǎo)老師:畢業(yè)時間:基于單片機的廣告流水燈控制設(shè)計摘要:流水燈在工業(yè)現(xiàn)場、信號指示和廣告牌等很多方面都有應(yīng)用,采用單片機來控制流水燈方式更靈活,功能更強大。隨著社會的發(fā)展點陣式LED應(yīng)用范圍更廣,所以本論文通過8×8LED顯示屏相關(guān)電路設(shè)計制作一個16×16LED顯示屏。Proteus軟件可進行單片機仿真,本文用Proteus軟件設(shè)計漢字LED點陣的動態(tài)顯示,利用AT89C51作為主控芯片,74LS154譯碼器,74HC595作為驅(qū)動芯片,給出完整的設(shè)計電路和仿真程序代碼,通過運行顯示漢字。本設(shè)計體積小,硬件少電路結(jié)構(gòu)簡單且容易實現(xiàn)。關(guān)鍵詞:單片機;8×8LED;74HC595;74LS154

TheWaterLampControllerDesignBasedonMCUAbstract:Waterlampsintheindustrialfield,suchassignalingandbillboardshavemanyapplications,usingMCUtocontroltheflowlampismoreflexibleandmorepowerfulfunctionality.Alongwithsociety'sdevelopDot-matrixLEDapplication,sothispaper8*8Dot-matrixLEDrelatedcircuitdesign16*16Dot-matrixLED.Proteussoftwarecanundertakesingle-chipmicrocomputersimulation,thisarticlewiththeProteussoftwaredesigncharactersofLEDdotmatrix,usingdynamicdisplayofthemaincontrolchip74HC595and74LS154asAT89C51asdrivingchip,givesafullcircuitdesignandsimulationprogramcode,runningtheshowcharacters.Thisdesign,smallsize,hardwarecircuitstructureissimpleandlesseasyimplementation.Keywords:MCU;8×8LED;74HC595;74LS154

目錄TOC\o"1-3"\h\u245301引言 30圖974LS154編碼器外形表374LS154功能表圖1074LS154編碼器真值表5各系統(tǒng)設(shè)計5.1最小系統(tǒng)單片機的最小系統(tǒng)如圖11所示圖11最小系統(tǒng)5.2驅(qū)動電路采用兩片8位鎖存、串-并移位寄存器和三態(tài)輸出移位寄存器74HC595實現(xiàn)。數(shù)據(jù)SH_CP的上升沿輸入,在ST_CP的上升沿進入到存儲寄存器中去。移位寄存器有一個串行移位輸入(DS),和一個串行輸出(Q7'),和一個異步的低電平復(fù)位。使能端()為低電平,存儲寄存器的數(shù)據(jù)輸出到總線在移位過程中存儲寄存器輸出端數(shù)據(jù)可以保存不變,顯示屏沒有閃爍,74HC595還有輸出端時/禁止控制端,可使輸出為高阻態(tài)[10]。級聯(lián)如圖12所示:圖1274HC595級聯(lián)5.316×16LED點陣顯示屏用四個8×8LED組成,采用共陽極逐行掃描法,如圖13所示:圖1316×16LED5.4鍵盤控制電路設(shè)計本系統(tǒng)設(shè)置三個按鍵(key1、key2、key3)分別來控制卷屏、上移、左移顯示。首先進行鍵盤掃描判斷按鍵是否按下,如果key1鍵按下則進入卷屏顯示狀態(tài),如果當(dāng)key2鍵按下則進入上移顯示狀態(tài),如果當(dāng)key3鍵按下則進入左移顯示狀態(tài)。如圖14所示:圖14按鍵控制6系統(tǒng)電路圖圖15系統(tǒng)電路圖7程序設(shè)計7.1主程序流程圖系統(tǒng)主程序開始以后首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時器、中斷和端口。然后進行鍵盤掃描,如果key1鍵按下點陣卷簾輸出,如果key2鍵按下點陣上移輸出,如果key3鍵按下點陣左移輸出。其程序流程見圖16所示:鍵盤掃描鍵盤掃描系統(tǒng)初始化左移效果開始上移效果卷簾效果Key1鍵?Key3鍵?Key2鍵?YYYYY圖16主程序流程圖7.2顯示驅(qū)動程序流程圖顯示驅(qū)動程序查詢當(dāng)前點亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。圖17為顯示驅(qū)動程序(顯示屏掃描函數(shù))流程圖。進入中斷進入中斷定時器賦初值讀取行號并增1送新行顯示數(shù)消隱切換顯示數(shù)據(jù)送新行號,打開顯示退出中斷圖17顯示驅(qū)動程序流程圖8系統(tǒng)調(diào)試8.1軟件使用(1)首先根據(jù)系統(tǒng)要求,用KeilC編寫程序。KeilC是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。在KeilC軟件上打開建立工程文件,選擇51芯片,建立文件到工程中,如圖18所示,對程序進行編譯、連接以產(chǎn)生目標(biāo)代碼。編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中如圖19所示,如果源程序中有語法錯誤,會有錯誤報告出現(xiàn),雙擊改行,可以定位到出錯的位置,對源程序進行反復(fù)修改后,最終會得到如圖20所示的結(jié)果,提示獲得了hex文件,該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關(guān)的文件,可被用于Keil的方針與調(diào)試[13]。(2)對程序進行編譯、連接以后,按Ctrl+F5可進入調(diào)試狀態(tài),使用快捷鍵F11可以單步執(zhí)行程序,源程序左邊會出現(xiàn)一個黃色調(diào)試箭頭,指向源程序的第一行。每按一次F11,箭頭指向下一行。(3)確認程序無誤后,將目標(biāo)程序加載、運行。將系統(tǒng)的所有接口插好,檢查有無錯誤,運行載入程序。圖18工程建立圖19程序編譯圖20生成hex8.2刷新頻率計算顯示驅(qū)動程序在進入中斷后首先要對定時器T0重新賦初值以保證顯示屏刷新率的穩(wěn)定,1/16掃描的顯示屏的刷新率(幀頻)的計算公式[6]如下:其中fosc為晶振頻率,t0為定時器T0初值(工作在16位定時器模式)。8.3顯示效果處理為了消除在切換行顯示是出現(xiàn)拖尾現(xiàn)象,在中斷程序中,驅(qū)動程序應(yīng)先關(guān)閉顯示屏,等顯示數(shù)據(jù)的列驅(qū)動器74HC595的輸出鎖存器的數(shù)據(jù)輸入并鎖存后,在輸出新的行號,重新打開顯示屏顯示,即可消除拖尾現(xiàn)象。8.4結(jié)論分析16×16點陣LED電子顯示屏的電路系統(tǒng)較小,但是線路頗為麻煩,特別是在焊接點陣顯示屏?xí)r,8×8點陣LED引腳封裝很重要,由于我的馬虎把點陣LED的管腳號和功能號沒有對應(yīng),所以點陣顯示出來結(jié)果的不是一個整體的漢字。檢測硬件電路時發(fā)現(xiàn)16×16LED點陣屏第四行常亮,且亮度比其他行都亮。首先分析LED發(fā)光原理,只有當(dāng)電流過大時LED才會異常發(fā)光,且長時間發(fā)光是因為16×16LED點陣屏第四行的某個線路管腳與正電源相接使其長時間供電才導(dǎo)致LED燈常亮。出故障原因,可能是線路錯焊或者串線。用萬用表對焊點逐個檢測查找原因。在調(diào)試過程中發(fā)現(xiàn)按鍵沒有受到控制,沒達到仿真時的效果,利用萬用表檢測發(fā)現(xiàn)按鍵兩端無電壓所以按鍵失控。主要原因是我把按鍵引腳串聯(lián)把它電平拉低,修改時只需把串聯(lián)部分消除即可。9結(jié)束語本設(shè)計以AT89C51單片機為系統(tǒng)的控制核心,采用動態(tài)掃描的方法實現(xiàn)對16×16點陣LED的控制。該設(shè)計硬件電路簡單,方便調(diào)試,適用范圍廣泛。仿真結(jié)果基本實現(xiàn)漢字顯示,移動方式和按鍵選擇等功能。但在實物制作中由于把點陣封裝連線出現(xiàn)錯誤只能顯示按鍵移動方式,不能顯示一個完整漢字。所以希望老師多加指導(dǎo),給予意見。參考文獻[1]陳麗紅.點陣LED電子顯示屏控制系統(tǒng)設(shè)計與實現(xiàn)[J].福建電腦,2010.[2]張明波.基于單片機的點陣LED顯示系統(tǒng)的設(shè)計[J].單片機開發(fā)與應(yīng)用,2007.[3]吳金戊,沈慶陽,郭庭吉.8051單片機實踐與應(yīng)用[M].北京:清華大學(xué)出版社,2004.[4]屈朋偉.基于AT89S51的簡易16×16LED點陣顯示屏[J].單片機制作,2007.[5]張義和.51單片機(C語言)[M].北京:人民郵電出版社,2009.[6]張俊謨.單片機中級教程[M].北京:北京航空航天大學(xué)出版社,2008.[7]諸昌鈴.LED顯示屏系統(tǒng)原理及工程技術(shù)[M].成都:電子科技大學(xué)出版社,2000.[8]張毅剛.MCS-51單片機原理及應(yīng)用[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004.06.[9]張洪潤,劉秀英,張亞凡.單片機應(yīng)用設(shè)計200例(上冊)(下冊)[M].北京:北京航空航天大學(xué)出版社,2006.08.[10]羅云松.基于Proteus的單片機點陣LED漢字顯示[J].科技信息,2009.[11]許小軍.電子技術(shù)實驗與課程設(shè)計指導(dǎo).數(shù)字電路分冊[M].南京:東南大學(xué)出版社,2004.12.[12]陸應(yīng)華.電子系統(tǒng)設(shè)計教程[M].北京:國防工業(yè)出版社,2005.02.[13]張?zhí)煜?單片機十天征服你!哈爾濱:哈爾濱工業(yè)大學(xué),2007.[14]李朝青.單片機&DSP外圍數(shù)字IC技術(shù)手冊[M].北京:北京航空航天大學(xué)出版社,2005.[15]余孟嘗.數(shù)字電子技術(shù)基礎(chǔ)簡明教程[M].北京:高等教育出版社,2006.謝辭兩個多月的畢業(yè)設(shè)計已接近尾聲,在各位老師、學(xué)長、同學(xué)的熱情幫助下,經(jīng)過自己的不懈努力,畢業(yè)設(shè)計得以順利完成。完成之際,我首先要感謝我的指導(dǎo)老師邵思飛老師,感謝他對我的信任,把題目交給我,讓我得以鍛煉自己的能力。在畢業(yè)設(shè)計中遇到了各種困難,感謝他的指導(dǎo)和幫助,在大體的方向和小的細節(jié)方面給予了熱情的幫助和充分建議,指出了各方面的錯誤,讓我少走了很多彎路,順利完成了本次設(shè)計。在此我真誠的說聲:老師,謝謝您!謝謝您!畢業(yè)設(shè)計是對我們知識運用能力的一次全面的考核,也是對我們進行科學(xué)研究基本功的訓(xùn)練,培養(yǎng)我們綜合運用所學(xué)知識獨立的分析問題和解決問題的能力。所以再次由衷的感謝我們殷勤的老師為我們?yōu)⑾潞顾晦o辛勞!老師您辛苦了!隨著電子信息技術(shù)日新月異地飛速發(fā)展,人們總是處在不斷學(xué)習(xí)階段,再加上我能力水平有限,所以本設(shè)計肯定存在許多不盡人意的地方,歡迎廣大老師和同學(xué)批評指正。最后,我要感謝理工系所有老師,他們精心的栽培為我們以后的學(xué)習(xí)工作打下了堅實的基礎(chǔ)。謝謝您?。ㄈ墓灿?0116字)附錄1程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineBLKN2//列鎖存器數(shù)sbitG =P3^4; //74HC154(18)-E1為0開列(col)輸出顯示允許控制信號端口sbitR =P3^2; //74HC595(12)-ST_CP上升沿--移位寄存器的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器輸出鎖存器的時鐘信號端口sbitMR =P3^3; //P1.5為移位寄存器清○端sbitkey1 =P2^0;sbitkey2 =P2^1;sbitkey3 =P2^2;unsignedchardatadispram[32];//顯示緩存unsignedchari,j,k,b,l,v;unsignedcharcodeBmp[][32]={{0xFF,0xFF,0x07,0xE3,0xEC,0x1F,0xEF,0xDF,0xDF,0xDF,0x86,0xDF,0xD6,0xC3,0xF6,0xDF,0xB6,0xDF,0xB6,0xDF,0xD6,0x01,0xEF,0xFF,0xD7,0xFF,0xB9,0xFF,0x7E,0x01,0xFF,0xFF},/*"延",0*/{0xFD,0xFF,0xFE,0xFF,0xC0,0x01,0xDF,0xFB,0xBB,0xF7,0xF9,0xFF,0xFB,0xFF,0x00,0x01,0xF7,0xDF,0xF7,0xDF,0xF7,0xBF,0xF9,0x7F,0xFE,0xFF,0xF9,0x3F,0xE7,0xC7,0x1F,0xEF},/*"安",1*/{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x7F,0xFD,0x7F,0xFD,0xBF,0xFB,0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xE7,0xDF,0xF1,0xBF,0xFB},/*"大",2*/{0xFE,0xF7,0xEF,0x73,0xF3,0x37,0xF7,0x6F,0x80,0x01,0xBF,0xFB,0x70,0x17,0xFF,0xBF,0xFF,0x7F,0x80,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},/*"學(xué)",3*/{0xFF,0xFF,0x00,0x01,0xFB,0xBF,0xFB,0xBF,0x80,0x03,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xB7,0xC3,0xAF,0xFB,0x9F,0xFB,0xBF,0xFB,0x80,0x03,0xBF,0xFB,0xFF,0xFF},/*"西",4*/{0xFD,0xFF,0xFE,0xFF,0xC0,0x01,0xDF,0xFB,0xBB,0xF7,0xF9,0xFF,0xFB,0xFF,0x00,0x01,0xF7,0xDF,0xF7,0xDF,0xF7,0xBF,0xF9,0x7F,0xFE,0xFF,0xF9,0x3F,0xE7,0xC7,0x1F,0xEF},/*"安",5*/{0xF7,0xFD,0xF7,0xFD,0xEB,0xED,0xEC,0xED,0xDE,0x2D,0xBF,0x6D,0x40,0xED,0xDE,0xED,0xDE,0xED,0xDA,0xED,0xDD,0xED,0xDF,0x7D,0xDF,0x7D,0xDF,0x75,0xE0,0x7B,0xFF,0xFF},/*"創(chuàng)",6*/{0xEF,0xFF,0xF7,0xF1,0x80,0x8F,0xDD,0xBF,0xEB,0xBF,0x00,0x81,0xF7,0xB7,0xF7,0xB7,0x00,0xB7,0xF7,0xB7,0xD3,0xB7,0xD5,0x77,0xB5,0x77,0x76,0xF7,0xD5,0xF7,0xEF,0xF7},/*"新",7*/{0xFE,0xF7,0xEF,0x73,0xF3,0x37,0xF7,0x6F,0x80,0x01,0xBF,0xFB,0x70,0x17,0xFF,0xBF,0xFF,0x7F,0x80,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},/*"學(xué)",8*/{0xFF,0x7F,0x07,0xBF,0x70,0x01,0x6B,0xFB,0x5F,0xFF,0x5C,0x07,0x6F,0xFF,0x77,0xFF,0x70,0x01,0x56,0xDF,0x6E,0xDF,0x7E,0xDF,0x7D,0xDD,0x7D,0xDD,0x7B,0xDD,0x77,0xE1},/*"院",9*/};voidkey();/*顯示屏掃描(定時器T0中斷)函數(shù)*/voidleddisplay(void)interrupt1using1{ registerunsignedchari,j=BLKN;TH0=0xF8;//設(shè)定顯示屏刷新率每秒62.5幀 TL0=0x30; i=P1;//讀取當(dāng)前顯示的行號 i=++i&0x0f;//行號加1,屏蔽高4位 do { j--; SBUF=~dispram[i*BLKN+j];//送顯示數(shù)據(jù)while(!TI); TI=0;} while(j);//完成一行數(shù)據(jù)的發(fā)送 G=1;//消隱(關(guān)閉顯示) P1=0x00;//行號端口清○ R=1;//顯示數(shù)據(jù)打入輸出鎖存器 P1=i;//寫入行號 R=0;//鎖存顯示數(shù)據(jù) G=0;//打開顯示}voiddelay10ms(void)//延時子程序{unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}voiddelay(intms)//延時子程序{while(ms--) { for(v=0;v<250;v++) { _nop_(); _nop_(); _nop_(); _nop_(); } }}voiddisp01(){delay(200); for(i=0;i<32;i++)//清屏{dispram[i]=0xff; delay(10);}while(1) { for(b=0;b<10;b++)//延時2秒{for(i=0;i<32;i++)//顯示效果:卷簾{dispram[i]=Bmp[b][i]; key(); delay(20); } delay(20); } }}voiddisp02(){delay(200);for(i=0;i<32;i++)//清屏{dispram[i]=0xff; delay(10);} while(1) {for(i=0;i<10;i++)//顯示效果:上移{for(j=0;j<16;j++){for(k=0;k<15;k++){dispram[k*BLKN]=dispram[(k+1)*BLKN];dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];}dispram[30]=Bmp[i][j*BLKN];dispram[31]=Bmp[i][j*BLKN+1]; key();delay(50);} } } }voiddisp03(){ delay(200);for(i=0;i<32;i++)//清屏{dispram[i]=0xff; delay(10);} while(1){for(i=0;i<10;i++)//顯示效果:左移{for(j=0;j<2;j++)for(k=1;k<9;k++){for(l=0;l<16;l++){dispram[l*BLKN]=dispram[l*BLKN]<<1|dispra

溫馨提示

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

評論

0/150

提交評論