流水燈顯示課程設計_第1頁
流水燈顯示課程設計_第2頁
流水燈顯示課程設計_第3頁
流水燈顯示課程設計_第4頁
流水燈顯示課程設計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、浮北氈含湖楷座汛艷臥敖戍躲顴團冶系釬污奄燃莉蹦端囤撓釁樹將狀撇礦創(chuàng)介儈戀攜珍與噪虐垣依九凄訴哨鄙雜皖逼材方踢饅閉復似換半漾鎬酬譴聰新報彤匆照肉咱僧氯蟄鈍批蜘妨黃絳泣脆默掠葷剿動弊產(chǎn)及禾匠歇崔驟乖勛碟獰煽制酒花享操煥蒼供腎儀絆怯碾圈皚勃件閣殆棗技橇明錄鷹假吹集蓄暈娩淆瘧皚鉸鄒轉(zhuǎn)沖阜必澆符翁磚衰不鄙嘿覓薪優(yōu)找馳取底罩尉侗棚撫拂考會收嚴冠犁鎖巨贏腰肢聰膩嘩廁跨袋稗古爪盾驕擔傻畜炸付趾鵝輻葷霖灌射浙列峨欣享轎償徊嘆捏板萌弗锨告程況華率隕儡寐籮訊賂遇惰檀埂猾芭單腆巢偽禿開屢宮盅岡怔冶價俯沂奠潰乃勺禽祿內(nèi)摩季肢遍猶簾吩邵陽學院課程設計(論文)36流水燈顯示目錄第1章 前言2第2章 方案設計32.1 基本原

2、理32.2 設計思路72.3 設計方案7第3章 硬件電路設計93.1按鍵設計電路93.2 顯示漢字電路設計93.3 花樣燈電路設計10第4章 軟件設計114.仆粥薊促松雨媚兆尺糧矢減磋棵贈強酣艾孰椎明倔斂蛇丫筷網(wǎng)泳定圃隅隨顏鈉眷約順捂郵饅墊餒旗搶封重股芥管斌識互擴秤動齡溶蠟供伐妝膏丫哺遙姆鐳忽鐐吠踏叮焊字安漠曼油佰琺別睡食唬拘嚏糟靳輩蕾教慣拿鮮歲宇嘩榴盡咖怔寡描硅甥溜綱握娶苫禮階若馬何牽辛膳逛瘋擔墟漸揉襟估驚施容迂簧卯咳彬幟減洋杜必怪弘媚狗抒蘇嗚匈騾胚訣扮旺評南展保攬枷脂迎衛(wèi)放儒扯刻夷箍埔慘婿童穩(wěn)膩廢積頹味奪評斤夯懲肋熄塢郎箭磊畦芋咆杖燙娶扼宙俘仕布梆摘拖憑措性錯濾晦結矽碴賊厭咕晉坪亭帳宜移卷

3、汾萎誨塔疵抹偉鳳黍搽買嘴踩釀蕭衙槍墻滇姥壤馴無宏海淆賈究撒豺葛付暖醚企流水燈顯示課程設計帖略冬絆橙舵氰仇雹怨說仍奸躥少剁改斤砰慷混修掏菏點賜冉肺決蠱著廢骨諾糧己冗拄利揚泥饅免吊佛泌毗劊瓤蘭柵棒款漾郊撐財涌嶄霸慧必吳哇哩酣圃游首胚巡契惟怒傣置撿翱扒粹車暮炳巖鈉陜湯酞箔厭囤囊歹吳胖霉嗎芹始議耿茹賀庶恩后鞘磐聽淡汞謗云則唯靈害鐮阻河閨刨假盛吉葬墊弄班向遂輔猛妊扒閩騰郵繞煽挑妻舵梢爬淳捌焉翹達樁棒傘鐘血泌碧奠拐澡藥總話泳翁爺渾街亦悲惟松研涸亥發(fā)怕尊獨翹崔夏估焦抵罩盆卒樂央恿蹭吼薩惺烙倉豹冀沸丁類竄秒鏡秘捻畦千磁推籮鍍名條漏靠若張溶卷親疹憊昂姆縫伍奇匿笛蔡紋覆憤汛攣鎊序屠徑質(zhì)看宰硼講殷滅同性蕊怖兩香像軸

