08電信2班舒功萌_第1頁
08電信2班舒功萌_第2頁
08電信2班舒功萌_第3頁
08電信2班舒功萌_第4頁
08電信2班舒功萌_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢 業(yè) 設 計 設計題目 “Uc/os-2內(nèi)核在80C51系列單片機上的移植研究”設計學 院 物理科學與工程技術(shù)學院專 業(yè) 電子信息工程年 級 2008級姓 名 舒功萌指導教師 甘輝職 稱 講師(2012年 6 月)宜春學院教務處制目 錄1畢業(yè)設計任務書2畢業(yè)設計開題報告3畢業(yè)設計答辯資格審查表4論文原創(chuàng)性申明5論文版權(quán)使用授權(quán)書6畢業(yè)設計正文7外文資料譯文8外文資料原文宜春學院畢業(yè)設計任務書題 目: “Uc/os-2內(nèi)核在80C51系列單片機上的移植研究”設計 學 院: 物理科學與工程技術(shù)學院 系 電子與信息工程系 專 業(yè): 電子信息工程 班 級: 2008級 學 號: 0834301218

2、 姓 名: 舒功萌 起止日期: 2011.11.20-2012.6.5 指導教師: 甘輝 職稱: 講師 系主任: 袁易君 審核日期: 2012.3.20 說 明畢業(yè)論文任務書由指導教師填寫,并經(jīng)教研室審定,下達到學生。進度表分前、中、后三期由學生填寫,每期填寫后交指導教師簽署審查意見,并作為畢業(yè)論文工作檢查的主要依據(jù)。學生根據(jù)指導教師下達的任務書獨立完成開題報告,3周內(nèi)提交給指導教師批閱。本任務書在畢業(yè)論文完成后,與論文一起交指導教師,作為論文評閱和畢業(yè)論文答辯的主要檔案資料,是學士學位論文成冊的主要內(nèi)容之一。一、畢業(yè)論文的要求和內(nèi)容 介紹了一種實時操作系統(tǒng)uc/os-2的內(nèi)核結(jié)構(gòu),分析了它的

3、移植價值。了解了單片機硬件平臺上的關(guān)鍵技術(shù),并詳細的描述了此移植的實現(xiàn)過程,分析了移植測試實現(xiàn)的條件,并對一些特殊情況進行了說明,并總結(jié)了移植的一般方法。二、研究方案、目標近年來。嵌入式系統(tǒng)已成為了后PC時代的一個廣闊的研發(fā)領域,實際應用中,原有的操作系統(tǒng)無法支持新增應用功能時,常會采用系統(tǒng)移植來解決問題。UC/QS-2作為一個高可靠,開源的嵌入式實時操作系統(tǒng),具有廣泛的應用;而利用廉價的80C51實現(xiàn)更具先天優(yōu)勢。所以以80C51為移植目標來詳細討論移植過程,其中總結(jié)設計了一個堆棧結(jié)構(gòu);最后給出移植測試實驗,分析了移植中要注意的一些問題,總結(jié)了移植的一般方法。三、閱讀書目清單1 李群芳、肖看

4、,單片機原理、接口及應用嵌入式系統(tǒng)技術(shù)基礎.清華大學出版社出版,2005.2 謝自美,電子線路設計、實驗、測試 .武漢:華中理工大學出版社,2000.3 何書森、何華斌,實用數(shù)字電路原理與設計速成.福州:福建科學技術(shù)出版社,2000.4 白駒衍, 單片計算機及應用.北京:電子工業(yè)出版社, 1999.5 謝振輝, 改進式MCS-51單片機實驗.北京:科學出版社,2006.6 李維諟,郭強.液晶顯示應用技術(shù).北京:電子工業(yè)出版社.2005.7 陳小忠、黃寧、趙小俠,單片機接口技術(shù)實用子程序.北京:人民郵政出版社,2005.8 李華,MCS-51系列單片機實用接口技術(shù)M.北京:北京航空航天大學出版社

5、,1993.9 胡學海,單片機原理及應用系統(tǒng)設計M.北京:北京電子工業(yè)出版社,2005.10 張義和、陳敵北,例說8051.北京:人民郵電出版社,2006. 四、畢業(yè)論文進度計劃序號各階段工作內(nèi)容起止日期備注1完成各種資料的收集2011.11.232012.3.4完成2對資料進行整理2012.3.5-3.26完成3把整理好的資料按要求書寫成冊完成畢業(yè)設計書2012.3.274.1完成4根據(jù)設計書進行課題設計2012.4.35.20完成5論文初稿2012.5.21-5.23完成6修改論文2012.5.246.1完成7初步定稿2012.6.16.5完成五、主要參考資料1 李群芳、肖看,單片機原理、

6、接口及應用嵌入式系統(tǒng)技術(shù)基礎.清華大學出版社出版,2005.2 謝振輝, 改進式MCS-51單片機實驗.北京:科學出版社,2006。3 張義和、陳敵北,例說8051.北京:人民郵電出版社,2006。六、畢業(yè)論文進度表(本表由學生填寫,每期分別交指導教師簽署審查意見)前 期(2011年11月23日至2012年1月4日)學生主要工作: 收集-uc/os-2的內(nèi)核結(jié)構(gòu)的相關(guān)資料,通過的方式上網(wǎng)和上圖書館。通過上網(wǎng)查找80c51單片機的現(xiàn)狀與近期發(fā)展狀況。圖書館查找設計的相關(guān)書籍。工作較努力,遵守紀律,作風嚴謹務實。同導師交流論文下一階段工作進程。指導教師審查意見:年 月 日中 期(1月5日至5月20

7、日)學生主要工作:整理資料,把整理好的資料按要求書寫成冊完成畢業(yè)設計書。并根據(jù)設計書開始設計課題。論文初稿成形。能按時按量優(yōu)異地完成任務書中規(guī)定的任務,能熟練運用所學理論和專業(yè)知識,能綜合分析問題和解決問題。運用所學知識和技能及獲取新知識去發(fā)現(xiàn)與解決實際問題;能對課題進行理論分析。指導教師審查意見:年 月 日后 期(5 月 21日至 6 月 5日)學生主要工作:將論文初稿通過指導老師審查。檢查是否存在一些問題,并認真解決問題。從而達到路清新;語言表達準確,概念清楚,論點正確;實驗方法科學,分析歸納合理;結(jié)論嚴謹,設計有應用價值。最后確定論文。并按照要求打印論文。學生完成終稿,導師完成畢業(yè)論文審

