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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、職 稱 講師(2012 年 6 月)宜春學院教務處制宜春學院物理科學與工程技術學院畢業設計“Uc/os-2內核在80C51系列單片機上的移植研究”設計宜春學院 物理科學與工程技術學院 電子信息工程 舒功萌指導老師:甘輝摘要:介紹了一種實時操作系統uC/OS-II的內核結構,分析了它的移植技術;討論了將其移植到80C51系列單片機硬件平臺上的關鍵技術,并詳細描述了此移植的實現過程,分析了移植測試實驗情況;針對keilCx51編譯器環境下的一些特殊情況進行了說明,并總結了移植的一般方法。關鍵詞:8051單片機;實時操作系統;移植;交叉編譯器;測試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 數碼顯示管 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 鍵盤及讀數原理 PAGEREF _Toc25708 10 HYPERLINK l _Toc12321 3.4 連擊功能的實現 PAGEREF _Toc12321 10 HYPERLINK l _Toc24982 4 、程序設計思想和相關指令介紹 PAGEREF _Toc24982 11 HYPERLINK l _Toc19756 4.1 數據與代碼轉換 PAGEREF _Toc19756 11 HYPERLINK l _Toc4476 4.2 計時功能的實現與中斷服務程序 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、結論 PAGEREF _Toc14634 23 HYPERLINK l _Toc3809 8、參考文獻 PAGEREF _Toc3809 24 HYPERLINK l _Toc21797 9、辭謝 PAGEREF _Toc21797 25我記得結論應該在附錄的前面,你在仔細看看它們的順序。在目錄里面把括號里的文字以及括號本身刪除 1、前言嵌入式系統已成為后PC時代一個廣闊的研發領域,其應用范圍越來越廣。實際應用中,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

41、kInit和OSStartHighRdy()函數;創建Task1和Task2后,通過二者之間的切換,驗證OSCtxSw函數;初始化時鐘,開中斷。Task1和Task2各自睡眠一段時間(Task2睡眠時間是Task1的2倍)。等睡眠時間到達后,根據各自輸出的不同結果,驗證OSIntCtxSw和OSTickISR函數。主要測試代碼如下: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對實驗結果的分析和討論輸出結果為:Task1isactive.11111111Task1isactive.11111111Task2isactive.22222222Task1isactive.11111111Task1isactive.11111111Task2isactive.2222

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

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

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

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

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公司提供的用語開發MSC-51系列單片機的匯編語言與C語言程序的集成開發環境發,操作界面和其他Windows應用程序一樣。uVision2支持所有的KeilC51工具,包括C編譯器、宏匯編其、連接定位器、目標代碼到HEX的轉換器。 KeilC51的Windows版的軟件,都是要建立一個工程文件,不管是匯編語言的,還是C語

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

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

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

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

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

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

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

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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論