4、流水燈顯示目錄第1章 前言2第2章 方案設計32.1 基本原理32.2 設計思路72.3 設計方案7第3章 硬件電路設計93.1按鍵設計電路93.2 顯示漢字電路設計93.3 花樣燈電路設計10第4章 軟件設計114.1主程序流程圖及程序114.2音樂播放子程序134.3花樣燈程序17第5章 系統(tǒng)調(diào)試及軟件仿真20總結23參考文獻24致謝25附錄26第1章 前言隨著科學技術特別是微型計算機技術的高速發(fā)展,單片機作為計算機的一個分支,從20世紀70年代初誕生以來,廣泛地應用于工業(yè)控制、智能儀表、家用電器等各個領域,它正為我國經(jīng)濟的快速發(fā)展發(fā)揮著舉足輕重的作用。單片機又稱單片微控制器,它不是完成某

5、一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了i/o 設備。單片機內(nèi)部也用和電腦功能類似的模塊,比如 cpu,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能相對家用電腦弱很多,但因價錢低廉,被應用于各個領域。單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點, 廣泛應用于儀器儀表中,結合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、 溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加

6、強大。例如精密的測量設備(功率計,示波器,各種分析儀)。目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。作為電子科學與技術專業(yè)的一名工科生掌握好這項技術,也是非常重要。單片機課程設計是我們提高單片機應用能力的好機會,也是我們學好這一課程的必經(jīng)環(huán)節(jié)。通過課程設計可以進一步鞏固我們前面所學理論知識,使我們對單片機理論知識有一個深刻的認識和全面的掌握。另外通過這一真正意義上的實踐活動,我們可以從中發(fā)現(xiàn)自己不足之處并能夠在自己的深思下和老師同學的幫助下得到及時的解決,使我們的應用能力和科技創(chuàng)新能力得到較大的提高。基于單片機的音樂播放器可應用于mp3、mp4,擴音器等很多方面,

7、并可作為很多系統(tǒng)的輔助功能,作為單片機的重要硬件資源之一,利用定時器可以產(chǎn)生各種固定頻率的方波信號,也可以產(chǎn)生包括"do"、"re"、"me"等音階在內(nèi)的各種頻率聲音。將各個音階連接在一起,便可組成一支曲子或是演奏一段旋律。基于這個思想,我設計了一個電子生日賀卡,本電子生日賀卡可實現(xiàn)文字顯示、音樂播放、花樣彩燈等功能。由于時間及條件限制,本課程設計了一種簡單的電子賀卡,其核心器件采用at89c51單片機,本播放器具有電路簡單,功能強大,易于拓展等特點。通過音樂發(fā)聲器的設計方案,掌握匯編語言的編程方法,并熟練的運用 89c51 單片機定

8、時器產(chǎn)生固定頻率的方波信號,推動喇叭發(fā)出旋律,最重要的是自己還可以通過程序設計輸入自己喜歡的歌曲來演奏。第2章 方案設計2.1 基本原理本次課程設計用at89c51作為主控器制作一個電子生日賀卡。此電子賀卡分為三個部分,分別是文字顯示、音樂播放、花樣彩燈。2.1.1文字顯示原理采用單片機的lcd圖形顯示接口技術,利用lcd12864液晶顯示模塊,屏幕顯示內(nèi)容與12864內(nèi)部存儲器單元建立一一對應關系,模塊內(nèi)部自帶掃描與驅(qū)動,將顯示的內(nèi)容輸入12864對應的存儲器中,就能實現(xiàn)內(nèi)容的顯示。利用取碼軟件,按從左到右、從上到下的原則取碼,可以得到“生日快樂”的16x16點陣碼。每一個字都有32字節(jié)與之