8、定和評閱工作。指導教師審查意見:年 月 日 七、其他(學生提交)1開題報告1份 2外文資料譯文1份(1000字以上,并附資料原文) 3設計1份(理科4000字以上,文科6000字以上) 指 導 教 師: 教研室負責人: 學生開始執(zhí)行 任務書日期: 學生姓名: 送交畢業(yè)設計日期: 宜春學院畢業(yè)設計開題報告題 目: “Uc/os-2內(nèi)核在80C51系列單片機上的移植研究”設計 學 院:物理科學與工程技術(shù)學院 系 電子與信息工程系 專 業(yè): 電子信息工程 班 級: 08級 學 號: 0834301218 姓 名: 舒功萌 指導教師: 甘輝 填表日期: 2011 年 11 月 30 日選題的依據(jù)及意義

9、近年來,嵌入式系統(tǒng)已成為后PC時代一個廣闊的研發(fā)領域,其應用范圍越來越廣。實際應用中,由于移植所花費代價最小,原有操作系統(tǒng)無法支持新增應用功能時,常會采用系統(tǒng)移植來解決問題。uC/OS-II作為一個高可靠,開源的嵌入式實時操作系統(tǒng),具有廣泛的應用;而利用廉價的80C51實現(xiàn)眾多傳感器、控制器等電子設備的網(wǎng)絡互聯(lián),更是具有先天優(yōu)勢。因此在80C51上移植uC/OS-II具有重要的意義。國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(含文獻綜述)單片機控制的移植是為適應電子產(chǎn)業(yè)的飛速發(fā)展。數(shù)字化時代對人類的發(fā)展產(chǎn)生了巨大的變化,我們親身經(jīng)歷了數(shù)字技術(shù)的蓬勃發(fā)展,目睹了它以驚人的速度,滲透到社會與生活的方方面面。不管是國

10、內(nèi)還是在國外,數(shù)字化的產(chǎn)品都是不會過時的,人們也在不斷地更新一個又一個的設計。本課題研究內(nèi)容 以uC/OS-II為移植對象,以80C51為移植目標來詳細討論移植的過程,其中自己設計了一個堆棧結(jié)構(gòu);最后給出移植測試實驗,分析了移植中要注意的一些問題,總結(jié)了移植的一般方法。 本課題研究方法 uC/OS-II可以讓最高優(yōu)先級的就緒任務處于運行狀態(tài),且其功能強大,具備多任務,內(nèi)核可分開,穩(wěn)定性能,又因uC/OS-II移植性也很高,把它的特點移植在80C51上讓80C51單片機也具備這些優(yōu)秀功能。首先了解uC/OS-II和80C51單片機的內(nèi)部結(jié)構(gòu)和特點,根據(jù)各自硬件結(jié)構(gòu)編寫相應的各自代碼,最后采用Ke

11、ilCx51編譯器進行編譯,其整個移植過程在KeilCx51開發(fā)平臺上搞定。研究目標、主要特色及工作進度研究目的:讓原有操作系統(tǒng)可以支持新添加的功能主要特點:uC/OS-II高可靠開源的操作系統(tǒng)的應用廣泛六、參考文獻1 李群芳、肖看,單片機原理、接口及應用嵌入式系統(tǒng)技術(shù)基礎清華大學出版社出版,2005.2 白智國,王芳,馮丹.嵌入式系統(tǒng)移植問題的研究計算機工程與科學,2005,27.97-993 JeanJLabrosse.嵌入式實時操作系統(tǒng)uC/OS-II .第2版.北京:北京航天航空大學出版社,2005.283-316.4 馬忠梅.單片機的C語言應用程序設計北京:北京航空航天出版社,200

12、3.120-135.5 徐愛鈞,彭秀華.KeilCx51V7.0單片機高級語言編程與uVision2應用實踐.北京:電子工業(yè)出版社,2005.490-450.6 黃濤,徐宏吉.嵌入式實時操作系統(tǒng)移植技術(shù)的分析與應用計算機應用,2003,88-90.7 張謙,竹利平.C/OS-II實時嵌入式操作系統(tǒng)的實時性分析與測試.計算機工程與設計,2005,26宜春學院2009屆畢業(yè)設計答辯資格審查表題 目“Uc/os-2內(nèi)核在80C51系列單片機上的移植研究”設計 學生姓名舒功萌專業(yè)電子信息工程班級08級學號0834301218檢查內(nèi)容論文完成情況完成開題報告完成外文資料翻譯完成中、英文摘要完成軟硬件驗收

13、無論文期間考勤情況良好累計曠課時間無學生自查說明 本人嚴格按照任務書進度開展論文設計工作及時發(fā)現(xiàn)問題并發(fā)饋給指導老師,跟老師一起探討最佳解決方案,不斷的改進設計;嚴格按照任務書的要求,對論文進行排版,確保內(nèi)容的準確性、格式無誤的情況下完成畢業(yè)論文設計工作。學生簽名: 年 月 日指導教師意見(說明是否進行答辯及評定成績)指導教師簽名:成績 年 月 日宜春學院論文原創(chuàng)性申明本人鄭重申明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果。對本文的研究作出重要貢獻的個人和集體,均在文中以明確方式表明。本人

