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