版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 《PIC單片機》</b></p><p><b> 課程設(shè)計</b></p><p> 二○一四年十二月二十七日</p><p><b> 目 錄</b></p><p> 1、課程設(shè)計目的………………………………………………………1
2、</p><p> 2、課程設(shè)計題目描述和要求…………………………………………1</p><p> 3、課程設(shè)計報告內(nèi)容…………………………………………………1</p><p> 4、結(jié)論…………………………………………………………………9</p><p> 5、參考目錄……………………………………………………………10</p&
3、gt;<p><b> 1.課程設(shè)計目的</b></p><p> 1、《PIC單片機課程設(shè)計》是電氣工程與自動化專業(yè)一門重要的專業(yè)實踐課,通過課程設(shè)計能夠進一步熟悉PIC單片機原理與應(yīng)用,鞏固并提高對這學(xué)期PIC單片機知識的學(xué)習和應(yīng)用;</p><p> 2、熟悉對PIC16F887各個模塊的編程與調(diào)試,最后綜合各個模塊,最后綜合各個模塊達到提高
4、綜合實踐水平的能力;</p><p> 3、掌握實驗板上的操作和運用,學(xué)會使用PICKIT3下載器進行現(xiàn)場的實物的調(diào)試;</p><p> 2.課程設(shè)計題目描述和要求</p><p> 1、利用 DS1307 時鐘芯片,LCD液晶顯示屏,TC74 溫度傳感器,蜂鳴器,按鍵做一個實時時鐘,將時間和溫度實時的顯示在液晶上。編寫相應(yīng)的程序,最終可以在仿真軟件上正常運
5、行,可以在單片機開發(fā)板實物上也正常的運行,并且能脫機運行。</p><p> 2、在時鐘和溫度實時顯示的過程中,允許外部的按鍵中斷,通過按鍵可以對時間進行修改,也可以設(shè)定鬧鐘時間,實現(xiàn)鬧鐘報警。</p><p> 3、設(shè)計出硬件電路圖,設(shè)計出軟件編程方法,寫出源代碼,用PROTEUS進仿真在軟件仿真可行后,下載到實驗板上進行演示。</p><p> 3.課程設(shè)
6、計報告內(nèi)容</p><p> 運用PIC16F887芯片、DS1307時鐘芯片和TC74溫度傳感器,用C語言編程,通過ICD2燒寫進芯片,在LCD液晶顯示屏上實現(xiàn)時間顯示、運行的功能和溫度顯示功能。液晶顯示屏顯示著年、月、日、時、分、秒、星期。數(shù)字鐘有調(diào)整時間的功能,通過對按鍵的操作可以對時間進行調(diào)整以及設(shè)定鬧鐘。</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可以進入鬧鐘設(shè)定模式。</p><p><b> 3.2設(shè)計步驟</b></p><p> 1、按照題目要求設(shè)計仿真圖;</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 硬件電路的設(shè)計</p><p> 3.3.1 總電路圖</p><p> 根據(jù)所要實現(xiàn)的預(yù)期功能,硬件必須要有最小系統(tǒng)模塊、LCD顯示模塊、時鐘模塊、鬧鈴模塊、溫度模塊、按鍵模塊等。根據(jù)所提供
10、的實驗板資料,可以設(shè)計如下電路(proteus圖):</p><p> 3.3.2 單片機最小系統(tǒng)模塊</p><p> 本次課程設(shè)計的最小系統(tǒng)包括16F887單片機、復(fù)位模塊、4M外部晶振等部件組成如上最基本電路,其中芯片供電的引腳略去。本課設(shè)板所用的單片機為PIC16F887,是877A 的升級,其主要參數(shù)與887A類似,但使用更為靈活、有的參數(shù)更為細化(如異步通信的波特率為雙字節(jié)
11、),而價格比887A更低,887引腳與877A兼容。</p><p> 3.3.3 時鐘和溫度模塊的設(shè)計</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> 本課設(shè)所使用的字符型LCD型號為YB1602,1602型LCD顯示模塊具有體積小,功耗低,
15、顯示內(nèi)容豐富等特點,采用4位接線法,RD口的低四位和LCD的高4位連接,RD4、RD5、RD6用于讀寫和使能控制.上電后要延時15ms 后,才能進行初始。</p><p> 3.3.5 鬧鐘模塊的設(shè)計</p><p> 通過設(shè)定鬧鐘時間將鬧鐘時間存儲在CCCC[]數(shù)組中,當時鐘時間與鬧鐘時間相等時啟動蜂鳴器,蜂鳴器發(fā)出聲響。</p><p> 3.3.6 按鍵
16、模塊</p><p> 按鍵采用普通按鍵,按鍵另一端接B口,由于B口可通過程序編寫為弱上拉,所以仿真圖中按鍵不需畫出上拉電阻。RB0代表時間設(shè)置,RB1代表加,RB2代表減,RB3代表鬧鐘設(shè)置。</p><p> 3.4軟件編程的設(shè)計及其說明</p><p> 3.4.1 軟件設(shè)計執(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、 //當設(shè)定的時間到時,蜂鳴器響</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 設(shè)計成果</b></p><p> LCD
33、顯示屏第一行前面的字符顯示顯示日期,第一行后面的字符顯示星期幾;第二行前面的字符顯示時間,后面的字符當前溫度值。當按下RB3按鍵時,屏幕靜止進入鬧鐘設(shè)定模式,通過設(shè)定時間可實現(xiàn)鬧鐘提醒功能。</p><p><b> 目標達成情況:</b></p><p> 1、單片機液晶顯示屏可以實時的顯示時間和溫度(達到);</p><p> 2、當
34、時間達到某個鬧鐘設(shè)定值時蜂鳴器響(達到);</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)過獨立思考以及和老師同學(xué)的交流后得以解決。</p><p> 問題一:不能掉電保護,每次脫機或者復(fù)位都會進行時鐘初始化;</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ù)字鐘是我第一次完成的課程設(shè)計,讓我懂得了實踐是驗證理論的最好途徑。通過該課程設(shè)計,進一步掌握了PIC單片機的應(yīng)用,熟練PIC單片機的C程序的編寫與調(diào)試,讓我對于理論課上一些疑惑的地方
37、豁然開朗,加深了對于理論課程的理解。整個課程設(shè)計下來,認識了LCD 液晶顯示、TC74溫度、實時時鐘顯示等模塊的應(yīng)用,懂得了對時鐘芯片、溫度傳感器的操作方法及原理,懂得了對相應(yīng)模塊的簡單編程。實物仿真時,學(xué)會了怎么使用PICKIT3下載器進行程序的燒寫,更懂得了遇到問題是要耐心查找錯誤,先自己獨立思考解決,如果自己不能解決要積極與同學(xué)討論、向老師請教。</p><p> 數(shù)字鐘的成功設(shè)計也激發(fā)了我對單片機的濃厚
38、興趣,積累了一定的設(shè)計經(jīng)驗。讓我感受到了單片機的偉大之處,可以依據(jù)人的思維進行各種運算和工作,學(xué)好單片機對我們以后的工作以及日常應(yīng)用都有很大的作用。</p><p> 這次的課程設(shè)計接近尾聲,感謝**老師的耐心指導(dǎo),讓我的第一次課程設(shè)計得以成功完成,讓我知道如何發(fā)現(xiàn)問題和解決問題,為我以后更多的實踐乃至工作奠定了良好基礎(chǔ)。</p><p><b> 五:參考書目:</b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于pic16f887單片機的數(shù)字鐘課程設(shè)計報告
- 基于pic16f887單片機的數(shù)字鐘課程設(shè)計報告(福州大學(xué))
- 基于pic16f887單片機的數(shù)字音樂盒
- 基于16f887單片機數(shù)字鐘課設(shè)設(shè)計報告
- 基于單片機的數(shù)字鐘課程設(shè)計
- 單片機數(shù)字鐘課程設(shè)計
- 單片機課程設(shè)計--基于單片機數(shù)字鐘的設(shè)計
- 單片機數(shù)字鐘課程設(shè)計
- 基于單片機的數(shù)字鐘課程設(shè)計
- 單片機課程設(shè)計---數(shù)字鐘設(shè)計
- 單片機課程設(shè)計--- 簡易數(shù)字鐘
- 單片機課程設(shè)計數(shù)字鐘
- 課程設(shè)計---基于單片機的數(shù)字鐘的設(shè)計
- 簡易數(shù)字鐘的單片機課程設(shè)計
- 單片機課程設(shè)計--數(shù)字鐘電子鐘
- 課程設(shè)計--單片機控制的數(shù)字鐘
- 單片機課程設(shè)計報告-數(shù)字鐘的設(shè)計
- 單片機課程設(shè)計數(shù)字鐘報告
- 簡易數(shù)字鐘的單片機課程設(shè)計1
- 單片機課程設(shè)計--智能電子數(shù)字鐘設(shè)計
評論
0/150
提交評論