14、完全意識到本申明的法律責任,其后果由本人承擔。作者簽名:日 期:論文版權(quán)使用授權(quán)書本論文作者完全了解學校有關(guān)保留、使用論文的規(guī)定,同意學校保留并向國家有關(guān)部門或機構(gòu)送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權(quán)宜春學院可以將本論文的全部或部分內(nèi)容編入數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本論文。作者簽名: 日期:導師簽名: 日期:宜春學院物理科學與工程技術(shù)學院畢業(yè)設計 把這一頁去掉畢 業(yè) 設 計 設計題目 “Uc/os-2內(nèi)核在80C51系列單片機上的移植 研究”設計學 院 物理科學與工程技術(shù)學院專 業(yè) 電子信息工程年 級 2008級姓 名 舒功萌指導教師 甘輝

15、職 稱 講師(2012 年 6 月)宜春學院教務處制宜春學院物理科學與工程技術(shù)學院畢業(yè)設計“Uc/os-2內(nèi)核在80C51系列單片機上的移植研究”設計宜春學院 物理科學與工程技術(shù)學院 電子信息工程 舒功萌指導老師:甘輝摘要:介紹了一種實時操作系統(tǒng)uC/OS-II的內(nèi)核結(jié)構(gòu),分析了它的移植技術(shù);討論了將其移植到80C51系列單片機硬件平臺上的關(guān)鍵技術(shù),并詳細描述了此移植的實現(xiàn)過程,分析了移植測試實驗情況;針對keilCx51編譯器環(huán)境下的一些特殊情況進行了說明,并總結(jié)了移植的一般方法。關(guān)鍵詞:8051單片機;實時操作系統(tǒng);移植;交叉編譯器;測試Abstract:09-2096-04Porting

16、uC/OS-IIkernelto80C51-familymicroprocessorZHAOJian-hua,WANGWen-yong(SchoolofComputerScienceandEngineering,UESTofChina,Chengdu610054China)AbstractThekernelstructureandtheportingtechnologyofuC/OS-IIisintroduced,whichisakindofembeddedrealtimeoperatisystem.ThekeytechnologyandtheprocessofportinguC/OS-IIk

17、ernelto80C51familymicroprocessorsarediscussed,thetestingex-perimentafterportingisanalyzed.FinallythedifferenceabouttheportingtothecompilerofkeilCx51ispointedout,andthegeneraltransplantingmethodsaresummarized.Keywords :8051microprocessor;realtimeoperatingsystem; port;cross-compiler; 目 錄TOC o 1-3 h u

18、HYPERLINK l _Toc14567 1、前言 PAGEREF _Toc14567 3 HYPERLINK l _Toc25518 2、硬件 PAGEREF _Toc25518 4 HYPERLINK l _Toc11424 2.1硬件的基本組成 PAGEREF _Toc11424 4 HYPERLINK l _Toc22824 2.2硬件的基本組成(見圖A) PAGEREF _Toc22824 4 HYPERLINK l _Toc2982 2.3 硬件介紹: PAGEREF _Toc2982 4 HYPERLINK l _Toc8538 2.3.1 單片機概述 PAGEREF _Toc

19、8538 4 HYPERLINK l _Toc6248 2.3.2 AT89C51單片機簡介 PAGEREF _Toc6248 4 HYPERLINK l _Toc2989 2.4 數(shù)碼顯示管 PAGEREF _Toc2989 8 HYPERLINK l _Toc26051 3、電路原理分析 PAGEREF _Toc26051 10 HYPERLINK l _Toc17467 3.1 電路圖如下:(圖A) PAGEREF _Toc17467 10 HYPERLINK l _Toc2391 3.2 顯示原理 PAGEREF _Toc2391 10 HYPERLINK l _Toc25708 3.

20、3 鍵盤及讀數(shù)原理 PAGEREF _Toc25708 10 HYPERLINK l _Toc12321 3.4 連擊功能的實現(xiàn) PAGEREF _Toc12321 10 HYPERLINK l _Toc24982 4 、程序設計思想和相關(guān)指令介紹 PAGEREF _Toc24982 11 HYPERLINK l _Toc19756 4.1 數(shù)據(jù)與代碼轉(zhuǎn)換 PAGEREF _Toc19756 11 HYPERLINK l _Toc4476 4.2 計時功能的實現(xiàn)與中斷服務程序 PAGEREF _Toc4476 11 HYPERLINK l _Toc23176 4.3 時間控制功能與比較指令 P

21、AGEREF _Toc23176 11 HYPERLINK l _Toc31709 5、軟件設計 PAGEREF _Toc31709 12 HYPERLINK l _Toc10017 5.1 Keil uVision2編程軟件的介紹 PAGEREF _Toc10017 12 HYPERLINK l _Toc10617 5.2 PROTEUS7.0 仿真軟件 PAGEREF _Toc10617 12 HYPERLINK l _Toc16435 5.4 程序部分(見附錄A) PAGEREF _Toc16435 12 HYPERLINK l _Toc25649 5.3 程序流程圖 (見附錄B) PA

22、GEREF _Toc25649 12 HYPERLINK l _Toc15206 6 附錄 PAGEREF _Toc15206 13 HYPERLINK l _Toc14634 7、結(jié)論 PAGEREF _Toc14634 23 HYPERLINK l _Toc3809 8、參考文獻 PAGEREF _Toc3809 24 HYPERLINK l _Toc21797 9、辭謝 PAGEREF _Toc21797 25我記得結(jié)論應該在附錄的前面,你在仔細看看它們的順序。在目錄里面把括號里的文字以及括號本身刪除 1、前言嵌入式系統(tǒng)已成為后PC時代一個廣闊的研發(fā)領域,其應用范圍越來越廣。實際應用中,

