第一篇:2012 單片機原理課程設計要求
通信0901/02單片機原理課程設計要求
(2011-2012學年第2學期)
1.綜合運用已學習過單片機原理、模擬電路和數(shù)字電路等知識,閱讀相關單片機電路芯片資料和相關文獻,了解單片機電路設計的有關知識,方法和特點,掌握基本的單片機電路設計和芯片使用方法。
2.完成51單片機最小系統(tǒng)設計與制作,并利用最小系統(tǒng)完成一個單片機的簡單應用實例,一人一題,所設計的電路必須制作成功,并且全部或者部分通過計算機仿真。傳感器部分必須寫清楚工作原理以及應用電路設計,其輸出信號可以采用電壓或者電流參數(shù)代替。
3.課程設計報告應包括有電路工作原理分析、電路元器件參數(shù)設計計算、電路調(diào)試說明、電路圖(自己畫)、元器件裝配圖(自己畫)、元器件清單等內(nèi)容,字數(shù)要求2000字以上,需要寫自己的收獲和體會。
4.所有的文檔和表格必須采用Word形式。
5.同類型的設計題可以組成一個設計組,組員之間可以開展研究與討論。雷同者均計0分。
6.獨立完成芯片英文參考資料的翻譯工作,理解資料內(nèi)容。
7.英文資料中的圖可以直接采用(pdf文檔中的圖可放大300倍后裁剪到Word文檔中),圖中的英文可以采用英文(中文)方式翻譯在圖下。
8.英文資料中的一些詞,如果翻譯拿不準,可以采用英文(中文)方式標注。
9.設計資料中的有關的公式可以直接采用。
10.設計資料中有關的曲線圖直接采用,成文時根據(jù)需要選用(pdf文檔中的圖可放大300倍后裁剪到Word文檔中)。
11.交制作的作品、文字稿和電子稿,采用Word文檔形式。
12.參考文獻
(1)黃智偉.凌陽單片機課程設計指導.北京:北京航空航天大學出版社,2007
(2)周航慈.單片機程序設計基礎.北京:北京航空航天大學出版社,1997
(3)求實科技.單片機典型模塊設計實例導航.北京:人民郵電出版社,2004
(4)余永權.89系列(MCS-51)Flash單片機原理及應用.北京:電子工業(yè)出
版社,2003
(5)王幸之.單片機應用系統(tǒng)電磁干擾與抗干擾技術.北京:北京航空航天大
學出版社,2006
(6)黃智偉.全國大學生電子設計競賽技能訓練.北京:北京航空航天大學出
版社,2007
(7)黃智偉.全國大學生電子設計競賽制作實訓.北京:北京航空航天大學出
版社,2007
(8)黃智偉.全國大學生電子設計競賽系統(tǒng)設計.北京:北京航空航天大學出
版社,2006
(9)黃智偉.全國大學生電子設計競賽電路設計.北京:北京航空航天大學出
版社,2006
(10)黃智偉.印制電路板(PCB)設計技術與實踐.北京:電子工業(yè)出版社,2009
第二篇:單片機課程設計要求
單片機課程設計要求
課程設計的題目(自選)
班級:學號:姓名:論文要求要有題目、中英文摘要、參考文獻(不少于8篇),內(nèi)容包括以下幾個方面:
一、設計簡介
對單片機系統(tǒng)的功能進行簡單介紹
二、系統(tǒng)介紹
簡單介紹系統(tǒng)的組成包括硬件電路和軟件有哪幾部分組成三、硬件電路設計
對硬件電路的各個模塊功能和工作原理的介紹,包括外圍擴展芯片功能的介紹。
四、程序設計
介紹程序的組成和功能,畫出程序流程圖,附上程序清單。采用C51或匯編語言變成均可。推薦采用C51。(把源程序發(fā)到郵箱:)
五、仿真結果
對硬件電路和軟件進行聯(lián)合仿真,并給出仿真結果和說明。
六、總結
對本課程設計進行總結。論文不少于6業(yè)
第三篇:單片機課程設計要求
1.電子表設計
要求以AT89S52單片機為核心設計一個多功電子表,具有時鐘和跑表功能。做時鐘時在LED 顯示器上顯示分、秒,做跑表時顯示范圍000.0秒~999.9秒并具有跑表啟動和跑表復位功能鍵。電子時鐘的計時范圍00分00秒59分-59秒,并在LED 顯示器上顯示;做跑表時顯示范圍000.0秒-999.9秒,當按下啟動按鈕跑表開始計時,按下停止按停止計時,當按下復位按鈕跑表回零。
2.汽車尾燈的設計
設計要求:假設汽車尾部左右兩側各有3個指示燈(用發(fā)光二極管代替),應使指示燈達到三個要求:
(1)汽車正常運行時指示燈全滅;
(2)右轉彎時,右側三個指示燈按右循環(huán)順序點亮;左轉彎時左側3個指示燈按左循環(huán)順序點亮。
(3)臨時剎車時所有指示燈同時閃爍。
3.數(shù)字溫度計設計
要求采用8051單片機和溫度傳感器DS18B20設計一種數(shù)字溫度計,測溫范圍-55到128度,測量精度為0.1攝氏度,由按鍵設定溫度報警上下限值TH和TL,采用LCD作為數(shù)字溫度計的顯示器,分兩行顯示,第一行顯示工作狀態(tài),正常時顯示”DS18B20OK”,不正常時顯示“DS18B20 ERROR”;第二行顯示實測溫度值和狀態(tài)符號,“>H”表示實測溫度大于溫度報警值TH,“ 4、帶溫度顯示功能的計時器 功能及技術指標: (1)本設計主要分為計時和溫度顯示功能兩部分,實現(xiàn)天、時、分、秒的顯示和溫度的采集并顯示功能。時間顯示時、分、秒各兩位數(shù),并能夠手動設置時間參數(shù);溫度表采集經(jīng)過A/D轉換顯示并每60秒刷新。時分秒、溫度交替顯示。 (2)技術指標:顯示計時小時、分鐘和秒數(shù)(各2位);參數(shù)可手動設置;選擇傳感器,并設計相應的信號處理電路;實現(xiàn)實時溫度顯示功能(每60秒刷新一 ?次),溫度測量范圍-20~+60C 主要器件清單: 1、51芯片一個 2、顯示管驅動芯片 3、AD590或 DS18B120溫度傳感器一個 4、顯示管 5、譯碼芯片6、8位串行模數(shù)轉換器 7、其他 若干。 5、具有語音功能的光控計數(shù)器 功能及技術指標: 實現(xiàn)數(shù)字式光電計數(shù)器的功能,對于某一空間內(nèi)(例如:酒店、圖書館)的人數(shù)統(tǒng)計,通過單片機實現(xiàn),有人進來說:(歡迎光臨),有人出去說:(謝謝惠顧),并通過按鈕來控制單片機報其總人數(shù),大概實現(xiàn)0——100人的計數(shù)。 (1)語音的清晰度。 (2)計數(shù)的準確度。 (3)紅外感應靈敏度。 主要器件清單: 1、51芯片一個 2、語音芯片:ISD17003、按鍵 4、開關:單刀雙擲 5、揚聲器 6、電壓比較器:LM3587、其他 若干。 6、基于單片機便攜式酒精含量測試的設計 功能及技術指標: 設計一個基于單片機便攜式駕駛員酒精含量測試儀,測試人體呼出氣體中酒精含量。測試儀采用氣體傳感器作為敏感單元,把氣體中含有的乙醇氣態(tài)濃度轉換成電信號,再經(jīng)AD模塊以及微處理器的處理,由LCD直觀顯示出被測氣體中的乙醇濃度,由此檢測駕駛員是否醉酒駕車。 (1)通過分析測試儀測試原理、依據(jù)以及對酒精濃度的檢測方法,擬定了酒精濃度與測試儀輸出電壓關系曲線; (2)通過分析ADC0809轉換的要求,設定放大器對酒精傳感器輸出模擬信號放大,使電壓在0到5V內(nèi),從而能夠使ADC0809正常工作; (3)對 LCD1602 液晶顯示模塊進行調(diào)試,使其能夠正確動態(tài)酒精濃度值。 主要器件清單: 1、酒精傳感器 2、運算放大器 3、A/D:08094、LCD:16025、51芯片 6、其他。 八路智能搶答器 要求:八路搶答,只有最先按鍵的一路能選中,選中的顯示紅燈。 智能時鐘 要求:顯示年月日,閏年是否,調(diào)整時間,鬧鐘功能。 聲控燈光控制器 要求:在受到聲音影響時開關開,燈打開,30秒鐘后燈自動熄滅。 7、基于單片機的數(shù)字頻率計設計 設計要求: 1、用十進制數(shù)字顯示被測信號的頻率,能測量正弦信號、方波信號、尖脈沖信號以及其他各種單位時間內(nèi)變化的物理量。 2、能測量周期性正弦方波信號.測量范圍100Hz~100kHz。測量正弦信號、方波信號,測量范圍100Hz~100kHz。 3、應用單片機為主控芯片,完成算術運算和控制功能,并采用LED數(shù)碼管顯示所測頻率。 8、定時器設計 1、使用6位數(shù)碼管顯示時,分,秒,以24小時單位制; 2、利用鍵盤輸入定時時間,定時時間一到立刻報警; 3、匯編語言編寫程序。 9、數(shù)字溫度計的設計 設計要求: 1、利用溫度傳感器測量溫度,要求測溫范圍-55~125℃,誤差±5℃以內(nèi); 2、采用單片機控制的方法,采用LED數(shù)碼管顯示溫度; 3、匯編語言編寫程序。 10、基于51單片機的直流電機PWM調(diào)速控制設計 基本要求:利用單片機生成不同寬度的PWM波形,進行直流電機的速度調(diào)節(jié)。設置四個按鍵K1,K2,K3,K4:按K1,K2進行直流電機的加速控制和減速控制(五級以上),按K3讓電機正反轉,相應的級別和正反轉用led或數(shù)碼管顯示,按K4啟停電機。 11、基于51單片機的兩相四線步進電機調(diào)速控制設計 基本要求:設置五檔以上速度,進行步進電機的速度調(diào)節(jié)。設置四個按鍵K1,K2,K3,K4:按K1,K2進行步進電機的加速控制和減速控制(五級以上),按K3讓電機正反轉,相應的級別和正反轉用led或數(shù)碼管顯示,按K4啟停電機。 12、基于51單片機的溫度測控系統(tǒng)設計 基本要求:利用溫度傳感器(如DS18B20等)采集溫度,數(shù)據(jù)經(jīng)51單片機處理后,在數(shù)碼管或字符型液晶屏1602上實時顯示出所測溫度。溫度測量范圍0~99.9攝氏度,設置上限報警溫度、下限報警溫度,即高于上限值或者低于下限值時利用蜂鳴器報警。 13、數(shù)字測溫儀的設計 本課題以單片機為核心,設計并制作出一臺數(shù)字測溫儀,具有以下功能: 1)單點溫度測試; 2)測溫范圍: 10℃~40℃; 3)分辨率:0~1℃; 4)溫度輸出顯示:2 位; 5)設定上下限(下限18℃,上限25℃),超出范圍時報警。 14、智能空調(diào)控制系統(tǒng)設計 功能要求: 1)設置自動、制冷、加熱和換氣四種模式,通過一個模式按鍵進行模式切換 2)設置2個按鍵,分別用來增加或減少溫度值的設置 3)能實現(xiàn)溫度設定,最高溫度限制為35℃,最低溫度限制為12℃,溫度調(diào)整范 圍為1℃ 4)可通過電腦進行遠程設置(串口實現(xiàn)) 15、電子跑表的設計 本課題以單片機為核心,設計出電子跑表,具有以下功能: 1)做時鐘時在6位LED 顯示器上顯示分、秒; 2)做跑表時顯示范圍10000.0秒~10999.9秒; 3)當按下啟動按鈕跑表開始計時,按下停止按鈕停止計時,當按下復位按鈕跑表回零。 16、簡易數(shù)字電壓表 基本要求: ⑴ 硬件設計:根據(jù)任務要求,完成單片機最小系統(tǒng)及其擴展設計,焊接電路板,組成功能完整的樣機。 ⑵ 軟件設計:根據(jù)電壓測量及顯示功能要求,完成相關軟件的編寫與調(diào)試; ⑶ 功能要求:2位數(shù)字及1位小數(shù)點顯示,基本測量范圍為0~5V,測量誤差為±0.2V。⑷ 設計說明書(論文):設計說明書應表明設計思想和所使用的設計方法,主要內(nèi)容包括:① 系統(tǒng)簡介、整體功能說明、各功能模塊說明(附圖)及系統(tǒng)使用說明;② 設計還需要改進的地方及設計的心得體會;③ 參考文獻:包括參考書、資料、網(wǎng)站等,按標準格式列出(可參考教材最后的參考文獻引用格式);④ 附件:系統(tǒng)總體原理圖及源程序。 擴展功能: 根據(jù)實際情況自由添加附加功能,如擴展電壓測量范圍(可擴展為0~10V,0~20V,0~100V等)、提高精度,實現(xiàn)量程的自動轉換等。每擴展一項完整的功能增加20分。 17.數(shù)字顯示溫度計 基本要求: ⑴ 硬件設計:根據(jù)任務要求,完成單片機最小系統(tǒng)及其擴展設計,焊接電路板,組成功能完整的樣機。 ⑵ 軟件設計:根據(jù)溫度測量及顯示功能要求,完成控制軟件的編寫與調(diào)試; ⑶ 功能要求:至少利用3位數(shù)碼管進行測量值的顯示,溫度測量范圍:-50℃~100℃,測量誤差≤0.1℃; ⑷ 設計說明書(論文):設計說明書應表明設計思想和所使用的設計方法,主要內(nèi)容包括: ① 系統(tǒng)簡介、整體功能說明、各功能模塊說明(附圖)及系統(tǒng)使用說明; ② 設計還需要改進的地方及設計的心得體會; ③ 參考文獻:包括參考書、資料、網(wǎng)站等,按標準格式列出(可參考教材最后的參考文獻引用格式); ④ 附件:系統(tǒng)總體原理圖及源程序。 擴展功能: 根據(jù)實際情況自由添加附加功能,如設置溫度的上下限報警功能,利用語音或聲光報警等。附加一項完整的功能增加20分。 18.數(shù)字電子鐘 基本要求: ⑴ 硬件設計:根據(jù)任務要求,完成單片機最小系統(tǒng)及其擴展設計,焊接電路板,組成功能完整的樣機。 ⑵ 系統(tǒng)軟件設計:根據(jù)數(shù)字電子鐘系統(tǒng)功能,完成控制軟件的編寫與調(diào)試; ⑶ 基本功能:設計一個數(shù)字電子鐘電路,能顯示年、月、日和時、分、秒;通過功能鍵可以完成年、月、日與時、分、秒的調(diào)整和顯示切換。 ⑷ 設計說明書(論文):設計說明書應表明設計思想和所使用的設計方法,主要內(nèi)容包括: ① 系統(tǒng)簡介、系統(tǒng)整體功能說明、各功能模塊說明(附圖)、系統(tǒng)使用說明; ② 設計還需要改進的地方及設計的心得體會; ③ 參考文獻(包括參考書、資料、網(wǎng)站等,按標準格式列出); ④ 附件:系統(tǒng)總體原理圖及源程序。 擴展功能: 根據(jù)實際情況自由添加附加功能,如萬年歷、秒表等功能。附加一項完整的功能增加20分。 19、基于單片機的音樂盒的設計 要求存儲三首歌曲,可以進行歌曲的暫停播放前進后退等功能; 20、基于單片機的電熱水器的設計 要求可以進行溫度的設定,修改,報警,對熱水器進行快速和慢速加熱。 21、基于單片機的電子密碼鎖的設計 要求具有密碼的輸入、設定、修改和報警等功能。密碼的輸入功能,當密碼輸入正確之后,鎖就打開,錯誤三次則報警。 智能電子鐘(LCD顯示) 1、設計內(nèi)容及要求...............................................................................................2 1.1、設計內(nèi)容..............................................................................................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 讀/寫數(shù)據(jù)流程圖............................................6 5、編程序................................................................................................................6 6、調(diào)試....................................................................................................................6 6.1、軟件調(diào)試.............................................................................................6 6.2、仿真調(diào)試..............................................................................................7 7、自我感想............................................................................................................7 8、參考書目............................................................................................................8 附錄:C 語言編程源程序.......................................................................................8 1.設計內(nèi)容及要求 1.1、設計內(nèi)容: 以AT89C51 單片機為核心,制作一個 LCD 顯示的智能電子鐘。1.2、設計要求: (1)計時:秒、分、時、天、周、月、年。(2)閏年自動判別。 (3)五路定時輸出,可任意關斷(最大可到16路)。(4)時間、月、日交替顯示。(5)自定任意時刻自動開/關屏 (6)計時精度:誤差≤1秒/月(具有微調(diào)設置) (7)鍵盤采用動態(tài)掃描方式查詢。所有的查詢、設置功能均由功能鍵K1、K2完成 1.3、撰寫設計報告 單片機課程設計是以課題或項目設計方式開展的一門課程,具有較強的綜合性、實踐性,是工科、工程類院?;蚵殬I(yè)類院校電類專業(yè)在校生的必修課,是將單片機原理與應用課程的理論知識轉變?yōu)閼眉夹g的重要教學環(huán)節(jié)。這一環(huán)節(jié)不但能加深對單片機原理的理解,而且還能培養(yǎng)學生的實踐動手能力,開發(fā)學生的分析、解決問題的能力。單片機課程設計環(huán)節(jié)的訓練能夠讓學生知道單片機工程項目的制作過程,使學生盡早了解單片機系統(tǒng)的開發(fā)過程。 2.總體方案設計 2.1、方案圖 2.2、面板布置圖 2.3、方案討論 方案一:采用實時時鐘芯片 實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點計時功能,計時數(shù)據(jù)的更新每秒自動進行一次,不需程序干預。計算機可通過中斷或查詢方式讀取計時數(shù)據(jù)進行顯示,因此計時功能的實現(xiàn)無需占用 CPU 的時間,程序簡單。此外,實時時鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計時功能;具有可編程方波輸出功能,可用做實時測控系統(tǒng)的采樣信號等;有的實時時鐘芯片內(nèi)部還帶有非易失性 RAM,可用來存放需長期保存但有時也需變更的數(shù)據(jù),由于功能完善,精度高,軟件程序設計相對簡單,且計時不占用 CPU 時間,因此,在工業(yè)實時測控系統(tǒng)中多采用這一類專用芯片來實現(xiàn)實時時鐘功能。 方案二:軟件控制 利用單片機內(nèi)部的定時/計數(shù)器進行中斷定時,配合軟件延時實現(xiàn)時、分、秒的計時及秒表計時。該方案節(jié)省硬件成本,且能使設計者對單片機的指令系統(tǒng)能有更深入的了解,從而掌握單片機應用技術 MCS-51 匯編語言程序設計方法,因此,本系統(tǒng)設計采用此種軟件控制方法來實現(xiàn)計時。而由于 Atmel 公司 的AT89C51 是一種自帶 4KB Flash 存儲器的低電壓、高性能的 CMOS 8 位微處理器。該器件采用 Atmel 高密度非易失存儲器制造技術制造,與工業(yè)標準 的MCS-51 指令集和輸出引腳相兼容。AT89C51 將多功能 8 位 CPU 和閃存集成在單個芯片中,是一種高效的微控制器,使用也更方便,壽命更長,可以反復擦除 1000 次。形成了功能強大、使用靈活和具有較高性能價格比的微控制器。它的功能強大而且也比較容易購買,故本設計中所選的單片機為 AT89C51 單片機。2.4、明晰任務 采用 AT89C51 單片機作為系統(tǒng)的控制核心。時鐘數(shù)據(jù)通過市場上流行的時鐘芯片 DS1302 來獲取。DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片,內(nèi)含一個實時時鐘/日歷和 31 字節(jié)靜態(tài) RAM,可以通過串行接口與計算機進行通信,使得管腳數(shù)量減少。實時時鐘/日歷電路能夠計算 2100 年之前的秒、分、時、日、星期、月、年的,具有閏年自動判斷調(diào)整的能力。定時電路能夠實現(xiàn)自定任意時刻自動開/關屏,采用 LCD LM016L 顯示年、月、周、天、時、分、秒。通過按鍵開關實現(xiàn)微調(diào),確保計時精度:誤差≤1 秒/月。DS1302 時鐘芯片的主要功能特性: (1)能計算 2100 年之前的年、月、日、星期、時、分、秒的信息;每月的天數(shù) 和閏年的天數(shù)可自動調(diào)整;時鐘可設置為 24 或 12 小時格式。(2)31B 的 8 位暫存數(shù)據(jù)存儲 RAM。(3)串行 I/O 口方式使得引腳數(shù)量最少。 (4)DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需 3 根線。 (5)寬范圍工作電壓 2.0-5.5V。 (6)工作電流為 2.0A 時,小于 300nA。 (7)功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于 1mW。 3.電路原理圖 4.程序框圖 4.1、顯示子程序流程圖 4.2、實時時鐘芯片 1302 讀/寫數(shù)據(jù)流程圖 5.編程序 源程序見附錄部分 6.調(diào)試 6.1、軟件調(diào)試 目前設計過程中容易造成元件和儀器儀表的損壞,而借助 Keil 和 Proteus進行單片機系統(tǒng)的開發(fā),可以節(jié)省設計成本,提高設計速度。Keil 軟件包是一個功能強大的開發(fā)平臺,它包括項目管理器、CX51 編譯器、AX51 宏匯編器、BL51/LX51 連接定位器、RTX51 實時操作系統(tǒng)、Simulator 軟件模擬器及 Monitor51 硬件目標調(diào)試器。它是一種集成化程度高的文件管理編譯環(huán)境,主要功能為編譯 C 語言源程序,匯編程序或混合語言源程序,連接和定位目標文件和庫,創(chuàng)建 HEX 文件,調(diào)試目標程序等。Keil 是目前最好的 51 單片機開 發(fā)工具之一。Keil 支持軟件模擬仿真(Simulator)和用戶目標調(diào)試(Monitor51)兩種工作模式。前者不需要任何單片機硬件即可完成用戶程序仿真、調(diào)試,后者利用硬件目標板中的監(jiān)控程序可以直接調(diào)試目標硬件系統(tǒng)。Proteus 是一個完整的嵌入式系統(tǒng)軟件、硬件設計仿真平臺,它包括原理圖輸入系統(tǒng) ISIS、帶擴展的 Prospice 混合模型仿真器、動態(tài)元件庫、高級圖形分析模塊和處理器虛擬系統(tǒng)仿真模型 VSM。ISIS 是 Proteus 系統(tǒng)的中心,具有超強的控制原理設計環(huán)境。ProteusVSM 最重要的特點是能把微處理器軟件作用在處理器上,并和該處理器的任何模擬和數(shù)字元件協(xié)同仿真,仿真執(zhí)行目標碼就像在真正的單片機系統(tǒng)上運行一樣,VSM CPU 模型能完整仿真 I/O 接口、中斷、定時器、通用外部設備口及其他與 CPU 有關的外部設備,甚至能仿真多個處理器。6.2、仿真調(diào)試 Proteus 仿真 7.自我感想 經(jīng)歷過這么多天不間斷的課程設計,我們有挺多感觸的,從最基本上說我們看到了,也意識到了自己的不足,對于不斷克服的各種阻礙也讓我們體會到了課程設計的意義所在。對于只接觸課本只動筆桿的我們,面臨實際的設計尺寸,讓我們很是尷尬,都說理論聯(lián)系實際,真正到聯(lián)系的時候才發(fā)現(xiàn)挺困難的,不過正是理論知識的各種補充才讓我們能最終完成任務,然后深深地體會到理論對現(xiàn)實的指導作用。我們現(xiàn)在最缺乏的就是實際工作經(jīng)驗,而理論聯(lián)系實踐并不像我們想象的那么簡單,他需要堅實的理論基礎和實際工作經(jīng)驗。堅實的理論基礎決定了我必須堅持學習新的知識新的理論,完善了自己的知識結構,才能在以后的實際中輕松面對,才能設計出更好的更有益于人們生活與工作的機械,才能跟上時代的步伐,不被淘汰。在這個一邊忙著復習忙著考試又要準備課程設計的日子里,真真正正的體會到了時間的寶貴,有點像高中忙忙碌碌的生活,不過能按時完成課程設計對我們來說也是一個莫大的安慰。嚴謹和細心是做機械設計的必要態(tài)度,要想做好一件事,就必須一絲不茍、態(tài)度認真。俗話說:“失之毫厘,謬之千里?!痹跈C械設計上尤其應該注意。在以后的工作中,你的很小的一個疏忽將會造成一個公司很大的損失,甚至給用戶帶去生命危險,而自己也會為自己的不負責任行為付出代價。再者就是設計中要嚴謹和細心,對于機械是不能出差錯的,任何的微小誤差都可能產(chǎn)生不可預計的后果,當然對于我們來說就是設計中要走一些彎路,而且在這個嚴重缺少時間又惦記回家問題的我們來說也是一個很嚴重的后果。不過,困難雖是難免的,但我們有信心就能并且已經(jīng)戰(zhàn)勝了困難,完成了這個無比揪心的課程設計。因為時間等各種關系設計中難免有些不足還請老師助教給予批評和幫助。 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 一個字節(jié) { 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 一個字節(jié) { 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 一個字節(jié) { 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 數(shù)據(jù) { RST=0;SCLK=0;RST=1;write(add);write(dat);SCLK=1;RST=0;} //----------uchar read_1302(uchar add)// 讀 DS1302 數(shù)據(jù) { 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 定時器優(yōu)先級最高 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);//讀年數(shù)據(jù) 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;//后面尾數(shù)歸 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;//退出時開定時器 } } //---------- 《單片機原理與應用》課程設計要求 一、目的: 本課程設計是《單片機原理與應用》課程的綜合、設計性實驗,作為課堂教學和課內(nèi)正常實驗的補充和提高。通過對《單片機原理與應用》課程的學習,學生已初步掌握51單片機的基本原理,以及并行口、串行口、中斷、定時等基本原理及應用,課內(nèi)實驗主要以實驗指導書為參考,難以充分發(fā)揮學生自主設計動手能力。通過《單片機原理與應用》課程設計,加強學生自主學習,鞏固學習成果,提高學生綜合應用單片機技術的實踐能力和創(chuàng)造思維。為后續(xù)相關專業(yè)課程學習打好基礎,培養(yǎng)學生專業(yè)知識的綜合應用能力,與就業(yè)需求相接軌。 二、實驗安排: ? 課程設計內(nèi)容和要求的安排與講解在課程設計之初進行。? 上機機時安排:共32個課內(nèi)機時,不足部分自行安排。 三、課程設計說明: ? 本次課程設計平臺使用課程單片機開發(fā)實驗箱(或學生自購單片機開發(fā)板)+實驗室PC.,對于有特殊要求的學生,可以自行購買元件,焊接電路板,達到實驗要求。 ? 課程設計結束后,每個小組提交課程設計成果如下: ? 系統(tǒng)完成后,要求演示效果,演示時采用答辯形式,由各小組同學邊演示邊講解思路。 ? 課程設計報告一份,報告中可不包括源代碼(程序代碼刻錄光盤)。 四、成績評分內(nèi)容 ? 課設考勤情況 ? 系統(tǒng)運行效果 ? 系統(tǒng)講解和問題回答情況 ? 設計報告完成情況。 五、參考題目 以下題目根據(jù)難度,分為ABC三個等級。請自行選擇。A級滿分為100分。B級滿分為90分。C級滿分為80分。1.交通燈(C)要求利用實驗箱上的LED燈模擬十字路口交通燈 (1)東西方向顯示綠燈時,南北方向顯示紅燈,持續(xù)10秒鐘后,綠燈變?yōu)辄S燈并持續(xù)3秒鐘; (2)然后東西方向顯示紅燈,南北方向顯示綠燈,持續(xù)10秒鐘后,綠燈變黃燈并持續(xù)3秒鐘,如此反復。2.電子顯示屏(B) 要求用一個按鍵控制實驗箱上的點陣模塊。按下按鍵后,在顯示屏上輪流顯示“文華學院”字樣;再次按鍵后,顯示屏上無任何顯示。3.電子數(shù)字鐘(A) 要求利用實驗箱上的數(shù)碼管模擬電子數(shù)字鐘。顯示時、分、秒,并且隨時間跳變。在整點時,啟動蜂鳴器。4.模擬量采集系統(tǒng)(A)要求利用實驗箱上的傳感器采集模擬量。(1)利用溫度傳感器采集溫度,進行AD轉換。(2)將采集到的溫度顯示在數(shù)碼管上。5.雙機串行通信(C)要求采用串行通信方式1,波特率為600,甲單片機交替發(fā)送55H, CCH,乙單片機接收,并將接收到的數(shù)據(jù)顯示在數(shù)碼管上。6.矩陣鍵盤(C)要求利用實驗箱上的矩陣鍵盤輸入1-8的任意字符,在數(shù)碼管上依次顯示出來。7.搶答器(B)要求制作一個4人搶答器。無人搶答時,4個燈跑馬循環(huán),誰先按下,相對應的燈亮起,同時蜂鳴器發(fā)聲。8.波形發(fā)生器(B)要求產(chǎn)生方波、鋸齒波、三角波、正弦波信號。(1)不同的波形用不同的符號顯示在一個數(shù)碼管上。(2)用4個數(shù)碼管顯示幅值。 9.音樂盒(A)要求按下實驗箱上的鍵盤,利用蜂鳴器產(chǎn)生1-i各種音階,演奏出不同的音樂。10.液晶屏顯示(A) 要求控制LCD液晶屏,在屏幕上顯示文字。并且操作按鍵時,屏幕上顯示按鍵的編號。11.紅外遙控設計(A)要求利用紅外遙控,向單片機傳輸信號。當遙控按下具體數(shù)字時,單片機將數(shù)字顯示在數(shù)碼管上。12.學生自主設計(A) 學生自己提出設計思路,經(jīng)老師認可后,開始進行設計,并達到預期目標。 《單片機課程設計》報告 題目: 專業(yè)年級: 學號: 姓名: 指導教師: 同組設計者: 年 月 日 《課程設計報告》主要內(nèi)容 [設計題目] [設計要求] 描述選題目內(nèi)容,簡述要求完成的功能 [開發(fā)工具] 包括硬件和軟件環(huán)境 [硬件設計] 1.電路原理圖 2.電路設計說明 [軟件設計] 1.軟件設計流程 2.重要程序代碼 [系統(tǒng)調(diào)試] 說明上機調(diào)試時碰到的問題及解決方法。[心得及體會] 此部分說明通過本次課程設計所得的收獲及體會。[參考文獻](至少3篇)第四篇:單片機原理及應用課程設計
第五篇:單片機課程設計要求及參考題目