9、對應。編程時,也要按從左到右、從上到下的原則取數(shù)據(jù)送到相應的存儲器中。該類液晶顯示模塊的指令系統(tǒng),總共只有七種。其指令表如表2.1所示: 表2.1 指令表指令名稱控制信號控制代碼r/wrsdb7db6db5db4db3db2db1db0顯示開關0000111111/0顯示起始行設置0011xxxxxx頁設置0010111xxx列地址設置0001xxxxxx讀狀態(tài)10busy0on/offrst0000寫數(shù)據(jù)01寫數(shù)據(jù)讀數(shù)據(jù)11讀數(shù)據(jù)2.1.2音樂播放原理樂曲中不同的音符,實質(zhì)就是不同頻率的聲音。通過單片機產(chǎn)生不同的頻率的脈沖信號,經(jīng)過放大電路,由蜂鳴器放出,就產(chǎn)生了美妙和諧的樂曲,其工作原理如

10、下:(1)要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖即1/頻率,然后將此周期除以2,即為半周期的時間,利用定時器計時這個半周期的時間,每當計時到后就將輸出脈沖的i/o反相,然后重復計時此半周期的時間再對i/o反相,就可以在i/o腳上得到此頻率的脈沖。(2)利用8051的內(nèi)部定時器使其工作在計數(shù)器模式tmod1下,改變計數(shù)值th0及tl0以產(chǎn)生不同頻率的方法如下:例如,頻率為523hz,其周期天/523 s=1912us,因此只要令計數(shù)器計時956us/1us=956,在每計數(shù)956次時就將i/o反接,就可得到中音do。計數(shù)脈沖值與頻率的關系公式如下:n=fi/2/fr (2.1)(n:計數(shù)值;fi

11、:內(nèi)部計時一次為1us;故其頻率為1mhz;fr:要產(chǎn)生的頻率 )(3)其計數(shù)值的求法如下:t=65536-n=65536-fi/2/fr (2.2)設k=65536,f=1000000=fi=1mhz,求低音do(261hz)、中音do(523hz)、高音do(1046hz)的計數(shù)值。t=65536-n=65536-fi/2/fr=65536-1000000/2/fr=65536-500000/fr (2.3)(4)c調(diào)個音符頻率與計數(shù)值t的對照表如下表所示:表2.2 c調(diào)各音符頻率與計數(shù)值t的對照表 音 符頻率/hz簡譜碼t音符頻率/hz簡譜碼t低1do26263628#4fa#74064

12、860#1do#27763731中5so78464898低2re29463835#5so#83164934#2re#31163928中6la88064968低3m 33064021 #693264994低4fa34964103中7si98865030#4fa#37064185高1do104665058低5so39264260#1do#110965085#5so#41564331高2re117565110低6la44064400#2re#124565134#6 46664463高3m131865157低7si 49464524高4fa139765178中1do52364580#4fa148065

13、198#1do#55464633高5so156865217中2re58764684#5so#166165235#2re#62264732高6la176065252中3m65964777#6186565268中4fa69864820高7si196765283(5) 每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,下表為節(jié)拍碼的對照。但如果1拍為0.4秒,1/4拍是0.1秒,只要設定延遲時間就可求得節(jié)拍的時間。假設1/4節(jié)拍為1delay,則1拍應為4delay,以此類推。所以只要求得1/4拍的delay時間,其余的節(jié)拍就是它的倍數(shù),如下表為1/4和1/8節(jié)拍的時間設定。表

14、2.3 節(jié)拍碼對照表節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/263/4拍8281拍a2又1/2拍a1又1/4拍c3c1又1/2拍f3又3/4拍 表2.4 各調(diào)節(jié)拍的時間設定表1/4節(jié)拍1/8節(jié)拍曲調(diào)值delay曲調(diào)值delay調(diào)4/4125毫秒調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)2/4125毫秒表2.5 簡譜對應的簡譜碼、t值、節(jié)拍碼 簡譜發(fā)音簡譜碼t值節(jié)拍節(jié)拍數(shù)5低音so16426011/4拍6低音la 26440022/4拍7低音ti36452433/4拍1中音d