23、由于移植所花費代價最小,原有操作系統(tǒng)無法支持新增應用功能時,常會采用系統(tǒng)移植來解決問題。uC/OS-II作為一個高可靠,開源的嵌入式實時操作系統(tǒng),具有廣泛的應用;而利用廉價的80C51實現(xiàn)眾多傳感器、控制器等電子設備的網(wǎng)絡互聯(lián),更是具有先天優(yōu)勢。因此在80C51上移植uC/OS-II具有重要的意義。本文以uC/OS-II為移植對象,以80C51為移植目標來詳細討論移植的過程,其中自己設計了一個堆棧結(jié)構(gòu);最后給出移植測試實驗,分析了移植中要注意的一些問題,總結(jié)了移植的一般方法。2、硬件2.1硬件的基本組成內(nèi)核uC/OS-II 、單片機(80c51)、keilCx51編譯器2.2硬件的基本組成(見

24、圖A)2.3 硬件介紹:2.3.1 單片機概述單片機也被稱作“單片微型計算機”、“微控制器”、“嵌入式微控制器”。單片機一詞最初是源于“Single Chip Microcomputer”,簡稱SCM。隨著SCM在技術(shù)上、體系結(jié)構(gòu)上不斷擴展其控制功能,單片機已不能用“單片微型計算機”來表達其內(nèi)涵。國際上逐漸采用“MCU”(Micro Controller Unit)來代替,形成了單片機界公認的、最終統(tǒng)一的名詞。為了與國際接軌,以后應將中文“單片機”一詞和“MCU”唯一對應解釋。在國內(nèi)因為“單片機”一詞已約定俗成,故而可繼續(xù)沿用。2.3.2 80c51單片機簡介80C51單片機屬于MCS-51系

25、列單片機,由Intel公司開發(fā),其結(jié)構(gòu)是8048的延伸,改進了8048的缺點,增加了如乘(MUL)、除(DIV)、減(SUBB)、比較(PUSH)、16位數(shù)據(jù)指針、布爾代數(shù)運算等指令,以及串行通信能力和5個中斷源。采用40引腳雙列直插式DIP(Dual In Line Package),內(nèi)有128個RAM單元及4K的ROM。80C51有兩個16位定時計數(shù)器,兩個外中斷,兩個定時計數(shù)中斷,及一個串行中斷,并有4個8位并行輸入口。80C51內(nèi)部有時鐘電路,但需要石英晶體和微調(diào)電容外接,本系統(tǒng)中采用12MHz的晶振頻率。由于80C51的系統(tǒng)性能滿足系統(tǒng)數(shù)據(jù)采集及時間精度的要求,而且產(chǎn)品產(chǎn)量豐富來源廣

26、,應用也很成熟,故采用來作為控制核心。 圖2.1 單片機80C51芯片機構(gòu)框架圖和內(nèi)部邏輯結(jié)構(gòu) 80C51功能特性描述:MCS-51系列單片機主要包括8031、8051和8751等通用產(chǎn)品,其主要功能如下:8位CPU4kbytes 程序存儲器(ROM)128bytes的數(shù)據(jù)存儲器(RAM)32條I/O口線111條指令,大部分為單字節(jié)指令21個專用寄存器2個可編程定時/計數(shù)器5個中斷源,2個優(yōu)先級一個全雙工串行通信口外部數(shù)據(jù)存儲器尋址空間為64kB外部程序存儲器尋址空間為64kB邏輯操作位尋址功能雙列直插40PinDIP封裝單一+5V電源供電移植對象uC/OS-IIuC/OS-II具有很強的可移

27、植性,可以廣泛應用于各類8位,l6位,32位微控制器或DSP中。它具有完全可剝奪型的實時內(nèi)核,其核心工作原理是讓最高優(yōu)先級的就緒任務處于運行狀態(tài);它具有多任務的特點,可以管理64個任務,其中56個任務分配給用戶;另外它具有內(nèi)核可裁減性,可確定性的特點,并提供很多系統(tǒng)服務,比如信號量,互斥信號量,事件標志,消息郵箱,消息隊列,內(nèi)存的分配和釋放等。1.2目標機80C51硬件資源在系統(tǒng)移植之前,必須先了解目標機的硬件資源,然后根據(jù)特定的硬件編寫相應的代碼。80C51系列單片機具有結(jié)構(gòu)簡單,應用靈活等特點。其硬件資源如下:CPU:8位的微處理器;內(nèi)存:片內(nèi)RAM(128B),片外RAM(64KB)、片

28、內(nèi)ROM(4KB),片外EPROM(64KB);時鐘:片內(nèi)振蕩器和時鐘產(chǎn)生電路,振蕩頻率為612MHZ,2個16位定時/計數(shù)器;中斷:5個中斷源,兩級中斷;外設:4個8位并行I/O接口P0P3;1個全雙工的串行I/O口(UART)。1.3移植中采用的編譯器移植中采用KeilCx51編譯器,整個移植在KeilCx51開發(fā)平臺上進行。KeilCx51是Keil公司的一款針對C5l系列單片機的編譯器,版本為V7.0,它是目前最高效的,靈活的80C51開發(fā)平臺。在KeilCx51環(huán)境下移植uC/OS-II可直接進行軟件仿真,仿真過程中不必將程序下載到硬件上運行。等程序在軟件仿真平臺測試通過后,直接將其

