第一篇:《單片機原理及應用》實驗報告
實驗一:單片機開發裝置使用方法
(小2號,加粗)
一、實驗目的(3號,加粗)內容(楷體,4號,不加粗)
字符和數字用Times new Roman
二、實驗內容
三、實驗步驟
四、實驗結果
五、實驗分析
六、實驗總結
第二篇:《單片機原理及應用》課程
《單片機原理及應用》課程
自評報告
陜西理工學院電氣工程系《單片機原理及應用》課程組 二○一○年三月
目 錄
第一部分 課程簡介
第二部分
課程內容與體系的改革 第三部分 實驗教材
第四部分 自評結果和評分依據 第五部分 存在的主要問題及整改措施 附件:自評評分依據 《單片機原理及應用》課程自評報告
第一部分 課程簡介
單片機技術廣泛地應用于工業控制、智能儀器儀表、機電一體化產品、家用電器等各個工業領域。因此,單片機原理及應用是工科院校各專業學生的一門重要的應用技術課程,對電類學生尤為重要,通過該課程可以了解工業高新技術,培養綜合的工程設計能力。學生在課程設計、畢業設計、科研項目中會廣泛應用到單片機知識,而且,進入工作后,更會廣泛接觸到單片機的工程項目。近幾年,一些用人單位直接把單片機應用技術測試作為人才選用的條件。顯然,提高該門課程的教學質量,對培養學生的綜合應用能力,提升學生在人才需求市場中的競爭能力,具有重要意義。
《單片機原理及應用》課程是自動化、電氣工程及其自動化、計算機科學與技術等專業的一門專業技術基礎課。單片機應用技術包含著廣泛的內容(基本原理、接口技術、開發方法、開發工具、控制技術等),而且構成完整的知識體系。也就是說,缺少某一個方面或某一個環節的知識,將會影響實踐應用能力。再者,單片機產品及其應用技術發展日新月異。在一門課程的有限教學時間內,如何讓學生比較系統全面的掌握單片機應用知識,同時能反映比較新的應用技術,培養學生的工程設計能力,必須加強課程建設力度,在課程內容與課程體系上進行重大改革。
《單片機原理及應用》課程在自動化、電氣工程及其自動化、計算機科學與技術3個本、專科專業中開設學時為40-60學時。多年來,該課程組師資隊伍建設穩步提高,教學和實驗條件逐步完善,現已形成了相對穩定的較高教學水平的師資隊伍和完全滿足實驗教學條件的實驗平臺。
目前,《單片機原理及應用》課程組共有6名課程主講教師和多位實驗技術人員,其中教授1人、副教授2人、講師3人,研究生5人,實驗師多人,承擔校內相關3個專業本、專科學生的單片機原理及應用課程教學與實驗任務。
《單片機原理及應用》課程組在多年的具體教學與實踐過程中,在課程建設和教學改革方面取得了較為顯著的成效。從2000年開始,課程改革小組注重教育思想和教學觀念的轉變,開展了課程教學內容、課程體系、教學方法及教學手段的改革研究與實踐,對課程的教學內容與體系進行了優化。目前已初步建立了以培養學生工程素質和綜合應用能力為教學目標的新的課程體系,在教材建設、實踐性教學環節建設方面取得了可喜的成果。李建忠教授把課程組研究的理論成果變成了現實成果,編著的《單片機原理及應用》(第二版被評為國家十一五規劃教材)一書被全國30多個省市的100多所高校采用,在國內產生較大影響。組織的實踐教學環節在本院多屆學生中也取得了顯著的成效。
《單片機原理及應用》教學儀器設備豐富,實驗開出率100%,同時開設一定的設計性、綜合性實驗。實驗室規章制度健全,管理人員到位,教學服務及時,為實驗課程教學提供了有力保障。
隨著“單片機原理及應用”課程內容和課程體系改革的進行,課程教學質量逐步明顯提高。伴隨著教學質量的提高,浮現出了許多科研項目。例如,智能型家用有毒氣體探測語音報警呼救裝置、機車防帶電過分相裝置、消失模澆注充型速度的微機化測試的研制,科研項目的進行又推動了教學質量的進一步提高。教師在教學中,結合自己的科研生動地講解原理、方法、技術。近幾年課程組成員結合自己的科研項目,在單片機應用技術方面發表論文多篇。
第二部分 課程內容與體系的改革
教材是教育思想、教育理念體現的載體,是一門課程教學內容與體系、教學方法及手段的集中表現。一本好的教材不能局限在知識的傳遞上,還應表現在科學思維方法、獲取知識的方法、綜合能力和創新設計能力培養方法的傳遞上,便于運用新的教學方法和手段組織實施教學。這是課程組改革研究的一個理論成果。
在理論研究的指導下,確定以教材建設為龍頭進行課程內容與體系的優化。由于單片機應用技術知識包含的內容廣泛,單片機產品及其應用技術發展速度快,如何在有限的計劃課時內讓學生比較完整的掌握單片機應用技術知識體系,同時了解一些比較新應用技術,吸取了國內外先進的教學思想和教學經驗,廣泛收集和查閱國內外優秀教材和有關教學資料,又結合我們多年積累的教學經驗和教訓,比較全面地考慮了各種因素,對課程內容與課程體系進行整體優化,編著了《單片機原理及應用》(第二版被評為國家十一五規劃教材)、《單片機原理及應用實踐教程》,形成了一套新的課程教學體系。教材內容體系進行了優化組合。既體現了系統全面,包含了基本原理、接口技術、開發方法、開發工具、控制技術等,又進行了濃縮精練,論述嚴謹透徹。教材內容的組織上采用“以點見面,觸類旁通”的精練濃縮方法。例如,在每一章節前都概述出相關的一般性內容和方法,然后再以具體的內容或典型的實例進行說明。始終貫穿應用觀點。例如,在單片機原理的講解中,著重強調站在應用角度,掌握單片機的功能特性和配置結構。即用戶站在單片機芯片外部看它所提供給用戶的使用功能和資源,達到正確、合理的使用單片機所提供的硬、軟件資源。這不僅給學生強調了達到應用的學習目標,而且給學生樹立了一個學習掌握應用知識的正確學習方法界面。這一點經教學實踐檢驗,取得了良好的教學效果。又例如,在應用技術的講解中,大多數選自生產和科研中的應用實例,使學生學后就能用。注重科學思維方法、獲取知識的方法、綜合能力和創新設計能力的培養方法的傳遞。掌握一門學科知識的學習方法,其實質是找出并抓住學科知識的內在聯系,形成一個完整體系。該書突出了這方面的特色。例如,在指令系統的講述中,大多數教材采取按功能類逐條指令羅列講解,使初學者很難理解記憶。其實,指令系統中有一些操作指令的子集合是具有特征規律的,不同操作指令的子集合之間也具有一些可比性特征規律,在該書的講述中用歸納、類推、類比方法進行縱向歸類,橫向類推、比較。這不僅能使學生掌握知識,而且學習了科學思維方法和學習方法。在講解基礎知識的基礎上,反映新的應用技術成果。例如,緊密結合基礎知識講解了單片機應用程序開發設計方法。
第三部分 實驗教材
在廣泛調研現有實驗教材經驗與問題的基礎上,引入新的教育理念,針對現代工程人才的培養模式、人才素質及能力的要求,課程組認為實驗教材不能局限在對基礎知識的驗證上、不能局限在基本實驗的操作指導上、不能局限在某一門課程知識的動手實踐能力的培養上、不能局限在理論教材的輔助功能作用上,還應給學生提供廣闊的、自由靈活的動手實踐空間,要培養學生在基本理論知識的基礎上能夠吸收、使用新技術方法,培養學生一般的工程實踐能力和創新設計能力,使實驗教材成為相對獨立的綜合實踐能力培養的指導書。在這樣的思想指導下,組織編寫了《單片機原理及應用實踐教程》的,于2001年5月在本院內部印刷使用。在多年的使用中取得了良好的效果。
《單片機原理及應用實踐教程》一書主要具有以下特色:(1)知識的系統完整性與實踐過程的系統完整性并重 實驗內容的編寫上緊密結合理論教學,按照單片機原理及應用課程知識的內在聯系,保持了知識的系統完整性。從宏觀結構上,實驗內容分為單片機系統功能、單片機系統擴展、單片機系統配置和綜合應用四大實驗組。在每個實驗組中又按照基礎→綜合→工程應用的方式安排了多個實驗項目,每個實驗項目中又按照基本原理、知識提要、基本技術、方法論證、實驗結果分析的方式進行組織。這樣,使該書成為學習、掌握單片機原理及應用知識的很有價值的參考書。從實踐應用過程看,該書宏觀上反映了單片機應用系統的開發環境、開發方法、開發過程。在每一個實驗項目中,又反映出了一個單片機應用系統立題概要分析、功能結構論證分析、器件選擇、硬軟件設計、系統調試、性能分析與測試、文檔收集與整理的全過程。使學生能夠學習、掌握到一個單片機應用系統開發設計過程中各個環節的技術方法。
(2)知識掌握和科學思維能力培養并重
在每個實驗項目中都提示出所依據的基本原理知識,所采用的方法和技術,通過實驗來加深對基本知識的理解,達到熟練掌握。在每個實驗項目后,提出一些很有價值的思考問題,主要圍繞實驗現象觀察與分析,培養學生科學細致地觀察與分析問題的方法和能力。每個實驗既給出了參考方案,又要求學生在參考方案的基礎上自行設計、調試,充分發揮學生的主觀能動性和創造力、有意識地培養學生對工程問題的分析與設計方法。每個實驗都要求學生按照嚴格的格式寫出實驗報告,在實驗報告中深入細致地分析、論證有關實驗現象與結果,通過實驗報告的書寫,培養學生嚴謹求實的科學方法和態度。
(3)既面向驗證性實驗又面向開放性、設計性實驗
根據單片機原理與應用的知識結構,實驗內容分為單片機系統功能、單片機系統擴展、單片機系統配置和綜合應用四個實驗組。每個實驗組又按照基本原理、技術、方法的應用,綜合應用、工程設計的思路方式安排了多個實驗項目,為學生提供了廣泛的實驗內容,即可以供課程實驗使用,也可以供開放實驗、設計實驗使用。
(4)實驗教學的目標確定在以下幾個方面:
驗證基本理論、方法和技術。通過驗證性實驗,使學生加深對基本理論、方法和技術理解,能夠熟練應用,并使學生進一步認識到:基本理論、方法和技術來源于實踐,又對實踐有強大的推動作用,在實踐中得到發展,得到創新。
基本實踐能力的培養。基本實踐能力包含:掌握小型單片機應用系統開發研制所采用的基本環境、方法、手段及所使用的儀器設備。
綜合工程實踐能力的培養。綜合工程實踐能力包含:掌握復雜單片機工程應用系統開發研制所采用的先進的環境、方法、手段及所使用的儀器設備,并能進行工程決策分析。
創新設計能力的培養。創新設計能力包含:在一些關鍵的技術環節上能夠激發出超常的思想方法或采用前沿性的技術手段分析解決問題。
(5)實驗教學的實施方式
根據現代工程人才的培養模式、人才素質及能力的要求,我們設計出了形式多樣的實驗教學方式。
指導型實驗。這類實驗納入單片機原理及應用課程的教學計劃和教學大綱,在老師的指導下,進行規定要求實驗,實驗后要寫出實驗報告。實驗目標是基本實踐能力的培養。
開放型實驗。這類實驗是學生根據自己的要求自發地進行實驗,實驗室必須隨時滿足學生的實驗要求。在這種實驗中,學生可根據自己的情況實現多種目標。
設計型實驗。這類實驗學生帶著自己的設計問題,進入實驗室進行調試或測試,一般結合課程設計、畢業設計、大學生科技活動項目進行。實驗要有明確的目標,主要培養學生綜合工程實踐能力和創新設計能力。
第四部分 自評結果和評分依據
為了進一步提高課程教學質量,努力做好課程建設與評估,電氣工程系專門成立了院系、教研室(課程組)兩級評估領導小組,負責對申報課程的指導、監督和審查。課程組全體任課教師認真學習、領會相關課程建設與評估精神,認真對照精品課程建設評估指標體系的各項要求,總結多年來課程建設的成果,結合課程建設過程中存在的實際問題,進行了認真細致地資料整理、自查自評。通過本次自查自評活動,真正達到了“以評促改,以評促建”的目的。
自評結果:Q=102分(≥100),符合并達到了校級精品課程的條件。詳見附件:課程自評表。
第五部分 存在的主要問題及整改措施
1.網絡教學和資源共享方面還需進一步的豐富和完善。實現與本課程相關的信息查詢、輔導答疑、作業練習等多種功能,方便學生網上學習。
2.實驗教學設備更新不夠,試驗教學手段還不夠豐富、不夠先進,理論教學內容和體系還需要進一步整合、優化;
3.進一步加大教學改革力度,轉變教育教學理念,探索高教理論,不斷改進和提高教師的理論與實踐教學方法和手段。
同時還需要認清形勢,剖析自我,虛心向兄弟院校學習先進的課程建設經驗,彌補自己的差距和不足,加快課程建設步伐,使《單片機原理及應用》課程教學全面上臺階、上水平。
附件:自評評分依據 師資結構:19分/20 1.1師資結構:A級,4分/4 課程組職稱結構合理,有教授、副教授、講師、高級實驗師、實驗師共8人,主要由教授、副教授、講師上課。
1.2教學水平:A級,5 分/6 教學水平高,高、中級職稱教師均開課2門以上;教學工作量飽滿,教案齊全;有教改及科研項目。
1.3學術水平:A級,6 分/6近3年發表論文篇,人均6篇;主編、參編教材9部;完成省廳級科研項目3項,校級科研基金項目3項,院教改項目7項。
1.4教風建設:A級,4分/4 教風良好;教研室制度健全,堅持教學研究活動,每年教研活動大于18次,有記錄;能堅持相互聽課、評教;能收集學生對教學的反饋信息,并改進教學;教學組無任何教學事故。教學條件:24分/25 2.1教學大綱:A級,6分/6 教學大綱符合專業培養目標和教學計劃的基本要求,并能結合教學計劃適時修訂、完善;大綱能反映課程體系結構,項目完整,層次清晰,重點、難點突出,要求明確;教學過程中能夠嚴格執行大綱。
2.2教材及教學參考書:A級,7 分/7 選用學校自編國家級規劃教材及相應教學參考書,滿足不同專業的培養計劃要求,使用效果好。
2.3課程教學管理及教學文件:A級,5分/6 教學參考資料豐富、齊全,能反映本課程發展現狀;課程有完整的教學工作總結,教師有教學日歷和教案。
2.4教學設備和手段:A級,6分/6 使用多媒體、板書講解和現場教學等手段;與實驗室共同開發研制有相應的實驗教學設備,且符合本校學生情況,使用效果好,完全能滿足正常的教學需要。3 考核:15分/17 3.1考試說明:A級,3分/3 在教學大綱的指導下,能按要求進行命題考試工作,命題質量高,考分分布合理。3.2題庫(卷庫)建設:B級,4分/5 有與教材配套使用的高質量的試題庫,試題庫完全符合教學要求。3.3命題與評分:A級,4分/4 考試命題形式多樣,有外校試題、教研室組織命題、試題庫組題等,全部為考教分離;有評分標準,流水閱卷,有效控制了評分誤差。3.4試卷分析:B級,3分/5 試題內容體現教學大綱的基本要求,難度適中,有一定的可信度和區分度;成績分布基本合理。4 教學改革:分/13 4.1教改方案:A級,4分/5 在切實可行的教改計劃,且能運用在教學過程中,有一定的總結。4.2教改效果:A級,7分/8 有專業教改項目的實施,完成教改項目7項,教改效果比較顯著,獲校教學成果獎二等獎3項。5 教學效果:21分/25 5.1講課質量:A級,9分/10 根據師生對講課質量的綜合評價,課程組總體講課水平較高。5.2課外指導:A級,5分/6 對學生課外學習有明確具體的要求,并認真落實、檢查;堅持課外輔導、答疑,效果較好。
5.3教學獲獎情況:A級,4分/4近幾年獲院級以上教學成果獎、講課大賽獎、教案評比獎的人數占課題組人數的70%;有畢業生調查信息表,畢業生反映本課程教學效果優良。
5.4學習質量:B級,3分/5 在嚴格組織考試、評分的情況下,學生考試成績真實,客觀反映了學生學習的現狀;學生基本知識掌握較扎實,但綜合解題能力一般。6 特色指標:A級,16分/20(1)兼顧教學的典型性和技術先進性
教學內容的典型性有利于學生理解相關基礎知識,掌握基本原理和方法,觸類旁通。隨著單片機應用技術日異月新的發展,在未來的實際工作中又會廣泛接觸到新技術、新器件。在理論教學和實踐充分考慮了典型性問題,同時在每個實驗的實現方案中又提示學生在典型性問題的基礎上采用一些新器件、新方法自行設計,讓學生接觸一些先進性技術、方法。
(2)基礎訓練與實際應用相結合
在注重單片機原理、實用接口技術的基礎上、還突出教學內容的實踐性和實用性。大多數實驗內容都取材于生產和科研實際。綜合應用實驗集中鍛煉學生了解實際系統要求,設計應用系統的能力。有助于開拓視野,強化工程觀念,培養創新能力和協作精神,提高綜合素質。
(3)注重綜合工程實踐能力和創新設計能力的培養
大多數實驗內容都取材于生產和科研實際,使學生所學就能所用。
每一個實驗項目的實驗過程都突出一個單片機工程應用系統開發設計的各個關鍵技術環節,尤其突出調試方法和手段。每一個實驗項目中都設置了若干問題,讓學生充分發揮主觀能動力和創新思維能力進行調試。每一個實驗項目除給出參考實驗方案外,還提示采用不同的方案、不同的器件、不同的方法自行設計、調試,給學生留下創新發揮的空間。
電氣工程系
《單片機原理及應用》課程組
2010.3
第三篇:單片機原理及應用課程設計
智能電子鐘(LCD顯示)
1、設計內容及要求...............................................................................................2 1.1、設計內容..............................................................................................2 1.2、設計要求..............................................................................................2 1.3、撰寫設計報告......................................................................................2
2、總體方案設計...................................................................................................2 2.1、方案圖................................................................................................2 2.2、面板布置圖.........................................................................................2 2.3、方案討論.............................................................................................3 2.4、明晰任務.............................................................................................4
3、電路原理圖......................................................................................................4
4、程序框圖.........................................................................................................5 4.1、顯示子程序流程圖............................................................................5 4.2、實時時鐘芯片 1302 讀/寫數據流程圖............................................6
5、編程序................................................................................................................6
6、調試....................................................................................................................6 6.1、軟件調試.............................................................................................6 6.2、仿真調試..............................................................................................7
7、自我感想............................................................................................................7
8、參考書目............................................................................................................8 附錄:C 語言編程源程序.......................................................................................8 1.設計內容及要求 1.1、設計內容:
以AT89C51 單片機為核心,制作一個 LCD 顯示的智能電子鐘。1.2、設計要求:
(1)計時:秒、分、時、天、周、月、年。(2)閏年自動判別。
(3)五路定時輸出,可任意關斷(最大可到16路)。(4)時間、月、日交替顯示。(5)自定任意時刻自動開/關屏
(6)計時精度:誤差≤1秒/月(具有微調設置)
(7)鍵盤采用動態掃描方式查詢。所有的查詢、設置功能均由功能鍵K1、K2完成 1.3、撰寫設計報告
單片機課程設計是以課題或項目設計方式開展的一門課程,具有較強的綜合性、實踐性,是工科、工程類院校或職業類院校電類專業在校生的必修課,是將單片機原理與應用課程的理論知識轉變為應用技術的重要教學環節。這一環節不但能加深對單片機原理的理解,而且還能培養學生的實踐動手能力,開發學生的分析、解決問題的能力。單片機課程設計環節的訓練能夠讓學生知道單片機工程項目的制作過程,使學生盡早了解單片機系統的開發過程。
2.總體方案設計 2.1、方案圖
2.2、面板布置圖
2.3、方案討論
方案一:采用實時時鐘芯片
實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點計時功能,計時數據的更新每秒自動進行一次,不需程序干預。計算機可通過中斷或查詢方式讀取計時數據進行顯示,因此計時功能的實現無需占用 CPU 的時間,程序簡單。此外,實時時鐘芯片多數帶有鋰電池做后備電源,具備永不停止的計時功能;具有可編程方波輸出功能,可用做實時測控系統的采樣信號等;有的實時時鐘芯片內部還帶有非易失性 RAM,可用來存放需長期保存但有時也需變更的數據,由于功能完善,精度高,軟件程序設計相對簡單,且計時不占用 CPU 時間,因此,在工業實時測控系統中多采用這一類專用芯片來實現實時時鐘功能。
方案二:軟件控制
利用單片機內部的定時/計數器進行中斷定時,配合軟件延時實現時、分、秒的計時及秒表計時。該方案節省硬件成本,且能使設計者對單片機的指令系統能有更深入的了解,從而掌握單片機應用技術 MCS-51 匯編語言程序設計方法,因此,本系統設計采用此種軟件控制方法來實現計時。而由于 Atmel 公司 的AT89C51 是一種自帶 4KB Flash 存儲器的低電壓、高性能的 CMOS 8 位微處理器。該器件采用 Atmel 高密度非易失存儲器制造技術制造,與工業標準 的MCS-51 指令集和輸出引腳相兼容。AT89C51 將多功能 8 位 CPU 和閃存集成在單個芯片中,是一種高效的微控制器,使用也更方便,壽命更長,可以反復擦除 1000 次。形成了功能強大、使用靈活和具有較高性能價格比的微控制器。它的功能強大而且也比較容易購買,故本設計中所選的單片機為 AT89C51 單片機。2.4、明晰任務
采用 AT89C51 單片機作為系統的控制核心。時鐘數據通過市場上流行的時鐘芯片 DS1302 來獲取。DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片,內含一個實時時鐘/日歷和 31 字節靜態 RAM,可以通過串行接口與計算機進行通信,使得管腳數量減少。實時時鐘/日歷電路能夠計算 2100 年之前的秒、分、時、日、星期、月、年的,具有閏年自動判斷調整的能力。定時電路能夠實現自定任意時刻自動開/關屏,采用 LCD LM016L 顯示年、月、周、天、時、分、秒。通過按鍵開關實現微調,確保計時精度:誤差≤1 秒/月。DS1302 時鐘芯片的主要功能特性:
(1)能計算 2100 年之前的年、月、日、星期、時、分、秒的信息;每月的天數
和閏年的天數可自動調整;時鐘可設置為 24 或 12 小時格式。(2)31B 的 8 位暫存數據存儲 RAM。(3)串行 I/O 口方式使得引腳數量最少。
(4)DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需 3 根線。
(5)寬范圍工作電壓 2.0-5.5V。
(6)工作電流為 2.0A 時,小于 300nA。
(7)功耗很低,保持數據和時鐘信息時功率小于 1mW。
3.電路原理圖
4.程序框圖
4.1、顯示子程序流程圖
4.2、實時時鐘芯片 1302 讀/寫數據流程圖
5.編程序 源程序見附錄部分 6.調試 6.1、軟件調試
目前設計過程中容易造成元件和儀器儀表的損壞,而借助 Keil 和 Proteus進行單片機系統的開發,可以節省設計成本,提高設計速度。Keil 軟件包是一個功能強大的開發平臺,它包括項目管理器、CX51 編譯器、AX51 宏匯編器、BL51/LX51 連接定位器、RTX51 實時操作系統、Simulator 軟件模擬器及 Monitor51 硬件目標調試器。它是一種集成化程度高的文件管理編譯環境,主要功能為編譯 C 語言源程序,匯編程序或混合語言源程序,連接和定位目標文件和庫,創建 HEX 文件,調試目標程序等。Keil 是目前最好的 51 單片機開
發工具之一。Keil 支持軟件模擬仿真(Simulator)和用戶目標調試(Monitor51)兩種工作模式。前者不需要任何單片機硬件即可完成用戶程序仿真、調試,后者利用硬件目標板中的監控程序可以直接調試目標硬件系統。Proteus 是一個完整的嵌入式系統軟件、硬件設計仿真平臺,它包括原理圖輸入系統 ISIS、帶擴展的 Prospice 混合模型仿真器、動態元件庫、高級圖形分析模塊和處理器虛擬系統仿真模型 VSM。ISIS 是 Proteus 系統的中心,具有超強的控制原理設計環境。ProteusVSM 最重要的特點是能把微處理器軟件作用在處理器上,并和該處理器的任何模擬和數字元件協同仿真,仿真執行目標碼就像在真正的單片機系統上運行一樣,VSM CPU 模型能完整仿真 I/O 接口、中斷、定時器、通用外部設備口及其他與 CPU 有關的外部設備,甚至能仿真多個處理器。6.2、仿真調試 Proteus 仿真
7.自我感想
經歷過這么多天不間斷的課程設計,我們有挺多感觸的,從最基本上說我們看到了,也意識到了自己的不足,對于不斷克服的各種阻礙也讓我們體會到了課程設計的意義所在。對于只接觸課本只動筆桿的我們,面臨實際的設計尺寸,讓我們很是尷尬,都說理論聯系實際,真正到聯系的時候才發現挺困難的,不過正是理論知識的各種補充才讓我們能最終完成任務,然后深深地體會到理論對現實的指導作用。我們現在最缺乏的就是實際工作經驗,而理論聯系實踐并不像我們想象的那么簡單,他需要堅實的理論基礎和實際工作經驗。堅實的理論基礎決定了我必須堅持學習新的知識新的理論,完善了自己的知識結構,才能在以后的實際中輕松面對,才能設計出更好的更有益于人們生活與工作的機械,才能跟上時代的步伐,不被淘汰。在這個一邊忙著復習忙著考試又要準備課程設計的日子里,真真正正的體會到了時間的寶貴,有點像高中忙忙碌碌的生活,不過能按時完成課程設計對我們來說也是一個莫大的安慰。嚴謹和細心是做機械設計的必要態度,要想做好一件事,就必須一絲不茍、態度認真。俗話說:“失之毫厘,謬之千里。”在機械設計上尤其應該注意。在以后的工作中,你的很小的一個疏忽將會造成一個公司很大的損失,甚至給用戶帶去生命危險,而自己也會為自己的不負責任行為付出代價。再者就是設計中要嚴謹和細心,對于機械是不能出差錯的,任何的微小誤差都可能產生不可預計的后果,當然對于我們來說就是設計中要走一些彎路,而且在這個嚴重缺少時間又惦記回家問題的我們來說也是一個很嚴重的后果。不過,困難雖是難免的,但我們有信心就能并且已經戰勝了困難,完成了這個無比揪心的課程設計。因為時間等各種關系設計中難免有些不足還請老師助教給予批評和幫助。
8.參考文獻
《MCS-51 系列單片機原理及應用》 孫涵芳 主編 《新概念 51 單片機 C 語言教程》 郭天祥 主編 《51 單片機課程設計》 周向紅 主編 《單片機原理及其應用教程》 張元良 主編 附錄:C 語言編程源程序
#include
uint year_data,t;//-----sbit SCLK=P3^5;//DS1302 通訊線定義 sbit DIO=P3^6;sbit RST=P3^7;sbit speak=P0^0;sbit DS=P2^0;//595 通訊線定義 sbit SH_CP=P2^1;sbit ST_CP1=P2^2;sbit ST_CP2=P2^3;sbit ST_CP3=P2^4;sbit ST_CP4=P2^5;sbit ST_CP5=P2^6;sbit ST_CP6=P2^7;sbit ST_CP7=P3^0;sbit ST_CP8=P3^1;sbit OE1=P1^0;sbit OE2=P1^1;sbit OE3=P1^2;sbit OE4=P1^3;sbit OE5=P1^4;sbit OE6=P1^5;sbit OE7=P1^6;sbit OE8=P1^7;sbit K1=P3^2;//按鍵接口定義 sbit K2=P3^3;sbit K3=P3^4;sbit K4=P0^1;sbit K5=P0^2;//-----void write_595(uchar temp)//寫 74HC595 一個字節 { uchar temp_595,i;temp_595=temp;for(i=0;i<8;i++)
{
SH_CP=0;
_nop_();_nop_();_nop_();if(temp_595&0x80){ DS=1;} else { DS=0;} _nop_();_nop_();_nop_();SH_CP=1;temp_595<<=1;} } //--------------void delay(uint z)//Nms 延時 { uint x,y;for(x=z;x>0;x--)for(y=112;y>0;y--);} //-------------void delaynus(uint z)//ums 延時 { uint x,y;for(x=z;x>0;x--)for(y=10;y>0;y--);} //---------------void write(uchar date)//寫入 DS1302 一個字節 { uchar temp,i;RST=1;SCLK=0;temp=date;for(i=0;i<8;i++){ SCLK=0;if(temp&0x01)DIO=1;else DIO=0;SCLK=1;temp>>=1;} } //-----uchar read()//讀出 DS1302 一個字節 { uchar a,temp;RST=1;for(a=8;a>0;a--){ temp>>=1;SCLK=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();SCLK=0;if(DIO){ temp=temp|0x80;} else { temp=temp|0x00;} } return(temp);} //---void write_1302(uchar add,uchar dat)//寫 DS1302 數據 { RST=0;SCLK=0;RST=1;write(add);write(dat);SCLK=1;RST=0;} //----------uchar read_1302(uchar add)// 讀 DS1302 數據 { uchar temp;RST=0;SCLK=0;RST=1;write(add);temp=read();SCLK=1;RST=0;return(temp);} //------------void display()//顯示子程序 { miao=read_1302(0x81);//讀秒 fen=read_1302(0x83);//讀分
shi=read_1302(0x85)&0x3f;//讀時 date=read_1302(0x87);//讀日 month=read_1302(0x89);//讀月 year=read_1302(0x8d);//讀年 day=read_1302(0x8B);//讀星期 write_595(miao);//顯示秒 ST_CP1=0;ST_CP1=1;ST_CP1=0;delaynus(10);write_595(fen);//顯示分 ST_CP2=0;ST_CP2=1;ST_CP2=0;delaynus(10);write_595(shi);//顯示時 ST_CP3=0;ST_CP3=1;ST_CP3=0;delaynus(10);write_595(date);//顯示日 ST_CP4=0;ST_CP4=1;ST_CP4=0;delaynus(10);write_595(month);//顯示月 讀 ST_CP5=0;ST_CP5=1;ST_CP5=0;delaynus(10);write_595(year);//顯示年 ST_CP6=0;ST_CP6=1;ST_CP6=0;delaynus(10);write_595(xingqi[day]);//顯示星期 ST_CP7=0;ST_CP7=1;ST_CP7=0;delaynus(10);} //----------void ds1302_init()//1302 初始化 { RST=0;SCLK=0;/* write_1302(0x80,0x00);//設置初始值 SEC write_1302(0x82,0x00);//設置初始值 MIN write_1302(0x84,0x00);//設置初始值 HR write_1302(0x86,0x00);//設置初始值 DATE write_1302(0x88,0x00);//設置初始值 MONTH write_1302(0x8A,0x00);//設置初始值 DAY */ write_1302(0x8C,0x10);//設置初始值 YEAR } //--------------void PORT_INIT()//端口初始化 { P0=0XFE;P1=0X00;P2=0X00;P3=0XFC;} void time_init()//定時器初始化 { TMOD=0x11;//設置定時 器 01 都為工作方式 1 TH0=(65536-50000)/256;//裝入初值 TL0=(65536-50000)%256;TH1=(65536-10000)/256;//裝入初值 TL1=(65536-10000)%256;PT0=1;//T0 定時器優先級最高 EA=1;//開總中斷
ET0=1;//開定時器 0 中斷 ET1=1;//開定時器 1 中斷 TR0=1;//啟動定時器 0 TR1=1;// 啟動定時器 1 } //--------------void main(void)//主程序 { PORT_INIT();ds1302_init();time_init();year=read_1302(0x8d);//讀年數據 year_data=0x2000|year;write_595(year_data>>8);//顯示 2010 年的 20 字樣 ST_CP8=0;ST_CP8=1;ST_CP8=0;set_shi=0x09;//鬧鐘初始值設定 set_fen=0x39;time_flag=0;//標志位 set=0;while(1){ switch(set){ case 0: //設置秒 { display();// 顯 示 子 程 序
if((shi==set_shi)&&(fen==set_fen)&&(time_flag==0))小時和分鐘 { speak=~speak;if((K2==0)&&(time_flag==0))//按鍵 K2 停 止鬧鐘響 { P0&=0XFE;time_flag=1;} delay(10);} } break;} if(fen==set_fen+1)// 當 不 按 下 鬧 鐘 停止按鍵,一分鐘后自動停止鬧 鐘 { P0&=0XFE;time_flag=0;} } } //--------void time0()interrupt 1 // 定時 器 0 中斷 { TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;mun++;if(mun==15){ mun=0;switch(set){ case 1: //設置秒閃爍 {OE1=1;delay(300);OE1=0;} break;case 2: //設置分閃爍 { OE2=1;delay(300);OE2=0;} break;case 3: //設置時閃爍 { OE3=1;delay(300);OE3=0;} break;case 4: //設置日閃爍 { OE4=1;delay(300);OE4=0;} break;case 5: //設置月閃爍 { OE5=1;delay(300);OE5=0;} break;case 6: //設置年閃爍 { OE6=1;OE8=1;delay(300);OE6=0;OE8=0;} break;case 7: //設置星期閃爍 { OE7=1;delay(200);OE7=0;} break;case 8: //設置鬧鐘閃爍 { OE2=1;OE3=1;delay(200);OE2=0;OE3=0;} break;} } TR0=1;} //-----------void time1()interrupt 3 // 定時器 1 中斷 { TR1=0;//先關定時器 TH1=(65536-20000)/256;TL1=(65536-20000)%256;//-if(K1==0){ delay(10);if(K1==0){ set++;if(set==9){ set=0;write_1302(0x80,miao);//設置初始值 SEC write_1302(0x82,fen);//設置初始值 MIN write_1302(0x84,shi);//設置初始值 HR write_1302(0x86,date);//設置初始值 DATE write_1302(0x88,month);// 設置初始值 MONTH write_1302(0x8A,day);//設置初始值 DAY write_1302(0x8C,year_data);//設置初始值 YEAR } t=50000;while((!K1)&&t){ t--;} } } //-------if(K2==0){ delay(10);if(K2==0){ switch(set){ case 1: { miao++;if((miao&0x0f)>0x09){ miao+=0x10;miao&=0xf0;} if(miao==0x60){ miao=0x00;} write_595(miao);ST_CP1=0;ST_CP1=1;ST_CP1=0;} break;case 2: { fen++;if((fen&0x0f)>0x09){ fen+=0x10;fen&=0xf0;} if(fen==0x60){ fen=0x00;} ST_CP2=0;ST_CP2=1;ST_CP2=0;} break;case 3: { if((read_1302(0x85)&0x80)==0x00){ shi++;if((shi&0x0f)>0x09){ shi+=0x10;shi&=0xf0;} if(shi==0x24)//24 小時制 { shi=0x00;} } else { shi=(shi|0x80)+1;if((shi&0x0f)>0x09){ shi+=0x10;shi&=0xf0;} if(shi==0x12)//12 小時制 { shi=0X80;} } write_595(shi);//顯示時 ST_CP3=0;ST_CP3=1;ST_CP3=0;} break;case 4: { date++;if((date&0x0f)>0x09){ date+=0x10;date&=0xf0;} if((date==0x32)&&((month==0x01)||(month==0x03)||(month==0x05)||(month ==0x07)||(month==0x08)||(month==0x10)||(month==0x12))){ date=0x01;} else if((date==0x31)&&((month==0x04)||(month==0x06)||(month==0x09)||(month ==0x11))){ date=0x01;} else if((date==0x29)&&(month==0x02)&&((year_data|read_1302(0x8d))%100!=0)& &((year_data|read_1302(0x8d))%400!=0)){ date=0x01;} else if((date==0x30)&&(month==0x02)&&((year_data|read_1302(0x8d))%100==0)& &((year_data|read_1302(0x8d))%400==0)){ date=0x01;} write_595(date);ST_CP4=0;ST_CP4=1;ST_CP4=0;} break;case 5: { month++;if((month&0x0f)>0x09){ month+=0x10;month&=0xf0;} if(month==0x13){ month=0x01;} write_595(month);ST_CP5=0;ST_CP5=1;ST_CP5=0;} break;case 6: { year_data++;if((year_data&0x000f)==0x0a){ year_data+=0x0010;year_data&=0xfff0;} if((year_data&0x00ff)==0xa0){ year_data+=0x0100;//向前進 1 year_data&=0xff00;//后面尾數歸 0 } write_595(year_data);ST_CP6=0;ST_CP6=1;ST_CP6=0;write_595(year_data>>8);ST_CP8=0;ST_CP8=1;ST_CP8=0;} break;case 7: { day++;if((day&0x0f)==0x08){ day=0x01;} write_595(xingqi[day]);ST_CP7=0;ST_CP7=1;ST_CP7=0;} break;} t=50000;while((!K2)&&t){ t--;} } } //-------------------------if(K3==0){ delay(10);if(K3==0){ switch(set){ case 1: { miao--;if((miao&0x0f)==0x0F){ miao&=0xf9;//減到 0 后,再減一次就歸 0, } if(miao==0xF9)//當全部減到 00 時,再 減一次就為 59 { miao=0x59;} write_595(miao);ST_CP1=0;ST_CP1=1;ST_CP1=0;} break;case 2: { fen--;if((fen&0x0f)==0x0F){ fen&=0xf9;} if(fen==0xF9){ fen=0x59;} write_595(fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;} break;case 3: { if((read_1302(0x85)&0x80)==0x00){ shi--;if((shi&0x0f)==0x0F){ shi&=0xf9;} if(shi==0xF9)//24 小時制 { shi=0x23;} } else { shi=(shi|0x80)-1;if((shi&0x0f)==0x0F){ shi&=0xf9;} ST_CP4=0;} break;case 5: { month--;if((month&0x0f)==0x0F){ month&=0xf9;} if(month==0x00){ month=0x12;} write_595(month);ST_CP5=0;ST_CP5=1;ST_CP5=0;} break;case 6: { year_data--;if((year_data&0x000f)==0x0F){ year_data&=0xfff9;} if((year_data&0x00f0)==0xF0){ year_data&=0xf999;} write_595(year_data);ST_CP6=0;ST_CP6=1;ST_CP6=0;write_595(year_data>>8);ST_CP8=0;ST_CP8=1;ST_CP8=0;} break;case 7: { day--;if((day&0x0f)==0x00){ day=0x07;} write_595(xingqi[day]);ST_CP7=0;ST_CP7=1;ST_CP7=0;} break;} t=50000;while((!K3)&&t)//松手檢測 { t--;} } } //---switch(set){ case 8: { if(K4==0){ delay(10);if(K4==0){ if((read_1302(0x85)&0x80)==0x00){ set_shi++;if((set_shi&0x0f)>0x09){ set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x24)//24 小時制 { set_shi=0x00;} } else { set_shi=(set_shi|0x80)+1;if((set_shi&0x0f)>0x09){ set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x12)//12 小時制 { set_shi=0X80;} write_595(set_shi);// 顯示鬧 鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;t=50000;while((!K4)&&t){ t--;} } } //----if(K5==0){ delay(10);if(K5==0){ set_fen++;if((set_fen&0x0f)>0x09){ set_fen+=0x10;set_fen&=0xf0;}
if(set_fen==0x60)
{
set_fen=0x00;
} write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;t=50000;while((!K5)&&t){ t--;} } set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x12)//12 小時制 { set_shi=0X80;} write_595(set_shi);// 顯示鬧 鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;t=50000;while((!K4)&&t){ t--;} } } //----if(K5==0){ delay(10);if(K5==0){ set_fen++;if((set_fen&0x0f)>0x09){ set_fen+=0x10;set_fen&=0xf0;}
if(set_fen==0x60)
{
set_fen=0x00;
} write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;t=50000;while((!K5)&&t){ t--;} } } } } //------------------------if(((K4==0)||(K5==0))&&(set==0)){ delay(10);if(((K4==0)||(K5==0))&&(set==0)){ write_595(set_shi);//顯示鬧鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;P1=0XF9;while((!K4)||(!K5));P1=0X00;} } //----------TR1=1;//退出時開定時器 } } //----------
第四篇:《單片機原理及應用》課程設計簡介
《單片機原理及應用》課程設計簡介
1、課程編碼:1302009602、英文名稱:project work for 《the principle and application of single chip computer》
3、學時/學分:
總學時:1周,學分:1學分,時間安排:第五學期
4、課程負責人:石亞和
5、課程設計主要內容簡介
目的: ⑴ 配合《單片機原理及應用》課程,加強實踐訓練,使學生鞏固理論課程所學內容,加深對原本抽象的學習內容的理解深度,達到良好的教學效果。⑵ 結合專業特點,培養學生獨立科研和設計開發能力,并為以后的畢業設計打下堅實的基礎。
任務: ⑴ 學生圍繞教師提出的設計課題進行選擇論證,確定自己的方案,做必要的實驗,進行原理圖設計和印刷電路板設計并完成設計圖紙; ⑵寫出設計說明書。
要求:⑴ 學生原則獨立完成設計工作,可每2-3人為一組,各組題目不同,由2-3名教師分別指導。⑵ 課程設計期間應集中統一在確定的地點進行工作,不得缺席。學生應準備專用的筆記,記錄設計期間的計算數據、所查閱的資料文獻、改進措施等內容以備平時檢查。實施計劃:第5學期期末安排進行,提前4周在課程進行中下發設計題目并要求學生分組 完畢和進行題目初選。提前1周所有指導教師與學生見面,約定活動時間地點等項。用1 周時間完成方案論證、原理圖繪制和PCB印刷電路板練習,并考慮程序流程。最后寫出完 整的設計說明書。
成績評定:工作表現、設計說明書質量和答辯驗收各占三分之一。由各指導教師按5級分制分別評定,并由課題組長最終審核確認。
6、先修課程:模擬電子技術,脈沖與數字電路,單片機原理及應用
7、適用專業:測控技術及儀器
8、參考教材:《單片機原理及應用》課程設計指導書
第五篇:《單片機原理及應用》課程設計任務書(2014)
《單片機原理及應用》課程設計
任務書
一、課程設計題目
見農機111《單片機課程設計》題目分配表。
二、課程設計的基本要求
1、根據給定的題目,在規定時間內完成系統硬件電路設計、系統程序設計。具體包括:
(1)在keil IDE(μvision3)中完成應用程序設計、并編譯;
(2)在Proteus 7.5下的ISIS Professional中完成電路設計、調試并仿真通過。
2、課程設計結束時需要提交的材料清單:
(1)設計說明書
設計說明書包含:設計思想和設計說明,硬件原理框圖,硬件原理圖與其軟件配合介紹(若有),程序存儲器和數據存儲器的單元分配,程序流程圖,源程序清單,課程設計中所有涉及到的芯片資料。
(2)圖紙:硬件電路圖(Proteus軟件仿真通過)、仿真效果圖。均用彩色A3以上幅面打印。
(3)光盤:包含上述(1)、(2)的電子版。
3、多人共同完成一個題目時,只需提交上述材料一份,格式按照貴州大學課程設計相關要求裝袋,姓名填寫在一起即可。但要在設計說明書中說明每個人的主要分工情況。
三、課程設計時間安排
設計時間:2014年6月30日~7月7日。
課程設計材料提交、答辯時間:7月7日下午2:30。
課程設計材料提交、答辯地點:農機系辦公室(機械樓618)。
四、成績評定方式
設計說明書:40%。硬件電路原理圖:40%。答辯:20%。