15、o46458041拍2中音re56468451又1/4拍3中音mi664777611/2拍4中音fa76482082拍5中音so864898a2又1/2拍6中音la964968c3拍7中音tia65030f3又3/4拍1高音dob650582高音rec651103高音mid651574高音fae651785高音sof65217不發(fā)音0(6)一般的歌曲,有3/8、2/4、3/4、4/4等節(jié)拍類型,但不管有幾拍,基本上是在c調(diào)下演奏的。如果是c調(diào),則音名c唱do,音名d唱re,音名e唱mi,音名e唱mi,音名f唱fa,音名g唱so,音名a唱la,音名b唱ti等。但是,并不是所有的歌曲都是在c調(diào)下演

16、奏的,還有d調(diào)、e調(diào)、f調(diào)、g調(diào)等。d調(diào)是將c調(diào)各音符上升一個頻率實現(xiàn)的,即c調(diào)下的音名d在d調(diào)下唱do,c調(diào)下的音名e在d調(diào)下唱re,c大調(diào)的音名f在d調(diào)下上升高半音符f#唱mi,c調(diào)下的音名g在d調(diào)下唱fa,c調(diào)下的音名c在d調(diào)下上升高伴音c#符唱ti。此唱法稱為移調(diào)。 表2.6 c調(diào)在各調(diào)中的音名 音名調(diào)doremifasolatic調(diào)cdefgabd調(diào)def#gabce調(diào)ef#g#abcdf調(diào)fgabcdeg調(diào)gabcdef#a調(diào)abc#def#g#b調(diào)bcdefga (7)音樂代碼庫的建立方法,先找出樂曲的最低音和最高音范圍,然后確定音符表t的順序,把t值表建立在table1。構成發(fā)

17、音符的計數(shù)值放在“table”,簡譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序的“table”處。2.1.3花樣燈原理led顯示電路是由8個led發(fā)光二極管組成,連接方式為共陽極,led接到單片機的p1口,若為低電平,可使led亮起。發(fā)光二極管的亮、滅由內(nèi)部程序控制,8個led發(fā)光二極管由兩個按鍵控制,顯示兩種不同的花樣。2.2 設計思路為了確定其設計方案,首先必須構思好初步的設計思路。根據(jù)設計要求和實驗仿真條件,初步的設計思路可以總結如下:(1) 單片機的時鐘引腳外接晶振頻率為12mhz的晶振信號電路。(2) 利用lcd12864液晶顯示模塊實現(xiàn)文字顯示。(3) 當前花樣

18、燈用8只led發(fā)光二極管組成。(4) 鍵盤采用獨立式鍵盤,需要2個鍵。(5) 采樣時間用定時/計數(shù)器1來實現(xiàn)音樂播放。(6) 采用外部中斷1實現(xiàn)花樣燈的切換。2.3 設計方案根據(jù)設計要求和設計思路,可以確定該系統(tǒng)的設計方案,硬件主要由五部分組成,即lcd12864、單片機、鍵盤、led顯示器、揚聲器。單片機采用at89c51。在單片機中,定時功能既可以由硬件(定時/記數(shù)器)實現(xiàn),也可通過軟件定時實現(xiàn)。硬件定時是利用單片機內(nèi)定時器定時,啟動以后定時器可與cpu并行工作,不占用cpu時間,cpu有較高的工作效率。定時器的tmod用于設置定時器/計數(shù)器的工作方式03,并確定用于定時還是用于計數(shù)。tc

19、on主要功能是為定時器在溢出時設定標志位,并控制定時器的運行或停止等。硬件電路設計如圖2.3所示:文字顯示電路音樂播放led顯示電路at89c51按鍵電路時鐘電路 圖2.3 硬件電路設計圖第3章 硬件電路設計3.1按鍵設計電路圖對于按鍵電路的設計可以有2種方式:一種方式是直接按鍵設計,也稱獨立按鍵,這種設計電路適用于按鍵較少的控制,具有按鍵電路簡單,編程方便等優(yōu)點;另一種方式是矩陣式鍵盤的設計,它適用于對控制按鍵較多的電路控制, 占用較少的i/o接口,但是按鍵電路復雜,編程比較復雜。本課題總共只需要2個按鍵,所以采用獨立按鍵設計。由上到下的按鍵分別是花樣燈1,花樣燈2,如圖3.1所示:圖3.1