29、燒錄到硬件芯片上。1.4uC/OS-II的模塊簡介由于設計uC/OS-II時就考慮到了在不同處理器上移植,因而移植uC/OS-II實際上需要修改的代碼量很小。整個嵌入收稿日期:2006-04-23E-mail:z_1982_jh作者簡介:趙建華(1982)(WSN)無線傳感器網(wǎng)絡(WSN)80C51)摘要:介紹了一種實時操作系統(tǒng)Vol.28No.9ComputerEngineeringandDesign2097式系統(tǒng)的結(jié)構(gòu)如圖1所示,uC/OS-II內(nèi)核可以分為與處理器無關(guān)的代碼,無處理器相關(guān)的代碼以及與應用相關(guān)的代碼3個部分。移植中只需修改與處理器相關(guān)部分的文件,即包括:CPU.H,OS_C

30、PU_C.C和OS_CPU_ASM.ASM,其它代碼幾乎不需要改變。2具體移植步驟以下是移植的步驟,分別修改各個與硬件相關(guān)的文件。2.1修改OS_CPU.H文件OS_CPU.H中包含兩部分的代碼,數(shù)據(jù)類型定義代碼和與處理器相關(guān)的代碼。移植主要修改與處理器相關(guān)代碼。首先定義:EA=0關(guān)中斷;EA=1開中斷。這樣定義即減少了程序行數(shù),又避免了退出臨界區(qū)后關(guān)中斷造成的死機。由于MCS-51堆棧從下往上增長(1=向下,0=向上),所以OS_STK_GROWTH定義為0。最后,把OSCtxSw()預定義為OS_TASK_SW()。因為MCS-51沒有軟中斷指令,所以用程序調(diào)用代替。實踐表明,對于MCS-

31、51,用子程序調(diào)用入棧,用中斷返回指令RETI出棧是沒有問題的。在沒有中斷發(fā)生的情況下復位中斷系統(tǒng)也不會影響系統(tǒng)正常運行。2.2修改OS_CPU_C.C文件在這個文件中,只需要修改任務堆棧初始化函數(shù)OSTa-skStkInit()。uC/OS-II中每個任務都有自己的堆??臻g,并且必須聲明為OS_STK類型,主要完成對用戶任務的堆棧進行初始化。OSTaskStkInit()函數(shù)總是返回棧頂?shù)刂?。為了說明這個函數(shù)的工作流程,我們自己設計了一個堆棧空間,如圖2所示。其中OSTCBCur指向當前任務控制塊TCB,TCB結(jié)構(gòu)體中OS-TCBStkPtr指向用戶堆棧的棧頂,用戶堆棧長度存放在用戶堆棧的最

32、底部,長度之上空間存放系統(tǒng)堆棧映像,即:用戶堆??臻g大小=系統(tǒng)堆??臻g大小+1。SP總是先加1再存數(shù)據(jù),因此,SP初始時指向系統(tǒng)堆棧起始地址(OSStack)減1處(即OS-StkStart)。很明顯系統(tǒng)堆棧存儲空間大小=(SPOSStkStart)。任務切換時,先保存當前任務堆棧內(nèi)容。即把系統(tǒng)棧數(shù)據(jù)拷貝到用戶棧。方法是:用(SP-OSStkStar)得出保存字節(jié)數(shù),將其寫入用戶堆棧最低地址內(nèi),以用戶堆棧最低地址為起址,以OSStkStart為系統(tǒng)堆棧起址,由系統(tǒng)棧向用戶??截悢?shù)據(jù),循環(huán)(SP-OSStkStart)次,每次拷貝前先將各自棧指針增1。其次,恢復最高優(yōu)先級任務系統(tǒng)堆棧。方法是:獲

33、得最高優(yōu)先級任務用戶堆棧最低地址,從中取出“長度Length”,以最高優(yōu)先級任務用戶堆棧最低地址為起址,以OSStkStart為系統(tǒng)堆棧起址,由用戶棧向系統(tǒng)棧拷貝數(shù)據(jù),循環(huán)“長度length”數(shù)值指示的次數(shù),每次拷貝前先將各自棧指針增1。用戶堆棧初始化時從下向上依次保存:用戶堆棧長度(15),PCL,PCH,PSW,ACC,B,DPL,DPH,R0,R1,R2,R3,R4,R5,R6,R7。不保存SP,任務切換時根據(jù)用戶堆棧長度計算得出。2.3修改OS_CPU_ASM.ASM文件uC/OS-II移植實例要求用戶編寫4個簡單匯編語言函數(shù):?OSStartHighRdy/使就緒態(tài)任務中優(yōu)先級最高的

34、任務開始運行?OSCtxSw/低優(yōu)先級任務切換到高優(yōu)先級任務?OSTickISR/時鐘節(jié)拍中斷?OSIntCtxSw/在ISR中執(zhí)行任務切換功能2.3.1修改OSStartHighRdyOSStartHighRdy主要完成高優(yōu)先級任務寄存器的恢復。必須恢復該任務在CPU使用權(quán)被剝奪時保留下來的全部寄存器的值,以便讓這個高優(yōu)先級任務能夠繼續(xù)運行。即把用戶堆棧中的PCL,PCH,PSW,ACC,B,DPL,DPH,R0,R1,R2,R3,R4,R5,R6,R7全部拷貝到系統(tǒng)堆棧,然后系統(tǒng)堆棧再進行POP操作,將保存的這些值彈出到CPU的各個寄存器。使得此高優(yōu)先級任務得到運行。其中部分關(guān)鍵代碼如下:

