字每篇本科生畢業(yè)設(shè)計(論文)日志
《字每篇本科生畢業(yè)設(shè)計(論文)日志》由會員分享,可在線閱讀,更多相關(guān)《字每篇本科生畢業(yè)設(shè)計(論文)日志(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 2011年 2 月 28 日 第 1 周 星期 一 今天是做畢業(yè)設(shè)計的第一天,我做的題目是“基于單片機(jī)的公交站點顯示系統(tǒng)的設(shè)計”。乍一看,題目很簡單,因為“公交站點”和“顯示”都是我們熟悉的字眼,可是真要動手去做,我還真是一頭霧水… 首先,做畢業(yè)設(shè)計不光要把原理弄懂、吃透,還要理論結(jié)合實際,做出具有相應(yīng)功能的實物來。其次,要把理論知識按畢業(yè)設(shè)計的格式和各種要求整理成Word文檔。千頭萬緒,枝枝節(jié)節(jié)的很多東西要做。幸好,在畢業(yè)實習(xí)階段我搜集了很多相關(guān)的資料,這為我下一步的行動奠定了良好的基礎(chǔ)。 我決定分步去實現(xiàn)我的計劃。我以一篇類似的資料作為底
2、稿,經(jīng)過大體修改和增減確定了大體框架,明確了下一步我要做的事情,同時在這個過程中,我對畢業(yè)設(shè)計的一些格式要求和模塊有了初步的了解。這使我想起了我國在大連改造的“瓦良格”號航母,此時此刻,我覺得自己也在改造一艘“航母”,并且要在這個基礎(chǔ)上發(fā)明創(chuàng)造,開拓視野,立足新意,設(shè)計出一些新的東西來,融入新的思維和技巧。之后,我就大刀闊斧地開始了我的畢業(yè)設(shè)計歷程。 做畢業(yè)設(shè)計的前期,我專門學(xué)習(xí)了如何使用Word系統(tǒng)撰寫和排版畢業(yè)論文。因為論文的質(zhì)量包含著兩個方面的內(nèi)容,一方面是論文的構(gòu)思、結(jié)構(gòu)、內(nèi)容及觀點;另一方面就是論文的排版質(zhì)量。其實論文的撰寫和編輯是個比較麻煩的過程,因為在撰寫過程中,我們需要不斷地
3、修改,還可能有論文排版格式的修改。往往由于某一部分的變動,使其他部分進(jìn)行相應(yīng)的變動,因而常因調(diào)整格式而煩惱。但是如果對Microsoft Word 編輯系統(tǒng)有充分的了解,就會得心應(yīng)手地進(jìn)行編輯,撰寫和排版出有較高質(zhì)量的論文。 基于上面的想法,我系統(tǒng)地學(xué)習(xí)了用Word 設(shè)置論文版面、使用樣式功能、尾注的標(biāo)識、分節(jié)、設(shè)定頁碼和頁眉以及自動生成目錄等功能的操作方法并且嘗試著去編輯使用這些功能。功夫不負(fù)有心人,我終于成功地設(shè)定了三級標(biāo)題和分節(jié)符等以前總讓我頭疼的環(huán)節(jié)。感覺這樣讓自己少了很多編輯過程中的煩惱,同時把學(xué)校要求的各種格式都涵蓋進(jìn)去了。 現(xiàn)在,可以開始編輯論文了。 畢業(yè)論文表面看起來煩瑣
4、,其實還是一目了然的。大體上分為標(biāo)題、中文摘要、英文摘要、目錄、正文、致謝和參考文獻(xiàn)以及附錄等部分,標(biāo)題又分為論文總標(biāo)題、各部分的標(biāo)題以及正文的三級結(jié)構(gòu)標(biāo)題,各個部分標(biāo)題都有不同的格式與字體要求。在正文中,三級標(biāo)題下面需要分開的,我采用了(1)、(2)、(3)和 請預(yù)覽后下載! ①、②、③兩種格式。 編輯的方法已經(jīng)準(zhǔn)備就緒了,下一步要進(jìn)行的就是論文的內(nèi)容了。這并不能急著動手編輯,因為編輯倒是個簡單的問題,關(guān)鍵是要學(xué)習(xí)并掌握各種知識和原理,并在這個基礎(chǔ)上設(shè)計出具有實際功能的實物來。而編輯,只是對這個過程進(jìn)行具體記錄、表達(dá)與總結(jié),可見,下一步并不是動手寫,而是疏通整個論文的各個知識要點,
5、掌握其大概原理。真是“汝果欲學(xué)詩,功夫在詩外”啊。 但是,在學(xué)習(xí)具體的內(nèi)容之前,我確定了各個章的大體分配。第一章是緒論,第二章是軟件開發(fā)、編程語言與主要元器件介紹,第三章是系統(tǒng)硬件設(shè)計,第四章是系統(tǒng)軟件設(shè)計,第五章是程序編譯、燒錄與系統(tǒng)調(diào)試,最后一章是結(jié)束語。 在我看來,難點在第四章。因為程序設(shè)計難度相對比較大,也是我的薄弱點。但是我相信,在我的努力之下,一定能夠戰(zhàn)勝困難的,我們拭目以待。 請預(yù)覽后下載! 2011年 3 月 7 日 第 2 周 星期 一 現(xiàn)在,伴隨著我的
6、思緒,讓我們進(jìn)入這個論文題目的內(nèi)部,去具體學(xué)習(xí)它的一些內(nèi)容。其中有很多困難,也會有很多快樂。 首先,我們來分解這個題目。基于單片機(jī)、公交站點、顯示系統(tǒng),也就是說,大體上應(yīng)該分為三個部分,當(dāng)然事實也是如此。要顯示公交站點,必須要有控制它執(zhí)行的按鍵,相比之下,我選擇了STC89C52作為主控制芯片,用矩陣鍵盤作為輸入控制端,用HJ12864M-1作為顯示模塊?,F(xiàn)在,可以具體從這三個部分發(fā)展開去,進(jìn)入論文的各個細(xì)節(jié)角落。 整個系統(tǒng)就是由矩陣鍵盤、STC89C52單片機(jī)和HJ12864M-1顯示器三個部分構(gòu)成。功能要求很簡單,就是每按一個鍵,在顯示屏上要顯示相應(yīng)的公交站點的名稱或其他提示內(nèi)容。目標(biāo)
7、已經(jīng)明確了,下一步就要具體掌握各個部分的內(nèi)容,比如說矩陣鍵盤是如何實現(xiàn)的;為什么16個按鍵卻只分配了8個I/O口;矩陣鍵盤的各個端口是連在單片機(jī)的哪些I/O口上;STC89C52單片機(jī)的各個管腳是怎樣分布的;單片機(jī)怎樣和矩陣鍵盤、HJ12864M-1顯示器相連,它的接口原理圖是怎樣的;STC89C52單片機(jī)有什么功能特性;HJ12864M-1顯示器里面的驅(qū)動器是什么;驅(qū)動器的功能與特性以及怎樣按自己的想法設(shè)計驅(qū)動器的功能;系統(tǒng)框圖以及整個系統(tǒng)的程序怎么寫等等,很多問題需要一個一個解決,這樣,才能一步一步把設(shè)計做出來,完成任務(wù)。 想到這里,我明白了自己要做的事情還有許多,決不是從題目看起來那么
8、簡單的。 說到這里,有必要明確一下,我使用的編程語言是單片機(jī)C語言,同時這也是學(xué)校要求的;整個程序的編譯是在Keil的環(huán)境下完成的,同時也用到了Protel 99SE作為畫電路圖的工具。所以,我又復(fù)習(xí)了畫電路圖以及Keil的相關(guān)知識,這對完成整個畢業(yè)設(shè)計來說,是必須的基本步驟。但是,怎樣畫流程圖和時序圖成了我一時的難題,許久沒有解決。 在很多難題面前,我開始通過各種途徑繼續(xù)搜集相關(guān)的資料,特別是通過中國知網(wǎng)()、 google以及百度來解決各種問題,但是仍然有很多問題沒有解決,比如HJ12864M-1帶中文字庫的液晶顯示模塊方面的資料比較缺乏。 對于按鍵控制部分,我最初的設(shè)想是用家庭常用
9、的電視遙控,在單片機(jī)用個紅外接受的模塊,接受按鍵信息并解碼。但后來考慮用紅外遙控對設(shè)備安裝不方便,而且紅外對人體也有輻射,于是選擇用矩陣鍵盤進(jìn)行控制。 在液晶屏的選擇問題上,我也嘗試過很多想法。因為液晶屏有很多種,最常用的就有1602字符型液晶顯示模塊和我最終選用的12864帶字庫圖形液晶模塊。1602型只能顯示2行共16個漢字,而且用它來顯示漢字效果并不理想,不符合公交車上公眾對視覺的要求;而12864型可以顯示4行共32個漢字,也可完成圖形顯示。低電壓功耗是其顯著的特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,硬件電路顯示程序都要簡潔得多,且該模塊的價格也略低于相同
10、點陣的圖形液晶模塊。 請預(yù)覽后下載! 對于單片機(jī)的型號,也是很多的,最常用的當(dāng)然是AT89C51或AT89C52,同時也是我熟知的,但是我買來的單片機(jī)的型號卻是STC89C52,這又讓我疑惑了一陣子。于是我又開始學(xué)習(xí)關(guān)于單片機(jī)型號的知識,最后確定了STC89C52與AT89C52是完全兼容的,才長舒了一口氣,心中暗暗慶幸。 經(jīng)過這些小波折,我認(rèn)識到了我的單片機(jī)知識還是比較匱乏的,需要繼續(xù)努力;也認(rèn)識到了要完成此次畢業(yè)設(shè)計,任重而道遠(yuǎn)。 請預(yù)覽后下載! 2011年 3 月 14 日 第 3
11、 周 星期 一 隨著理論學(xué)習(xí)與實踐的深入,我不斷地遇到很多新的問題,都是我沒有預(yù)料到的,比如在程序編譯的時候,總是出現(xiàn)一種錯誤,諸如“missing ; before U8”,但是在前面加個“;”還是不對,或許根本就不是“在U8前缺少一個分號”的意思。這個問題讓我無從著手,在網(wǎng)絡(luò)上搜索也沒得到答案。一時間,就卡在那兒了。 還有一個嚴(yán)重的問題,就是感覺在編寫程序的時候力不從心,這讓我深深地體會到自己的編程能力十分有限,有時后甚至讀不懂或不是很懂某段程序,更別說自己去設(shè)計編寫新的程序了。臨時抱佛腳,我只好對照著許多C語言的資料艱難地進(jìn)行閱讀和理解,但是遺憾的是,收獲并不多,有時
12、候自己都不敢肯定程序的正確性,稍微有一些靈活變化的程序,我就要花很多時間去消化。 于是我開始系統(tǒng)地學(xué)習(xí)各種C語言的語法規(guī)則,結(jié)合實際的程序?qū)嵗M(jìn)行分析,并且化整為零,分別琢磨每一段程序的作用與功能以及它的具體含義,并且結(jié)合硬件系統(tǒng)的I/O口,各種功能管腳具體分析考慮,步步為營,力求突破重重難關(guān),把程序?qū)懞?。這其中最難理解的就是HJ12864M-1模塊內(nèi)嵌的STN7920驅(qū)動器,它涉及到很多指令。比如說復(fù)位指令、設(shè)置CGRAM指令、設(shè)置DDRAM地址指令、讀“忙”標(biāo)志、寫顯示數(shù)據(jù)到內(nèi)部RAM指令和讀顯示數(shù)據(jù)指令以及許多擴(kuò)展指令系統(tǒng),紛繁復(fù)雜,一時不可盡數(shù)。 對我而言,理解起來比較費(fèi)力,但是又
13、必須去面對。在知識疏通的過程中,我的設(shè)計一度走進(jìn)了彎道里,轉(zhuǎn)了一圈才發(fā)現(xiàn)自己做的工作其實是多余的。比如一開始我在考慮把要顯示的漢字的字模提取出來,建立一個小字庫,然后進(jìn)行顯示。這本來沒有錯,但是我沒有想到我買的HJ12864M-1液晶顯示屏是帶中文字庫的,既然帶中文字庫了,就說明常用的漢字里面都有了,那么就不用建立小字庫了。之所以犯了一個這樣的錯誤,是因為自己對“帶中文字庫”和“小字庫”這些詞理解地不夠深,只是從字面意思上去理解,并沒有思考它的作用,以為帶了中文字庫還必須要建立小字庫的。不過,俗話說“吃一塹,長一智”,或許可以拿來安慰以下自己吧…… 接下來是顯示的問題,我雖然詳細(xì)了解了STN
14、7920的主要特點和功能,管腳功能以及讀寫時序,也系統(tǒng)地學(xué)習(xí)了STN7920的指令系統(tǒng)和擴(kuò)展指令系統(tǒng),但是怎么把“一串漢字”顯示出來,我心里還是沒主意。因為很少接觸“液晶顯示”的內(nèi)容,而且也缺乏這方面的資料,沒有具體的例子可供參考,所以這成了我的頭號難題。我只好反反復(fù)復(fù)地去理解,去琢磨,同時也在網(wǎng)上尋找各種類似的資料,希望能解決我的疑惑。 請預(yù)覽后下載! 怎樣顯示漢字串的問題疑惑了我很久。而實際上,這恰好也許是一個最簡單的問題。因為漢字在計算機(jī)內(nèi)部是以“內(nèi)碼”形式存儲的,就相英文字母在計算機(jī)內(nèi)部是以“ASCII”碼形式存儲的一樣,一個漢字的“內(nèi)碼”占兩個字節(jié)。漢字串在計算機(jī)內(nèi)部就是“內(nèi)
15、碼”串,STN7920提供的字庫就是以“內(nèi)碼”形式存儲的國標(biāo)字庫。所以可以用漢字串來直接顯示漢字。這就夠簡單了。 如果用《信息交換用漢字編碼字符集(基本集)》GB2312-80,想要在STN7920上顯示漢字,由于該字符集是按區(qū)位碼排列的,因此要把區(qū)位碼變成“內(nèi)碼”才能在程序中使用。顯示漢字的問題似乎得到了解決,但是具體怎么編程,還有很多問題等著要解決啊。 讓我們繼續(xù)努力…… 請預(yù)覽后下載! 2011年 3 月 21 日 第 4 周 星期 一 畢業(yè)設(shè)計進(jìn)入第四周,
16、雖然大部分的工作已經(jīng)做出了個大概的框架,但是要在這個基礎(chǔ)上進(jìn)行細(xì)化與具體化還有很多工作等著我去完成。漢字的顯示原理就花了我很大的功夫去理解和琢磨。 我原來的想法是用1602顯示器的,再建立一個小字庫,但是在這種顯示器上只能顯示兩行共16個漢字,不能完全滿足需要,于是我選擇了12864型的圖形液晶顯示屏,這種顯示屏可以顯示四行共32個漢字,可以滿足公交車提示用語等需要??上驳氖?,帶中文字庫的顯示屏顯示漢字的時候不需要再建立小字庫,省去了很多麻煩?,F(xiàn)在我把漢字顯示的原理作一個詳細(xì)的介紹。 無論是Turbo C支持的各種顯示器,還是單片機(jī)系統(tǒng)常用的LCD,它們的分辨率都是以像素為單位的,一個像素
17、就是LCD屏上的一個可以顯示的最小單位,也就是常說的點。因此,要在LCD屏上顯示一個漢字或圖形就必須將漢字或圖形用點來表示,這些表示某種圖形的點的集合就是所說的點陣。 如嵌入式控制系統(tǒng)中最常用的漢字是16*16點陣,它是由每行列各16個點,共256個點組成的點陣圖案。每行的16個點在內(nèi)存中占兩個字節(jié),一個16*16點陣漢字共16行,在內(nèi)存中占32個字節(jié)。 根據(jù)這些字節(jié)在內(nèi)存中存放的順序,第一行的第一個字節(jié)稱“0”號字節(jié),第二個字節(jié)稱“1”號字節(jié);第二行的第一個字節(jié)稱“2”號字節(jié),第二個字節(jié)稱“3”號字節(jié)。依此類推,最后一行的第一個字節(jié)稱“30”號字節(jié),第二個字節(jié)稱“31”號字節(jié),每個字節(jié)高
18、位在前,低位在后,即D7在一個字節(jié)的最左側(cè),D0在最右側(cè)。不同的漢字各字節(jié)數(shù)據(jù)不同,在點陣中,每一個小方格代表字節(jié)中的一位(也叫一個bit),黑色的點bit值等于1,白色的點bit值等于0。這樣,在計算機(jī)內(nèi)部,每兩個“字節(jié)”可組成一個16位的“字”,32個“字節(jié)”是以16個“字”的形式儲存的。 如要在LCD屏的X行Y列位置顯示一個字,則可以從點(X,Y)開始將0號字節(jié)和1號字節(jié)的內(nèi)容輸出到LCD屏上;然后行加1,列再回到Y(jié),輸出2號字節(jié)和3號字節(jié),依此類推,16個循環(huán)即可完成一個漢字的顯示。輸出一個字節(jié)數(shù)據(jù)時,該字節(jié)中“位”( bit)為1時,在該“位”位置繪點,為0時該“位”位置打空白。
19、 當(dāng)然,不同類型點陣的字節(jié)排列方式是不同的,在本次設(shè)計中的漢字點陣都是16*16型的,另外有24*24型和12*16型等不同的幾種類型。 請預(yù)覽后下載! 每個漢字在字庫中都是以點陣字模形式存儲的,如一般采用的16*16點陣形式。每個點用一個二進(jìn)制bit位表示,bit=1的點,當(dāng)顯示時,就可以在LCD屏顯示一個亮點;bit=0的點,則在LCD屏不顯示,這樣把某個字的16*16點陣信息直接用來在顯示器上按上述原則顯示,則將出現(xiàn)對應(yīng)的漢字。 請預(yù)覽后下載! 2011年 3 月 28
20、 日 第 5 周 星期 一 畢業(yè)設(shè)計已經(jīng)進(jìn)行到關(guān)鍵的時候了,開始進(jìn)入查漏補(bǔ)缺和難點攻關(guān)的階段,戰(zhàn)勝了這些困難,我將贏來畢業(yè)設(shè)計的最后勝利。但是目前,還是有很多的問題擺在面前,一時難以解決。 比如程序的編譯。這是一個讓我感覺很棘手的問題,因為在程序的編譯過程中難免會出現(xiàn)各種各樣的錯誤,而由于缺少這方面的經(jīng)驗和知識,要找到這些錯誤出現(xiàn)的原因還是有很大的難度的。而且改正一個錯誤以后,有可能出現(xiàn)更多的錯誤,如果沒有形成一種正確的思維和擁有足夠的C語言方面的知識基礎(chǔ),這將是很難過的一大難關(guān)。 我在編譯我寫的程序的時候就出現(xiàn)了很多錯誤。剛開始的時候,我在頭文件中同時寫了
21、〈at89c52.h>和〈reg52.h>,結(jié)果出現(xiàn)了幾十個錯誤,經(jīng)搜索才知道是因為頭文件重復(fù)被包含導(dǎo)致的。后來我選擇了〈reg52.h>,一編譯,錯誤少了很多,但是仍然有一些最基本的諸如P0、P1等I/O口沒有被定義的錯誤,這讓我納悶了很久。我原以為〈at89c52.h>或〈reg52.h>等頭文件是可以通用的,但是事實讓我意識到我犯了個常識性的錯誤。正是因為對頭文件的知識知道得比較少,才到處碰壁。在改用〈at89c52.h>頭文件以后,I/O口沒有被定義的錯誤就完全解決了。 但是仍然有其他的錯誤,比如有一個missing “;”before “COM”的錯誤讓我無從下手,從字面意思理解,
22、似乎是在COM前面少了個“;”,但是加上一個“;”以后又出現(xiàn)更多的錯誤,而且去百度搜索相關(guān)的問題,都沒有得到相關(guān)的答案,很多人為這種錯誤而頭疼。最后我發(fā)現(xiàn)還有一個警告,說是〈def.h〉頭文件不能被打開,我想可能就是因為這個頭文件出了問題吧。答案是肯定的。果然,在我把〈def.h〉定義的內(nèi)容特別列出在程序中后不用〈def.h〉這個頭文件,繞開了頭文件不能被打開的問題,結(jié)果一箭雙雕,把兩個問題都解決了。欣喜之余,只是感覺有點納悶,為什么頭文件會打不開呢? 還有就是在把漢字輸入到程序中的時候遇到一個莫名其妙的問題,就是在程序編輯狀態(tài)下一輸入漢字就顯示空格,不能把漢字顯示出來,讓我的心一下子涼了半
23、截。如果不能輸入漢字,那我的程序可就要報廢了,得重頭來過。一開始我想是不是因為Keil這個軟件沒有帶中文字庫呢,但是很快我就否定了這個想法。因為在輸入注釋文字的時候是可以輸入中文漢字的。幸好后來解決以后,發(fā)現(xiàn)問題并不大。是因為在程序編輯狀態(tài)下輸入漢字的時候需要先把兩個引號都寫出來,然后把光標(biāo)移到兩個引號的中間,這樣就能輸入漢字了。問題不大,但是如果不知道這樣做,你必定束手無策,無可奈何。不禁感嘆,自己的C語言學(xué)得馬馬虎虎了。 請預(yù)覽后下載! 現(xiàn)在的問題是一個關(guān)于顯示函數(shù)的格式上的錯誤,因為缺少相關(guān)顯示函數(shù)的實例,我一時間在這個問題上卡了殼。喊有就是一編譯就說是顯示函數(shù)被重新定義,我到處
24、找錯誤,卻一點突破都沒有,我想這或許仍然是一個小問題,但是在沒有解決之前,它仍然是一個大問題哦。 請預(yù)覽后下載! 2011年 4 月 4 日 第 6 周 星期 一 在程序編譯這個問題上,還有很多的事情要做。雖說逐步解決問題是有效的方法,但是也不要就此認(rèn)為,只要遵循這個步驟,每次都可以保證一下子就能得到正確的解決方案。驗證是非常重要的,意味著解決問題的過程是不可小視的,也許第一次、第二次乃至第二十次的解決方法都是錯誤的,但是這至少說明這二十種解決辦法
25、是不可行的。 我想,或許優(yōu)秀的編程者和失敗的編程者之間的差別就在于優(yōu)秀者不會被最初的失敗擊倒,他們會找出缺點,并逐步休整方案,最后把問題解決,而失敗者在遇到問題后就放棄了。這讓我想到了世界上最有創(chuàng)造力的發(fā)明家愛迪生積極對待數(shù)以千計的失敗實驗的故事,也就是說明了一個事實:失敗是某方面無效、行不通的證明和有用的數(shù)據(jù)。 現(xiàn)在把我在程序編譯中遇到的其他幾個問題總結(jié)如下: ① warning C206: displaystr: missing function-prototype 說明displaystr()函數(shù)未作宣告或未作外部宣告所以無法給其他函數(shù)調(diào)用。解決方法將敘述uint display
26、str (uchar k1)寫在程序的最前端作宣告,如果是其他文件的函數(shù)則要寫成extern uint displaystr (uchar k1),即作外部宣告。 ② error C141: syntax error near else 說明語句else附近有錯誤,可以雙擊提示,便可知曉到底是源程序哪個else有誤。當(dāng)去掉了該else后面的‘;’后,再度編譯錯誤就沒了。 ③ SHEJI.C(40): error C244: i: cant initialize, bad type or class 說明在變量i前面的某個函數(shù)申明之后沒有分號。將對應(yīng)的函數(shù)申明后加上分號就好了。 在程序
27、的編譯時,有2個編譯符號需要分清楚。如果一個項目包含多個源程序文件,而僅對某一個文件進(jìn)行了修改,而不用對所有文件進(jìn)行編譯,僅對修改過的文件進(jìn)行編譯,然后和已被編譯過的文件連接處理,可選擇Project/Build Target或者對所有源程序全部進(jìn)行編譯連接,選擇Project/Build all Target Files。一般來說,可以使用F7或單擊快捷按鈕(Project/Build Target對應(yīng)的按鈕)僅對修改過的文件進(jìn)行編譯連接的選擇就可以滿足了。 請預(yù)覽后下載! 編譯是通過單擊快捷按鈕來進(jìn)行的,如果源文件沒有語法錯誤,將生成OBJ文件,同時如果設(shè)置正確,OH51.EXE文
28、件會被調(diào)用來生成.HEX代碼。但是源文件沒有語法錯誤并不能保證就是正確可行的,能不能實現(xiàn)需要的功能還需要進(jìn)行調(diào)試。調(diào)試也是一項復(fù)雜的工作。 利用編程器將可執(zhí)行的文件寫入程序存貯區(qū)ROM,然后插入到目標(biāo)硬件系統(tǒng)就可以執(zhí)行該文件。編程器的種類是很多的,但是使用的方法大多是相同的。 請預(yù)覽后下載! 2011年 4 月 11 日 第 7 周 星期 一 我的畢業(yè)設(shè)計已經(jīng)即將進(jìn)入尾聲,現(xiàn)在大部分的設(shè)計工作已經(jīng)基本完成,目前主要面臨的問題就是程序編譯與硬件調(diào)試了
29、,在實現(xiàn)了公交站點顯示的功能之后,設(shè)計任務(wù)就完成了。 但是由于缺乏HJ12864M-1帶中文字庫的液晶顯示模塊方面的資料,如何把漢字串顯示出來仍然是目前工作的重點,雖然從網(wǎng)上和圖書館收集的相關(guān)資料有一大堆,但是還是要經(jīng)過認(rèn)真的學(xué)習(xí)進(jìn)行消化以后才能自己進(jìn)行設(shè)計的,怎樣修改程序,每一步都是需要十分謹(jǐn)慎的。特別是顯示函數(shù)的參數(shù)和顯示漢字子程序的設(shè)計以及漢字串?dāng)?shù)組的定義怎樣處理我還沒有吃透,所以導(dǎo)致了設(shè)計進(jìn)度一度拖后。 另外就是STN7920的基本指令系統(tǒng)與擴(kuò)展指令系統(tǒng)也是一個難點。需要理解的知識比較多,涉及STN7920的全部功能設(shè)置和狀態(tài)處理,以及過程動態(tài)處理。STN7920的指令系統(tǒng)的主要指
30、令總結(jié)如下。 ① 清除顯示指令 功能是將DDRAM清0(填滿“20H”),DDRAM地址計數(shù)器ACC清0,DB0=1是該命令的標(biāo)志。 ② 復(fù)位指令 功能是設(shè)定DDRAM地址計數(shù)器的ACC為0,光標(biāo)回到原點,DB1=1是該命令的標(biāo)志。 ③ 功能設(shè)定指令 功能是設(shè)定在讀寫數(shù)據(jù)時光標(biāo)移動的方向和顯示內(nèi)容的移位情況。I/的,光標(biāo)右移,DDRAM地址計數(shù)器ACC加1。I/D=0,光標(biāo)左移,DDRAM地址計數(shù)器ACC減1。S=1,LCD屏顯示內(nèi)容移位,移位方向與光標(biāo)移動方向相反;S=0,LCD屏顯示內(nèi)容不移動。 ④ 顯示狀態(tài)設(shè)定 功能是D=1時,整體顯示開;D=0時,整體顯示關(guān)。C=1時,
31、光標(biāo)顯示;C=0時,光標(biāo)不顯示。B=1,光標(biāo)反白顯示開;B=0時,光標(biāo)反白顯示關(guān)。 請預(yù)覽后下載! ⑤ 光標(biāo)和顯示移位控制 S/C=0,R/L=0,光標(biāo)向左移動,AC=AC-1;S/C=0,R/L=1,光標(biāo)向右移動,AC=AC+1;S/C=1,R/L=0,顯示向左移動,AC=AC;S/C=1,R/L=1,顯示向右移動,AC=AC。 ⑥ 擴(kuò)展功能設(shè)定 DL=1,8位并行模式;DL=0,4位并行模式。RE=1,擴(kuò)展指令系統(tǒng);RE=0,基本指令系統(tǒng)。G=1,繪圖顯示ON;G=0,繪圖顯示OFF。 請預(yù)覽后
32、下載! 2011年 4 月 18 日 第 8 周 星期 一 我的畢業(yè)設(shè)計即將完成,回想這段時間,從拿到題目開始到設(shè)計完成,經(jīng)歷了很多困難和磨練,但總的來說,設(shè)計還是成功的,而且,在整個設(shè)計的努力過程中,我感覺自己在實踐與動手能力方面得到了很大的提高,學(xué)會了怎樣運(yùn)用自己所學(xué)的知識去設(shè)計一個產(chǎn)品出來的整個過程。同時,也發(fā)現(xiàn)了很多的不足,給將來的工作與繼續(xù)學(xué)習(xí)生涯敲響了警鐘。 現(xiàn)在,我就自己所做的這個設(shè)計作一個簡單而又綜合的介紹,讓別人了解我做的這個產(chǎn)品到底是一個什么樣的東西。 首先,我畢業(yè)設(shè)計的題目是“基于單片機(jī)的公交站點顯示系統(tǒng)
33、的設(shè)計”,我只做了顯示系統(tǒng)和單片機(jī)以及矩陣鍵盤組合的系統(tǒng),考慮到時間有限、能力不足,并沒有加入“語言系統(tǒng)”。也就是說,這個設(shè)計與現(xiàn)實生活中的“顯示系統(tǒng)”結(jié)合“語音報站系統(tǒng)”實現(xiàn)日常公交報站的綜合系統(tǒng)比較的話,這里只是其中的一個模塊。 其次,我選擇的控制芯片是STC89C52單片機(jī),這種型號的單片機(jī)與AT89C52是兼容的,而且功能更加強(qiáng)大。一般而言,可以簡單地認(rèn)為兩種型號沒有什么區(qū)別,方便我們理解。顯示系統(tǒng)選用的是HJ12864M-1點陣圖形液晶顯示模塊,里面的驅(qū)動器是STN7920。這種類型的顯示屏可以顯示字符、漢字以及圖片,可以充分地滿足公交車上的日常需要。 再者,由于單片機(jī)的I/O資
34、源是有限的,所以我選用了矩陣鍵盤來實現(xiàn)用8個I/O口控制16個鍵,這樣可以很好地節(jié)省I/O資源,便于大型系統(tǒng)的I/O分配。由于該型號顯示屏是帶中文字庫的,所以在程序中并沒有建立小字庫,而是直接從大字庫中尋找漢字的字模實現(xiàn)漢字的顯示。尋找具體漢字的位置用的是內(nèi)碼,而由于計算機(jī)內(nèi)部漢字是以內(nèi)碼形式儲存的,所以,在程序中漢字是以漢字串的形式存在的。 它主要實現(xiàn)的功能是進(jìn)行公交站點的顯示,通過按鍵進(jìn)行人工操作,可以存放較多的站點名和廣告詞,可以根據(jù)不同的需要修改具體內(nèi)容以便更新公交路線更改或橋梁維修等因素造成的公交站名變化的內(nèi)容。是一款簡單易行且控制方便的實用型顯示系統(tǒng)。顯示的站點名選擇了廣州黃埔文沖站到廣州火車站途中的實際公交站點名,感覺上更加貼近現(xiàn)實,具有仿真意味。 請預(yù)覽后下載! 程序全部用C語言進(jìn)行編寫,用計算機(jī)作為輔助開發(fā)工具,用Keil軟件進(jìn)行編譯,設(shè)計中的電路圖用Protel 99SE完成。整個設(shè)計參考了通過不同途徑得來的各種資料,有許多借鑒之處,同時在這個基礎(chǔ)上進(jìn)行了創(chuàng)新性研發(fā),是一款結(jié)合了自己的努力的新成果。 (注:可編輯下載,若有不當(dāng)之處,請指正,謝謝!) 請預(yù)覽后下載!
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第7課時圖形的位置練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第1課時圖形的認(rèn)識與測量1平面圖形的認(rèn)識練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊1負(fù)數(shù)第1課時負(fù)數(shù)的初步認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)上冊期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊易錯清單十二課件新人教版
- 標(biāo)準(zhǔn)工時講義
- 2021年一年級語文上冊第六單元知識要點習(xí)題課件新人教版
- 2022春一年級語文下冊課文5識字測評習(xí)題課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時數(shù)學(xué)思考1練習(xí)課件新人教版