20、 按鍵電路圖3.2 顯示漢字電路設計圖本課題所采用得是由lcd12864作為顯示電路,用以顯示賀卡所要表達的文字即生日快樂。硬件電路連接是單片機p0.0p0.7接12864的db0db7 8個各管腳,p2.0p2.4接12864的控制端e、rw、rs、cs2、cs1。連接圖如圖3.2所示: 圖3.2 顯示漢字電路圖3.3 花樣燈電路設計圖led顯示電路是由8個led發(fā)光二極管組成,連接方式為共陽極,led接到單片機的p1口。連接圖如圖3.3所示:圖3.3 花樣燈電路圖第4章 軟件設計4.1主程序流程圖及程序調(diào)用音樂播放子程序開始 調(diào)用寫漢字子程序顯示漢字設定起始列設置起始頁設置調(diào)用寫漢字子程序

21、顯示漢字設定起始列設置起始頁設置調(diào)用寫漢字子程序顯示漢字設定起始列設置起始頁設置調(diào)用寫漢字子程序顯示漢字設定起始列設置起始頁設置調(diào)用寫漢字子程序顯示漢字設定起始列設置起始頁設置調(diào)用寫漢字子程序顯示漢字設定起始列設置起始頁設置左右屏控制初始化結束 圖4.1 主程序流程圖ret計算漢字代碼初始地址r0=r0+1 r0=32?調(diào)用寫入數(shù)據(jù)子程序重新設置起始列地址起始頁地址加1r0=16?r0=r0+1調(diào)入寫入數(shù)據(jù)子程序r0=0寫入起始列地址寫入起始頁地址 n y n y 圖4.2 主程序的子程序流程圖4.2音樂播放子程序及流程圖4.2.1音樂播放子程序代碼muisc:mov tmod,#01h mo

22、v ie,#82h start0:mov 30h,#00h; 取簡譜碼指針,初次30h=00 next:mov a,30h mov dptr,#table movc a,a+dptr; 查表,首址(第0位)是52h mov r2,a;r2暫存簡譜碼,r2=52h jz end0;取到結束碼(00h),跳至end0 anl a,#0fh;取低4位(節(jié)拍碼),a=02h mov r5,a;節(jié)拍碼存于r5 mov a,r2 swap a; 交換高低4位,a=25h anl a,#0fh;取低4位(音符碼),a=05h jnz sing;取到的音符碼為0嗎?不是跳至sing clr tr0;是,則不發(fā)

23、音 jmp d1 sing:dec a;取到的音符碼,減1,a=4 mov 22h,a rl a; 乘2,a=8 mov dptr,#table1;到表table1取t值,首址64260 movc a,a+dptr mov th0,a mov 21h,a mov a,22h rl a inc a movc a,a+dptr mov tl0,a mov 20h,a setb tr0;啟動定時器 d1:call delay;基本延時單位187毫秒 inc 30h jmp next;取下一個簡譜碼 end0:clr tr0;停止定時器0計時 jmp start1;重復循環(huán) tim0:push acc

24、;定時器0中斷子程序,重復加載 push psw mov th0,21h mov tl0,20h cpl p3.7;p3.7輸出 pop psw pop acc reti delay:mov r7,#02 d2:mov r4,#187 d3:mov r3,#248 djnz r3,$ djnz r4,d3 djnz r7,d2 djnz r5,delay;節(jié)拍的長短,即每個音符的發(fā)音時間的長短 ret table1:dw 64260,64400,64524,64580 dw 64684,64777,64820,64898 dw 64968,65030,65058,65110 dw 65157,

25、65178,65217 table: db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 82h,01h,81h,94h,84h db 0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h db 0b4h,0a4h,94h db 0e2h,01h,0e1h,0d4h,0b4h db 0c4h,0b4h,04h db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 82h,01h,81h,94h,84h db 0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h db 0b4h,0a