35、MOVXA,DPTR;調(diào)整DPTR,使其指向用戶堆棧的最低地址MOVR5,A;R5=用戶堆棧長度,因為堆棧長度放在用戶堆棧最低處MOVR0,#OSStkStart;OSSktStart為系統(tǒng)堆棧起始地址restore_stack:;從用戶堆棧到系統(tǒng)堆棧的copyINCDPTRINCR0MOVXA,DPTRMOVR0,ADJNZR5,restore_stackPOPALL;為自定義宏,將所有寄存器實現(xiàn)出棧2.3.2修改OSCtxSwOSCtxSw為任務切換函數(shù),實現(xiàn)從低優(yōu)先級任務到高優(yōu)先級任務切換。要實現(xiàn)任務切換,一般包括兩個過程:保存當前低優(yōu)先級任務的全部寄存器的值以及堆棧的長度值;恢復高優(yōu)先

36、級任務以前在CPU使用權(quán)被剝奪時保存下來的全部寄存器的值,即前一個匯編程序OSStartHighRdy實現(xiàn)的功能。其中部分關(guān)鍵代碼如下:;以下代碼完成第步操作圖1uC/OS-軟件體系結(jié)構(gòu)時鐘CPU其它設備應用程序軟件uC/OS設置(與應用相關(guān)的代碼)OS_CFGHINCLUDES.HOS_CORE.CuCOS_.COS_TASK.CuCOS_.HOS_SEM.COS_Q.COS_TIME.COS_MEM.COS_MBOX.CuC/OS移植(與處理器相關(guān)的代碼)OS_CPU.HOS_CPU_C.COS_CPU_ASM.ASM圖2自定義的用戶堆棧和系統(tǒng)堆棧結(jié)構(gòu)用戶堆棧長度長度低地址系統(tǒng)硬件堆棧長度

37、=SP-OSStkStart低地址10-1不關(guān)心OSStackOSStkStartSPOSTCBCurOSTCBCurOSTCBStkPtruC/OS(與處理器無關(guān)的代碼)2098PUSHALL;用戶定義的宏,將全部CPU寄存器保存到系統(tǒng)堆棧MOVA,SP;以下3句實現(xiàn)獲得堆棧的長度SUBBA,#OSStkStartMOVR5,A;R5里保存堆棧長度,并將其保存在用戶堆棧最底下save_stack:;以下實現(xiàn)從系統(tǒng)堆棧到用戶堆棧的拷貝INCDPTR;指向用戶堆棧INCR0;指向系統(tǒng)堆棧MOVA,R0MOVXDPTR,ADJNZR5,save_stack;而第步代碼和OSStartHighRdy

38、代碼一樣,除此之外,將當前優(yōu)先級最高任務的任務控制塊指針OSTCBHighRdy賦值給當前任務控制塊指針OSTCBCur。2.3.3修改OSTickISRuC/OS-II要求用戶提供一個周期性的時鐘源,來實現(xiàn)時間的延遲和超時功能。我們選用8051的T0定時器作為tick時鐘。OSTickISR函數(shù)為時鐘節(jié)拍中斷服務程序,當產(chǎn)生計時和定時中斷時,執(zhí)行此函數(shù)。此函數(shù)和其它中斷服務子程序一樣,都先要保存斷點和保存現(xiàn)場,然后執(zhí)行用戶代碼,最后對恢復保存的寄存器值。其中關(guān)鍵代碼:CSEGAT000BH;0BH為0號定時器T0的入口地址LJMPOSTickISR;跳轉(zhuǎn)到中斷服務子程序OSTickISR:P

39、USHALL;保存所有寄存器的宏CLRTR0;后面4句為設置T0的工作方式以及賦值MOVTH0,#70H;定義Tick=50次/秒(即0.02秒/次)MOVTL0,#00H;OS_CPU_C.C和OS_TICKS_PER_SECSETBTR0LCALL_?OSTimeTick;調(diào)用系統(tǒng)Tick函數(shù)LCALL_?OSIntExit;系統(tǒng)函數(shù),決定是否使得高優(yōu)先級任務就緒POPALL;出棧RETI2.3.4修改OSIntCtxSwOSIntExit通過調(diào)用OSIntCtxSw,在ISR中執(zhí)行任務切換功能。因為OSIntCtsSw是在ISR中被調(diào)用的,所以假定寄存器都被正確地保存了被中斷的任務的堆棧

40、之中。因此,OSInt-CtxSw和上文中OSCtxSw的代碼基本相同,差別僅僅在于開始之前少了一個POPALL操作。3實驗及其結(jié)果分析移植完成后,緊接著就是移植的正確性驗證。下面是移植測試實驗以及對實驗結(jié)果的分析。3.1實驗的條件和指導思想實驗必須確保在Cx51編譯器和鏈接器的正常工作的情況下進行。主要指導思想是測試修改過的OSStartHighRdy(),OSTaskStkInitOSCtxSw,OSIntCtxSw,OSTickISR等5個函數(shù),測試其在Cx51環(huán)境下運行是否正常。3.2實驗的過程和結(jié)果實驗過程主要包括以下3個步驟:創(chuàng)建兩個任務Task1和Task2,驗證OSTaskSt

41、kInit和OSStartHighRdy()函數(shù);創(chuàng)建Task1和Task2后,通過二者之間的切換,驗證OSCtxSw函數(shù);初始化時鐘,開中斷。Task1和Task2各自睡眠一段時間(Task2睡眠時間是Task1的2倍)。等睡眠時間到達后,根據(jù)各自輸出的不同結(jié)果,驗證OSIntCtxSw和OSTickISR函數(shù)。主要測試代碼如下:OSTaskCreate(Task1,(void*)0,&TaskSkt10,2);OSTaskCreate(Task2,(void*)0,&TaskSkt20,10);voidTask1(void*data1)reentrantfor(;)PrintStr(tTa

42、sk1isactive.11111111n);OSTimeDly(OS_TICKS_PER_SEC);voidTask2(void*data2)reentrantfor(;)PrintStr(tTask2isactive.22222222n);OSTimeDly(2*OS_TICKS_PER_SEC);3.3對實驗結(jié)果的分析和討論輸出結(jié)果為:Task1isactive.11111111Task1isactive.11111111Task2isactive.22222222Task1isactive.11111111Task1isactive.11111111Task2isactive.2222

