版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 《PIC單片機》</b></p><p><b> 課程設計</b></p><p> 二○一四年十二月二十七日</p><p><b> 目 錄</b></p><p> 1、課程設計目的………………………………………………………1
2、</p><p> 2、課程設計題目描述和要求…………………………………………1</p><p> 3、課程設計報告內(nèi)容…………………………………………………1</p><p> 4、結(jié)論…………………………………………………………………9</p><p> 5、參考目錄……………………………………………………………10</p&
3、gt;<p><b> 1.課程設計目的</b></p><p> 1、《PIC單片機課程設計》是電氣工程與自動化專業(yè)一門重要的專業(yè)實踐課,通過課程設計能夠進一步熟悉PIC單片機原理與應用,鞏固并提高對這學期PIC單片機知識的學習和應用;</p><p> 2、熟悉對PIC16F887各個模塊的編程與調(diào)試,最后綜合各個模塊,最后綜合各個模塊達到提高
4、綜合實踐水平的能力;</p><p> 3、掌握實驗板上的操作和運用,學會使用PICKIT3下載器進行現(xiàn)場的實物的調(diào)試;</p><p> 2.課程設計題目描述和要求</p><p> 1、利用 DS1307 時鐘芯片,LCD液晶顯示屏,TC74 溫度傳感器,蜂鳴器,按鍵做一個實時時鐘,將時間和溫度實時的顯示在液晶上。編寫相應的程序,最終可以在仿真軟件上正常運
5、行,可以在單片機開發(fā)板實物上也正常的運行,并且能脫機運行。</p><p> 2、在時鐘和溫度實時顯示的過程中,允許外部的按鍵中斷,通過按鍵可以對時間進行修改,也可以設定鬧鐘時間,實現(xiàn)鬧鐘報警。</p><p> 3、設計出硬件電路圖,設計出軟件編程方法,寫出源代碼,用PROTEUS進仿真在軟件仿真可行后,下載到實驗板上進行演示。</p><p> 3.課程設
6、計報告內(nèi)容</p><p> 運用PIC16F887芯片、DS1307時鐘芯片和TC74溫度傳感器,用C語言編程,通過ICD2燒寫進芯片,在LCD液晶顯示屏上實現(xiàn)時間顯示、運行的功能和溫度顯示功能。液晶顯示屏顯示著年、月、日、時、分、秒、星期。數(shù)字鐘有調(diào)整時間的功能,通過對按鍵的操作可以對時間進行調(diào)整以及設定鬧鐘。</p><p><b> 3.1系統(tǒng)功能說明</b&g
7、t;</p><p> 顯示屏分兩行顯示,第一行顯示日期:年/月/日、星期,第二行顯示格式為時間(時:分:秒)、溫度。顯示秒由00一直加到59,分鐘由00加到59,小時采用24小時制,由00加到23,星期由1一直加到7,日由01一直加到31(或30、29、28),月由01一直加到12,年由2000一直加到2099,溫度為℃。</p><p> 按鍵操作時,按鍵RB0按下選擇要修改的部分
8、;按鍵RB1按下時,數(shù)字加;按鍵RB2按下時,數(shù)字減;按鍵RB3可以進入鬧鐘設定模式。</p><p><b> 3.2設計步驟</b></p><p> 1、按照題目要求設計仿真圖;</p><p> 2、對數(shù)字鐘各個模塊進行編程;</p><p> 3、將程序?qū)懭胄酒?,用仿真圖仿真;</p>&
9、lt;p> 4、若仿真圖可實現(xiàn),則把程序下載到實驗板上運行;</p><p> 5、根據(jù)實驗板情況進行調(diào)試。</p><p> 3.3 硬件電路的設計</p><p> 3.3.1 總電路圖</p><p> 根據(jù)所要實現(xiàn)的預期功能,硬件必須要有最小系統(tǒng)模塊、LCD顯示模塊、時鐘模塊、鬧鈴模塊、溫度模塊、按鍵模塊等。根據(jù)所提供
10、的實驗板資料,可以設計如下電路(proteus圖):</p><p> 3.3.2 單片機最小系統(tǒng)模塊</p><p> 本次課程設計的最小系統(tǒng)包括16F887單片機、復位模塊、4M外部晶振等部件組成如上最基本電路,其中芯片供電的引腳略去。本課設板所用的單片機為PIC16F887,是877A 的升級,其主要參數(shù)與887A類似,但使用更為靈活、有的參數(shù)更為細化(如異步通信的波特率為雙字節(jié)
11、),而價格比887A更低,887引腳與877A兼容。</p><p> 3.3.3 時鐘和溫度模塊的設計</p><p> DS1307芯片通過SCL連接RC3,SDA連接RC4,跟887進行通信。通信過程中,先判斷時鐘芯片是否工作,若“秒”的最高位“CH”為1,說明時鐘還未運行,則通過寫程序,對時鐘芯片賦初值同時使“秒”的最高位“CH”為0。時鐘芯片DS1307工作后,在引腳7發(fā)出1
12、Hz脈沖,引腳7連接一個LED燈。脈沖的輸出,會使LED燈一亮一滅,可通過LED燈的亮暗可判斷時鐘芯片DS1307是否運行。</p><p> 時鐘芯片 DS1307:</p><p> DS1307 是實時時鐘芯片,它提供秒、分、時、日、月、年和星期等數(shù)據(jù)。通常時鐘芯片是要接備用電池,當主電源掉電時,備用電源為DS1307 提供維持電源此電源只供DS1307 使用,此時時鐘仍正常運行
13、,時鐘晶振是典型的32.768kHz。</p><p><b> 溫度模塊:</b></p><p> TC74也是IIC器件,它一出廠就配有一個固定的地址,單片機通過尋址來實現(xiàn)對不同IIC器件的訪問和操作。單片機只要有一個IIC接口,就可以實現(xiàn)對外圍不同地址的IIC器件進行操作。TC74溫度范圍為-40℃~+125℃, 在+25℃~+85℃范圍的精度為±
14、;2℃(最大值),在0℃~+25℃ 的范圍精度為±3℃(最大值)。TC74的默認的7位地址為0b1001101。TC74的讀溫度命令是0b00000000,在溫度數(shù)據(jù)寄存器中,每單位值代表1℃ ,數(shù)據(jù)用二進制補碼格式。</p><p> 3.3.4 LCD液晶顯示模塊</p><p> 本課設所使用的字符型LCD型號為YB1602,1602型LCD顯示模塊具有體積小,功耗低,
15、顯示內(nèi)容豐富等特點,采用4位接線法,RD口的低四位和LCD的高4位連接,RD4、RD5、RD6用于讀寫和使能控制.上電后要延時15ms 后,才能進行初始。</p><p> 3.3.5 鬧鐘模塊的設計</p><p> 通過設定鬧鐘時間將鬧鐘時間存儲在CCCC[]數(shù)組中,當時鐘時間與鬧鐘時間相等時啟動蜂鳴器,蜂鳴器發(fā)出聲響。</p><p> 3.3.6 按鍵
16、模塊</p><p> 按鍵采用普通按鍵,按鍵另一端接B口,由于B口可通過程序編寫為弱上拉,所以仿真圖中按鍵不需畫出上拉電阻。RB0代表時間設置,RB1代表加,RB2代表減,RB3代表鬧鐘設置。</p><p> 3.4軟件編程的設計及其說明</p><p> 3.4.1 軟件設計執(zhí)行的總體流程</p><p><b> 程
17、序流程圖:</b></p><p><b> 程序流程圖</b></p><p><b> 否</b></p><p><b> 是</b></p><p><b> 是</b></p><p><b>
18、; 否</b></p><p><b> 是</b></p><p><b> 否</b></p><p> 是 是</p><p> 否
19、 否</p><p> 3.4.2 溫度傳感器 TC74 程序操作</p><p> //溫度傳感器模塊宏定義</p><p> #define TC74_ADD 0b1001000 //TC74的7位地址</p><p> #define RTR 0b00000000 //TC74的讀溫
20、度命令</p><p> signed char READ_T(void)</p><p><b> { </b></p><p> signed char R2;</p><p> SEN=1; //開始條件</p><p> wh
21、ile (SEN==1); //檢測開始條件是否完成?</p><p> IIC_SEND(TC74_ADD<<1); //送TC74地址(寫)</p><p> IIC_SEND(RTR); //寫RTR命令(寫)</p><p> RSEN=1;
22、 //重新開始條件</p><p> while (RSEN==1); //等待重新開始條件結(jié)束</p><p> IIC_SEND((TC74_ADD<<1)+1); //發(fā)送TC74地址(讀)</p><p> RCEN=1;
23、 //接收使能</p><p> while (RCEN==1); //等待接收完成</p><p> R2=SSPBUF; //接收數(shù)據(jù)存入R2</p><p> PEN=1; //停止位</p><p> wh
24、ile(PEN==0);</p><p> return(R2);</p><p><b> }</b></p><p> TC74的讀溫度的步驟如下:</p><p><b> 1) 發(fā)送啟始位;</b></p><p> 2) 發(fā)送TC74的7位地址+0(寫);
25、</p><p> 3) 發(fā)送TC74的寫命令(RTR);</p><p> 4) 重新開始條件;</p><p> 5) 發(fā)送TC74的7位地址+1(讀);</p><p> 6) 接收使能,接收TC74的溫度;</p><p> 7) 發(fā)送停止條件;</p><p> 3.4.3
26、 鬧鐘模塊的程序操作</p><p> #define FMQ RC1</p><p> //=====蜂鳴器的初始化</p><p> void SPEAKER_CSH(void)</p><p><b> {</b></p><p><b> TRISC1=0;</b
27、></p><p><b> FMQ=0;</b></p><p><b> }</b></p><p> if((CCCC[2]==AAAA[2])&&(CCCC[1]==AAAA[1])&&(c==2)) </p><p> { FMQ=1; }
28、 //當設定的時間到時,蜂鳴器響</p><p><b> else</b></p><p> { FMQ=0; } </p><p> 3.4.4時鐘芯片 DS1307 的程序操作</p><p> //========對DS1307進行初始化</p>&
29、lt;p> void DS1307_CSH() </p><p><b> {</b></p><p> READ_DS1307(0,1);; //讀秒寄存器</p><p> WRITE_DS1307(0x07,0x10); //SOUT輸出1HZ的方波頻率</
30、p><p> if((AAAA[0]&0x80)==0x80) //判斷位秒寄存器最高位是否為1</p><p> { LCD_WRITE(0b00000001,COM); //清屏</p><p> WRITE_DS1307(0x07,0x10);//寫控制字到LCD</p><p>
31、WRITE_DS1307(0x00,0x00);//00秒</p><p> WRITE_DS1307(0x01,0x00);//00分</p><p> WRITE_DS1307(0x02,0x08); //08時</p><p> WRITE_DS1307(0x03,0x06);//星期6</p><
32、p> WRITE_DS1307(0x04,0x01);//01日</p><p> WRITE_DS1307(0x05,0x11);//11月</p><p> WRITE_DS1307(0x06,0x14);//14年}</p><p><b> 3.5 設計成果</b></p><p> LCD
33、顯示屏第一行前面的字符顯示顯示日期,第一行后面的字符顯示星期幾;第二行前面的字符顯示時間,后面的字符當前溫度值。當按下RB3按鍵時,屏幕靜止進入鬧鐘設定模式,通過設定時間可實現(xiàn)鬧鐘提醒功能。</p><p><b> 目標達成情況:</b></p><p> 1、單片機液晶顯示屏可以實時的顯示時間和溫度(達到);</p><p> 2、當
34、時間達到某個鬧鐘設定值時蜂鳴器響(達到);</p><p> 3、能夠?qū)崿F(xiàn)脫機運行(達到);</p><p> 4、可區(qū)分閏年、閏月(達到);</p><p><b> 4.結(jié)論</b></p><p> 4.1 調(diào)試問題分析</p><p> 用PIC16F887實驗板,通過PIC3連
35、接,進行在線調(diào)試和脫機運行,出現(xiàn)了一些問題,經(jīng)過獨立思考以及和老師同學的交流后得以解決。</p><p> 問題一:不能掉電保護,每次脫機或者復位都會進行時鐘初始化;</p><p> 解決辦法:DS1307初始化前用(AAAA[0]&0x80)==0x80先進行判斷秒的最高位是否為1,為1則進行初始化;</p><p> 問題二:閏年、閏月識別錯誤;
36、</p><p> 解決辦法:用數(shù)組DDDD[]先儲存閏年年份,當時鐘時間AAAA[]=DDDD[]時為閏年;</p><p> 4.2 實驗所得和體會</p><p> 這次的數(shù)字鐘是我第一次完成的課程設計,讓我懂得了實踐是驗證理論的最好途徑。通過該課程設計,進一步掌握了PIC單片機的應用,熟練PIC單片機的C程序的編寫與調(diào)試,讓我對于理論課上一些疑惑的地方
37、豁然開朗,加深了對于理論課程的理解。整個課程設計下來,認識了LCD 液晶顯示、TC74溫度、實時時鐘顯示等模塊的應用,懂得了對時鐘芯片、溫度傳感器的操作方法及原理,懂得了對相應模塊的簡單編程。實物仿真時,學會了怎么使用PICKIT3下載器進行程序的燒寫,更懂得了遇到問題是要耐心查找錯誤,先自己獨立思考解決,如果自己不能解決要積極與同學討論、向老師請教。</p><p> 數(shù)字鐘的成功設計也激發(fā)了我對單片機的濃厚
38、興趣,積累了一定的設計經(jīng)驗。讓我感受到了單片機的偉大之處,可以依據(jù)人的思維進行各種運算和工作,學好單片機對我們以后的工作以及日常應用都有很大的作用。</p><p> 這次的課程設計接近尾聲,感謝**老師的耐心指導,讓我的第一次課程設計得以成功完成,讓我知道如何發(fā)現(xiàn)問題和解決問題,為我以后更多的實踐乃至工作奠定了良好基礎。</p><p><b> 五:參考書目:</b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于pic16f887單片機的數(shù)字鐘課程設計報告
- 基于pic16f887單片機的數(shù)字鐘課程設計報告(福州大學)
- 基于pic16f887單片機的數(shù)字音樂盒
- 基于16f887單片機數(shù)字鐘課設設計報告
- 基于單片機的數(shù)字鐘課程設計
- 單片機數(shù)字鐘課程設計
- 單片機課程設計--基于單片機數(shù)字鐘的設計
- 單片機數(shù)字鐘課程設計
- 基于單片機的數(shù)字鐘課程設計
- 單片機課程設計---數(shù)字鐘設計
- 單片機課程設計--- 簡易數(shù)字鐘
- 單片機課程設計數(shù)字鐘
- 課程設計---基于單片機的數(shù)字鐘的設計
- 簡易數(shù)字鐘的單片機課程設計
- 單片機課程設計--數(shù)字鐘電子鐘
- 課程設計--單片機控制的數(shù)字鐘
- 單片機課程設計報告-數(shù)字鐘的設計
- 單片機課程設計數(shù)字鐘報告
- 簡易數(shù)字鐘的單片機課程設計1
- 單片機課程設計--智能電子數(shù)字鐘設計
評論
0/150
提交評論