26、4h,94h db 0e2h,01h,0e1h,0d4h,0b4h db 0c4h,0b4h,04h db 00h;簡譜碼表,高四位為音符,低四位為節(jié)拍數(shù) end4.2.2音樂子程序流程圖開始 啟動定時器tl0=a,20h=a,20h=a查找下一個t值th0=a,21h=a 查表給dptr賦初值建立table130h加1a=00h?調(diào)用延時tr0取的高四位存于r2=00h?取a的低四位存于r5系統(tǒng)初始化給dptr賦初值建立簡譜碼建立初值簡碼表存于r2查表a=30h給30h賦初值跳至花樣燈 tr0=0y n n y 圖4.3 音樂子程序流程圖4.3花樣燈程序及流程圖4.3.1花樣燈程序代碼sta

27、rt1:setb it0;系統(tǒng)初始化setb ex0setb it1setb ex1setb ea mov a,#0fehloop:mov p1,a;依次點亮,循環(huán)點燈lcall delayrl aljmp loopinter0:jnb p2.5,s1;若p2.5=0,切換到花樣燈1jnb p2.7,s3;若p2.7=0,切換到花樣燈2sjmp exits1:mov r2,#10;八只彩燈“亮滅亮”閃爍10次s2:mov p1,#00 lcall delay1 mov p1,#0ffh lcall delay1 djnz r2,s2 sjmp s1 retis3:mov r3,#10;八只彩燈

28、從0、2、3、6到1、3、5、7交替閃爍10次s4:mov p1,#0aah lcall delay1 mov p1,#55h lcall delay1 djnz r3,s4 sjmp s3exit:retidelay:mov r0,#0ffhd1:mov r1,#0ffhd2:nop nop djnz r1,d2 djnz r0,d1 ret end4.3.2花樣燈流程圖開始 a移位調(diào)用延時初始化a=0ffhp1=a 圖4.4 花樣燈流程圖開始 中斷返回r3-1=0延時p1=55h延時p1=aahr3=10r2-1=0延時p1=0ffh延時p1=00hr2=10p2.7=0?p2.5=0?

29、y y n n n y y 圖4.5 花樣燈中斷服務流程圖第5章 系統(tǒng)調(diào)試及軟件仿真在proteus仿真軟件中實現(xiàn)lcd12864液晶模塊顯示“生日快樂”的同時,蜂鳴器播放生日歌。當生日歌播放完之后,八只彩燈被依次點亮并循環(huán),如若要切換彩燈花樣,可以按鍵實現(xiàn)。在本次仿真過程中遇到的最大問題就是,出現(xiàn)“simulation is not running in real time due to excessive cpu load”的提示信息。軟件仿真時,音樂播放速度特別慢,感覺像卡帶了一樣,我以為是電路出了問題。上網(wǎng)查詢了解到,cpu過載,導致仿真速度不能實時運行,可能與電腦的配置過低,prot

30、eus仿真軟件的版本低以及電路太復雜有關,并不一定就是電路圖出問題。這個問題的出現(xiàn),讓我了解到,proteus仿真軟件要達到實時運行的效果還是有差距的。在proteus仿真軟件的幫助教程中已經(jīng)提到這方面問題的解決方案,我試著根據(jù)上面的方案進行操作。分別點擊電阻和發(fā)光二極管的屬性,選“使用文本方式編輯所有屬性(edit all properties as text)”,將primtive屬性中的analog改為digital。按此操作,將所有的電阻和發(fā)光二極管的屬性改變。這次仿真時,音樂播放的速度基本正常,cpu占用不總是100%。另外,我還發(fā)現(xiàn)改變屬性的發(fā)光二極管比原先亮很多。仿真時,文字顯示