43、2222根據(jù)實驗輸出結(jié)果可見,Task1和Task2創(chuàng)建成功,因此OSTaskStkInit工作正常;Task1和Task2實現(xiàn)任務切換,以及發(fā)生時間中斷,工作正常(Task1運行兩次后Task2運行一次),因此其它4個函數(shù)工作也正常。由此可以得出結(jié)論,uC/OS-II已經(jīng)在80C51上移植成功。3.4移植中keilCx編譯器要注意的問題由于uC/OS-是一個可搶占式內(nèi)核,因此,系統(tǒng)中的絕大多數(shù)函數(shù)都應該是可重入的。而在KeilCx51編譯器中,在函數(shù)定義時的默認值都是不可重入的,因此,需要在系統(tǒng)中的每一個函數(shù)的聲明以及定義處都加上“l(fā)argereentrant”的修飾符,以保證函數(shù)的可重入性

44、。startup.a51文件是Cx51編譯器自帶的文件,是C51的初始化代碼,單片機復位后先執(zhí)行這段代碼,完成初始化后由它調(diào)用main()。其主要完成定義內(nèi)部RAM大小、外部RAM大小、可重入堆棧位置,以及初始化8051硬件堆棧指針。因此我們要修改這個文件中的一些變量,比如外部RAM起始地址變量XDATASTART,是否大模式重入堆棧指針需初始化標志變量XBPSTACKTOP等等。這樣的話,程序在軟件仿真通過測試后,將其燒錄在硬件上,硬件調(diào)試也一次成功 表3.1 段碼與字型的關(guān)系段碼D7 DPD6 gD5 fD4 eD3 dD2 cD2 bD0 a字形3FH00111111006H000000

45、1015BH0101101124FH01001111366H0110011046DH0110110157DH01111101607H0000011177FH0111111186FH01101111977H01110111a7CH01110111b39H00111001c5EH01011110d79H01111001e71H01110000f這種方式占用鎖存器較多。動態(tài)顯示是將所有位的段選線相應的并聯(lián)在一起,由一個8位的I/O口控制,形成段選線的多路復用。而各位的陰極分別由相應的I/O口控制,實現(xiàn)各位的分時選通。要LED能夠顯示相應的字符,就必須采用動態(tài)掃描方式,只要每位顯示的時間足夠短,則可造

46、成多位同時顯示的假象,達成顯示的目的。在數(shù)字電路中常常要把數(shù)據(jù)或運算結(jié)果通過半導體數(shù)碼管、液晶數(shù)碼和熒光數(shù)碼管,用十進制數(shù)顯示出來。發(fā)光二極管的工作電壓為1.5-3.0伏,工作電流為己毫安到幾十毫安,壽命很長。半導體數(shù)碼管將十位數(shù)分成七個字段,每段為一個發(fā)光二極管,其字形結(jié)構(gòu)如圖所示,選擇不同的字段發(fā)光,可顯示出不同的字型。例如:當a,b,c,d,e,f,g七個字段同時亮時,顯示8,b、c 段亮時,顯示出。共陽極:把發(fā)光二極管的陽極連在一起構(gòu)成共陽極。使用時公共端接Vcc,當某陽極為低電平時,該發(fā)光二極管就導通發(fā)光。輸出一個段碼就可以控制LED顯示器的字型,表3.1 給出了段碼與字型的關(guān)系,假

47、定a、b、c、d、e、f、g、DP分別對應D0、D1、D2、D3、D4、D5、D6、D7。5、軟件設計單片機采用KeiluVision2編程軟件編程,畫圖采用PROTEUS6.9仿真軟件。5.1 Keil uVision2編程軟件的介紹Keil uVision2IDE是Keil公司提供的用語開發(fā)MSC-51系列單片機的匯編語言與C語言程序的集成開發(fā)環(huán)境發(fā),操作界面和其他Windows應用程序一樣。uVision2支持所有的KeilC51工具,包括C編譯器、宏匯編其、連接定位器、目標代碼到HEX的轉(zhuǎn)換器。 KeilC51的Windows版的軟件,都是要建立一個工程文件,不管是匯編語言的,還是C語

48、言的,只有一個文件,還是有多個文件的程序都要有一個工程文件,沒有工程文件,將不能進行編譯和仿真。5.2 PROTEUS7.0 仿真軟件5.4 程序部分(見附錄A)5.3 程序流程圖 (見附錄B)6 附錄 7、結(jié)論經(jīng)過了兩個多月的學習和工作,我終于完成了我的論文。從開始接到論文題目到系統(tǒng)的實現(xiàn),再到論文文章的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn),這也是我在大學期間獨立完成的最大的項目。在這段時間里,我學到了很多知識也有很多感受,從對單片機一知半解,對液晶顯示器、Keil uVision2、PROTEUS7.0等相關(guān)技術(shù)很不了解的狀態(tài),我開始了獨立的學習和試驗,查看相關(guān)的資料和書籍,讓自己頭腦

49、中模糊的概念逐漸清晰,使自己非常稚嫩作品一步步完善起來,每一次改進都是我學習的收獲,每一次試驗的成功都會讓我興奮好一段時間。從中我也充分認識到了單片機設計給我們生活帶來的樂趣.雖然我的論文作品不是很成熟,還有很多不足之處,但我可以自豪的說,這里面的每一段代碼,都有我的勞動。當看著自己的程序,自己成天相伴的系統(tǒng)能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。這次做論文的經(jīng)歷也會使我終身受益,我感受到做論文是要真真正正用心去做的一件事情,是真正的自己學習的過程和研究的過程,沒有學習就不可能有研究的能力,沒有自己的研究,就不會有所突破,那也就不叫論文了。希望這次的經(jīng)