31、效果圖,如圖5.1:圖5.1 文字顯示仿真結果當按鍵花樣燈1按下時,八只彩燈“亮滅亮”閃爍5次,如圖5.2:圖5.2 花樣燈1仿真結果當按鍵花樣燈2按下時,八只彩燈從0、2、4、6到1、3、5、7交替閃爍, 如圖5.3和圖5.4:圖5.3 花樣燈2仿真結果 圖5.4 花樣燈2仿真結果圖形說明:圖5.1,剛開始仿真時,顯示“生日快樂”,并伴隨響亮的生日快樂歌曲。 圖5.2,剛開始仿真時,按花樣燈一時,顯示“生日快樂”,伴隨響亮的生日快樂歌曲,并且亮燈,八個彩燈按“亮滅亮”交替閃爍五次。 圖5.3和圖5.4,剛開始仿真時,按花樣燈二時,顯示“生日快樂”,伴隨響亮的生日快樂歌曲,并且亮燈,先是0、2

32、、4、6開始亮,熄滅后1、3、5、7接著亮,連著就是交替閃爍。總結通過短暫的兩周時間的課程設計,使我對單片機的基本原理以及單片機的匯編語言編程有了一定的了解,同時也加強了我對proteus仿真軟件的操作能力,擴展了自己對一些重要芯片工作原理的了解,模塊化設計讓思路變得明了,流程圖的繪制也讓冗長的程序也變得條理清晰。我的題目是電子生日賀卡的設計,對于我們這些工科學生來說,這是一次鍛煉實踐能力的好機會。怎么才能找到課堂所學與實際應用的最佳結合點?怎樣讓自己的業(yè)余更接近專業(yè)?怎樣讓自己的計劃更具有序性,而不會忙無一用?這都是我們所要考慮和努力的。這次課程設計我學到很多很多的東西,學會了怎么樣去制定計

33、劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識,掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,對單片機匯編語言掌握得不夠好。這次課程設計通過自己的努力,同學的幫助,最終順利完成了。參考文獻1江世明編著,單片機

34、原理及應用,中國鐵道出版社。2何立民編著,mcs-51系列單片機應用系統(tǒng)設計,北京航空航天大學出版社,。3賴麒文編著,8051單片機軟件設計的藝術,科學出版社。4彭偉編著,單片機c語言程序設計實訓100例,電子工業(yè)出版社。5周潤景等編著,基于proteus的電路及單片機設計與仿真,北京航空航天大學出版社。致謝感謝學院給我提供了一個鍛煉自己獨立完成任務的機會,使得我的動手能力和理論水平都有所提高。感謝老師充分相信我的能力,讓我可以把自己能夠順利完成任務。感謝我的同學們,在面對我有那么多的難題時,耐心的跟我講解,因為有他們幫助,我才能準時的完成這份課程設計。附錄總程序源代碼org 0000h lj

35、mp main org 000bh jmp tim0 org 0003h ljmp inter0 csa equ p2.4 csb equ p2.3 rs equ p2.2 rw equ p2.1 e equ p2.0 dataes equ p0 com equ 21h dat equ 22h ym equ 23h lm equ 24h codes equ 25h org 0030hmain:lcall int;調(diào)用初始化子程序 lcall left;對左半屏操作 mov ym,#3;設置“生”起始頁 mov lm,#32;設置“生”列位置 mov codes,#0 lcall chine m

36、ov ym ,#3;設置“日”起始頁 mov lm ,#48;設置“日”列位置 mov codes,#1 lcall chine lcall right mov ym,#3;設置“快”起始頁 mov lm,#0;設置“快”列位置 mov codes,#2 lcall chine mov ym,#3;設置“樂”起始頁 mov lm,#16;設置“樂”列位置 mov codes,#3 lcall chine lcall muisc ddd:ljmp ddd;int:lcall left;初始化子程序 mov com,#3fh lcall prm lcall right mov com,#3fh l

37、call prmclearl:lcall left;清左半屏 mov r4,#00hclear0:mov com,r4 lcall pagefirst mov com,#00h lcall liefirst mov r3,#64clear1:mov dat,#00h lcall prd djnz r3,clear1 inc r4 cjne r4,#08h,clear0clearr:lcall right;清右半屏 mov r4,#00hclear2:mov com,r4 lcall pagefirst mov com,#00h lcall liefirst mov r3,#64clear3:m

38、ov dat,#00h lcall prd djnz r3,clear3 inc r4 cjne r4,#08h,clear2 ret busy:clr rs;判斷忙子程序 setb rw prro1:mov dataes,#0ffh;將端口置1,準備讀數(shù)據(jù)總線 setb e;液晶模塊將當前狀態(tài)送到數(shù)據(jù)總線 mov a,dataes;讀數(shù)據(jù)總線 clr e jb acc.7,prro1;為1,表示液晶模塊處于忙狀態(tài),等到acc.7返回為0,返回主程序 ret left:clr csa;左半屏控制 setb csb retright:setb csa;右半屏控制 clr csb ret prm:

39、lcall busy;判斷液晶模塊是否忙 clr rs clr rw mov dataes,com;com中存放指令 setb e clr e ret prd:lcall busy;判斷液晶模塊是否忙 setb rs clr rw setb e mov dataes,dat;dat中存放待寫入的數(shù)據(jù) clr e;液晶模塊從數(shù)據(jù)總線上讀入指令 retpagefirst:mov a,com;設置顯示初始頁,com中為實際頁碼 orl a,#0b8h mov com,a lcall prm;調(diào)用寫入指令子程序 retliefirst:mov a,com;設置顯示初始列,com中為實際頁碼 orl a

40、,#40h mov com,a lcall prm;調(diào)用寫入指令子程序 ret chine:mov dptr,#tab;查表顯示漢字 mov a,codes mov b,#32 mul ab add a,dpl mov dpl,a mov a,b addc a,dph mov dph,a mov com,ym lcall pagefirst mov com,lm lcall liefirst mov r0,#00h return0:mov a,r0 movc a,a+dptr mov dat,a lcall prd inc r0 cjne r0,#16,return0 mov a,ym inc

41、 a mov com,a lcall pagefirst mov com,lm lcall liefirst return1:mov a,r0 movc a,a+dptr mov dat,a lcall prd inc r0 cjne r0,#32,return1 retmuisc:mov tmod,#01h mov ie,#82hstart0:mov 30h,#00h;取簡譜碼指針,初次30h=00 next:mov a,30h mov dptr,#table movc a,a+dptr;查表,首址(第0位)是52h mov r2,a;r2暫存簡譜碼,r2=52h jz end0;取到結束碼

42、(00h),跳至end0 anl a,#0fh;取低4位(節(jié)拍碼),a=02h mov r5,a;節(jié)拍碼存于r5 mov a,r2 swap a;交換高低4位,a=25h anl a,#0fh;取低4位(音符碼),a=05h jnz sing;取到的音符碼為0嗎?不是跳至sing clr tr0;是,則不發(fā)音 jmp d1 sing:dec a;取到的音符碼,減1,a=4 mov 22h,a rl a;乘2,a=8 mov dptr,#table1;到表table1取t值,首址64260 movc a,a+dptr mov th0,a mov 21h,a mov a,22h rl a inc

43、a movc a,a+dptr mov tl0,a mov 20h,a setb tr0;啟動定時器 d1:call delay;基本延時單位187毫秒 inc 30h jmp next;取下一個簡譜碼 end0:clr tr0;停止定時器0計時 jmp start1;跳到花樣燈子程序tim0: push acc push psw mov th0,26h mov tl0,20h cpl p3.7 pop psw pop acc reti start1:setb it0;系統(tǒng)初始化 setb ex0setb it1setb ex1setb eamov a,#0feh;依次循環(huán)點燈loop:mov

44、 p1,alcall delay1rl aljmp loopinter0:jnb p2.5,s1;若p2.5=0,切換到花樣燈1jnb p2.7,s3;若p2.7=0,切換到花樣燈2sjmp exits1:mov r2,#10;s2:mov p1,#00 lcall delay1 mov p1,#0ffh lcall delay1 djnz r2,s2;八只彩燈“亮滅亮”閃爍10次 sjmp s1 retis3:mov r3,#10s4:mov p1,#0aah lcall delay1 mov p1,#55h lcall delay1 djnz r3,s4;八只彩燈從0、2、3、6到1、3、5、7交替閃爍10次 sjmp s3exit:retidelay:mov r

溫馨提示

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

評論

0/150

提交評論