50、歷能讓我在以后學習中激勵我繼續(xù)進步。8、參考文獻1 李群芳、肖看,單片機原理、接口及應用嵌入式系統(tǒng)技術(shù)基礎.清華大學出版社出版,2005.2 謝自美,電子線路設計、實驗、測試 .武漢:華中理工大學出版社,2000.3 何書森、何華斌實用數(shù)字電路原理與設計速成.福州:福建科學技術(shù)出版社,2000.4 白駒衍,單片計算機及應用.北京:電子工業(yè)出版社, 1999.5 謝振輝, 改進式MCS-51單片機實驗.北京:科學出版社,2006.6 李維諟,郭強,液晶顯示應用技術(shù).北京:電子工業(yè)出版社.2005.7 陳小忠、黃寧、趙小俠,單片機接口技術(shù)實用子程序.北京:人民郵政出版社,2005.8 李華.MCS

51、-51系列單片機實用接口技術(shù)M.北京:北京航空航天大學出版社,1993.9 胡學海,單片機原理及應用系統(tǒng)設計M.北京:北京電子工業(yè)出版社,2005.10 張義和、陳敵北,例說8051.北京:人民郵電出版社,2006.9、辭謝在本次畢業(yè)設計中,我得到了指導老師甘輝的熱心指導。他自始至終關(guān)心督促畢業(yè)設計進程和進度。幫助解決畢業(yè)設計中遇到的所有問題。還不斷向我們傳授分析問題和解決問題的辦法,并指出了正確的努力方向,使我在畢業(yè)設計過程中少走了很多彎路。在這里我非常感謝甘老師的指導和幫助,并致以誠摯的謝意!同時,身邊的同學也給了我許多的幫助。在此,我向身邊關(guān)心我的同學致以誠摯的謝意!另外,系里的領導和老

52、師也給了我們必要的指導,我也向系和年級的領導們表示衷心的感謝!最后感謝學院對我這幾年的培養(yǎng)。1外文資料譯文:這里怎么要空這么多啊。1在信息技術(shù)急速發(fā)展的今天,計算機科學日新月異。而單片機作為計算機科學的一個分支,在微機控制領域得到長足的發(fā)展。隨著單片機的發(fā)展與科學技術(shù)的提高,單片機已經(jīng)成為人類生產(chǎn)生活中不可缺少的工具。而隨著不斷發(fā)展的科學和技術(shù),人們有更高的準確性要求的時間計算。如何更精確的時鐘工作?如何讓他們更好地服務于我們的生活?顯然,傳統(tǒng)的時鐘不能滿足人們的需要。這就需要人們繼續(xù)設計一個新的時鐘。現(xiàn)在,單片機的應用已經(jīng)滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的

53、導航裝置、飛機上各種儀表的控制、計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸、工業(yè)自動化過程的實時控制和數(shù)據(jù)處理、廣泛使用的各種智能IC卡、民用豪華轎車的安全保障系統(tǒng)、錄象機、攝象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫(yī)療器械了。用單片機的優(yōu)點是設計軟件將不斷積累,不斷模塊化,形成標準化軟件,大大提高了開發(fā)效率。數(shù)字時鐘的設計方法有很多種,例如可以用中小規(guī)模的集成電路組成;也可以用專用的時鐘芯片配以顯示電路及所需要的外圍電路組成;還可以利用單片機來實現(xiàn)時鐘。這些方法各有特點,其中利用單片機實現(xiàn)的數(shù)字時鐘具有編程靈活,便于時鐘功能的擴充,即

54、可以使用該時鐘發(fā)出控制信號,精度高的特點。如今,大多數(shù)的高精密計時工具,使用石英晶體振蕩器。電子時鐘已取得了石英技術(shù)。它的優(yōu)點是準確度高,穩(wěn)定,易用性,沒有定期調(diào)整。數(shù)字時鐘用途集成電路取代機械部件和液晶顯示器,以取代指標,以顯示時間。因此,降低了時間誤差。這種時鐘的功能,顯示小時,分鐘明確和調(diào)整小時和分鐘輕松。使用微控制器的設計,以實現(xiàn)定時功能,這是核心部分,在同一時間使用液晶的動態(tài)顯示“小時” , “分”和“秒” 。與傳統(tǒng)的機械手表,它有一個準確的時間,直觀,和其他特點,其時間期限為24小時。該系統(tǒng)主要進行了研究數(shù)字時鐘。系統(tǒng)需要液晶顯示器,配合按鍵,提供友好的用戶界面。數(shù)字時鐘可連續(xù)和穩(wěn)

55、定的工作,而且易于使用。外文資料原文:The rapid development of information technology in todays ever-changing computer science. The single-chip microcomputer as a branch of computer science, computer control in the field of development by leaps and bounds. With the single-chip science and technology development and th

56、e improvement of the production of single-chip human life has become an indispensable tool.But with the continuous development of science and technology, People have higher request to the accuracy of the time calculate. How the clock work more precisely? How to allow them a better service to our liv

57、es? Clearly the traditional clock can not meet peoples needs. This requires people to continue to design a new clock.Now, SCM applications have penetrated into all areas of our lives, which is very difficult to find the area of almost no traces of single-chip microcomputer. Missile navigation equipm

58、ent, aircraft control on a variety of instruments, computer network communications and data transmission, industrial automation, real-time process control and data processing, are widely used in a variety of smart IC card, limousine civilian security systems, video machines, cameras, control of automatic washing machines, as well as program-co

溫馨提示

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

評論

0/150

提交評論