freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的電子萬年歷設計畢業(yè)論文(編輯修改稿)

2025-07-24 19:59 本頁面
 

【文章內容簡介】 比如21世紀則c等于20);m為月,注意每年第一二月作為上一年第十三、十四月處理,即遇到一二月需要加12處理;d為日。 延時子程序延時子程序為Ms級延時和us級延時。本程序中延時采用了軟件延時方法,未采用定時器和中斷,因為在12M晶振下,本系統(tǒng)能夠正常工作,延時子程序的誤差對萬年歷系統(tǒng)正常工作影響甚微。因此,程序中的延時為粗略延時,僅為滿足功能。本課題程序編寫和調試時間了一個月左右的時間,可以說程序設計是此次單片機萬年歷系統(tǒng)設計的重點。程序調試過程中,產(chǎn)生過各種各樣的問題,其中大多數(shù)問題是一些小問題,比如防重復包含語句書寫錯誤導致調用函數(shù)提示重新定義錯誤,比如某個符號的中英文切換導致的奇怪的錯誤等。以下說明一些比較重要的問題。第一,由于STC89C52單片機默認使用最小模式,變量默認為data格式,即變量存儲在RAM的前128個字節(jié),導致變量過多超出128個字節(jié)時報錯,無法編譯連接。解決辦法是采用51單片機其他的模式,比如變量定義在idata區(qū),即指定為間接尋址,使得可用RAM超出128字節(jié),小于256字節(jié);或者只讀變量定義在ROM中也能節(jié)省寶貴的RAM空間。第二,c語言編程的特殊性導致的錯誤。c語言是高級語言,編程具有可移植性高,編程簡單,不用考慮底層寄存器細節(jié)等優(yōu)點,但是keil等編譯軟件最終仍然要完成把高級語言通過編譯器編譯成機器語言的過程。個別c語句邏輯正確語法無誤,但是不實現(xiàn)功能。問題可能就出在編譯后與硬件脫節(jié)上。比如,鬧鐘程序要判斷一個較長的邏輯,語句“if((al_sec==time_buf1[6])amp。amp。(al_hour==time_buf1[4])amp。amp。(al_min==time_buf1[5])amp。amp。alarm))”,該條程序邏輯正確,但是鬧鐘不響。原因就在于當鬧鐘的秒時間到時,判斷語句不能馬上判斷出,秒時間過去后,再判斷出的條件已經(jīng)不具備了。因此,本條語句要改成先判斷秒位,如果秒位為所定時間,那么再判斷其他邏輯的與。第三,cpu占用問題。最初我把鬧鐘和整點半點報時的程序寫得過長,每次報時時cpu就得去執(zhí)行驅動蜂鳴器的程序,這時cpu被占用,12864掃描不能繼續(xù),導致報時結束后才接著顯示,造成數(shù)秒內時間卡住不動的情形。經(jīng)過反復修改,最終學會,可以通過設置時間標志的方法來解放cpu的占用。比如鬧鐘該響時,給時間標志賦值,然后根據(jù)時間標志驅動蜂鳴器。第四,keil軟件提示不準確,有警告。錯誤提示可以用來修改程序,但某些錯誤較多甚至大片錯誤往往是由于某些小錯誤造成的,比如“”的中英文字符,忘記了一個大括號等。警告并不一定會影響最終程序運行,但是即便無警告無錯誤,也只能保證程序無語法問題。所以把警告也改完,讀懂每個警告,有助于消除某些后續(xù)可能出現(xiàn)的錯誤,保證功能的正確實現(xiàn),使程序設計者更好把握程序設計過程。程序仿真一般情況下采用英國的protues軟件,但當protues軟件中缺乏特定型號元件的仿真模型時,protues仿真就很難實現(xiàn)了。Protues支持自建封裝和原理圖模型,但是建立仿真模型與前者不同,自建封裝或者原理圖只不過是“畫”一個像某個元件的元件,而仿真模型簡歷要求輸入輸出程序,往往涉及到高級語言編程。而本課題設計中采用了帶中文字庫12864,帶字庫12864仿真模型在protues官網(wǎng)和12864廠商網(wǎng)站均不提供,因此無法用protues仿真,本課題的仿真應用的是單片機實驗板。實驗板更接近硬件仿真,可以說在實驗板上程序通過了,將來焊接成品就有了一定的保證。實驗板仿真效果如圖35所示:圖35 開發(fā)板仿真效果圖 小結本章主要介紹了單片機電子萬年歷的程序設計,給出了自己程序設計和調試過程中遇到的問題和解決的方案。程序設計耗時最長,收獲也最豐富。遇到問題解決問題的過程就是提高的過程。其中,陰陽歷轉換程序相對較難,最終從互聯(lián)網(wǎng)上找到一張數(shù)據(jù)表和操作方法,否則這部分將無法完成。一個成熟的產(chǎn)品,多閱讀文獻,多參考前人的做法,會使程序設計中某些問題便于解決。而C語言的好處更在于這種天然的可移植性。第4章硬件設計部分由于本課題較成熟,難度適中,焊接也較方便,因此采用9x15萬用板焊接,既鍛煉了動手能力,也避免了畫pcb板圖和交給廠家制作這些不必要的過程。整體框架如圖41:STC89C52單片機晶振與復位電路蜂鳴器驅動電路DS18B20測溫電路DS1302時鐘芯片12864顯示電路按鍵電路圖41 單片機電子萬年歷系統(tǒng)整體框架單片機最小系統(tǒng)是單片機工作的必備條件。復位電路采用手動復位,晶振為12Mhz,典型晶振處電容30pF。電源和接地省略。連接圖如下圖42所示:圖42 單片機最小系統(tǒng)溫度傳感器接線圖如下圖43所示:圖43 溫度傳感器電路DS1302時鐘芯片為雙列直插8引腳,其引腳需要接晶振32768hz,雙電源供電,備用3v電源接VCC2,為單片機斷電后時鐘繼續(xù)走提供條件。其典型外部電路如下圖44所示:圖44 時鐘芯片連接電路按鍵部分電路如下圖45:圖45 獨立按鍵電路蜂鳴器不可以由單片機引腳直接驅動,單片機電流驅動能力不足,因此電路設計為三極管與蜂鳴器配合實現(xiàn)。電路如下圖46:圖46 蜂鳴器驅動電路 12864顯示電路12864與P0口連接,由于P0口為準雙向口,所以外部接上拉排阻,然后接到12864。接法簡單,不再贅述。 小結電路焊接只用一天就完成了,期間最大的問題在于蜂鳴器最初未設置驅動電路。焊接完成后燒寫程序直接可用,這說明,數(shù)字電路的可靠性較高。焊接中發(fā)生的問題在于焊錫絲質量較差,而電烙鐵功率在30w,導致焊錫絲不能完全融化,焊點不夠美觀。第5章結論 焊接實物圖展示實物焊接在15x9的萬用板上,簡單布局如下圖所示,其中右側按鍵依次是復位、調整、加一、減一、確認按鈕。下圖分別附上接液晶前后的實物圖。圖51 實物圖正面(未接液晶)圖52 實物圖正面(接液晶)萬年歷第一行顯示年月日和溫度信息;第二行顯示時分秒和星期;第三行顯示農歷干支紀年和農歷月日信息;第四行顯示鬧鐘。正點和半點蜂鳴器發(fā)聲報時。如下圖所示。 上電萬年歷展示 可改進部分本課題雖然實現(xiàn)了萬年歷的基本功能,但是仍然有些小問題沒有解決。比如按鍵掃描時候單個按鍵不夠靈敏,不能按下去馬上有反應,如果這樣的產(chǎn)品商用,一定是失敗的。如果讓掃描速度更快,按鍵反映更靈敏,效果將更好。其次,加一減一對調節(jié)60秒或者60分鐘來說要按鍵60次,顯然太麻煩了,有必要改成按下去不松手能快速增減。第三蜂鳴器報時是簡單的發(fā)聲示意,如果能播放音樂,將更人性化。再者,溫度增減并未設置報警功能,可以加入報警功能。其他可以改善的地方即是優(yōu)化程序,降低功耗。這樣,對于單片機萬年歷這個課題,將有更好的結果。 課題收獲通過本次畢業(yè)設計,對通信協(xié)議、c語言單片機編程、keil調試、protues仿真等常用軟件和方法有了一定了解,鍛煉了自己的基本實踐能力,對所學知識有了更感性的認識。做一個成功的產(chǎn)品是不容易的,軟件類的看不出成果的產(chǎn)品更甚。完整的畢設過程,使自己學會了如何去查閱資料,怎么查資料,為什么查資料;學會了如何去學習,如何去讀書,如何去更快地學會實踐性強的東西。單片機電子萬年歷這個課題很成熟,自己做的過程中也體會到前人開創(chuàng)性成果取得的不易。今后的學習科研都要以這樣的方法和心態(tài)去學習,爭取能在軟硬件設計方面做出一定的成果。致謝經(jīng)過近一個學期的工作,收集資料、讀書學習、編寫和調試程序、焊接實物到最后論文寫作,一個圓滿的大學生活即將結束了。在我的畢業(yè)設計終于進入尾聲之時,有很多的話要說。首先,感謝我的畢業(yè)設計指導老師徐利娜老師的支持和信任,她給了我充分的自由時間,讓我不至于因為壓力而對畢業(yè)設計敷衍了事,讓我能有時間學習自己喜歡的東西,從而對自己培養(yǎng)獨立的學習精神大有裨益。在畢業(yè)設計的整個過程中,對曾今教過我單片機、c語言、數(shù)字電路的老師們倍感謝意,至今回想起他們的某些話,深感這些學習方法的重要,比如從數(shù)據(jù)手冊和元件手冊來學習元件,從操作時序來理解通信協(xié)議,從實際應用中提高自己知識水平,從編程實踐中提高編程水平等等。在此,還要感謝在互聯(lián)網(wǎng)上提供各種問題解決方案的不知名前輩們,當我遇到簡單的甚至某些低級問題的時候,點開搜索引擎,總能找到一些有意義的啟示。大學四年,我為自己是通信人而驕傲,感謝每一個關心和信任我的同學老師,一個完整的畢業(yè)設計,離不開所有這些人的支持。最后,再次感謝我的畢設老師,衷心感謝評閱論文和參與答辯的專家、教授。參考文獻[1] 郭天祥. 新概念51單片機C語言教程 電子工業(yè)出版社,2009[2] 譚浩強.C程序設計(第二版).清華大學出版社,1999[3] 肖炎根,舒望 ,2007[4] 閻石. 數(shù)字電子技術基礎(第五版). 清華大學出版社,1983[5] 何立明.《單片機高級教程——應用與設計》.北京:北京航天航空大學出版社,2000[6] 林志奇,郎建軍,[M].北京:北京航空航天大學出版社,2006[7] [M]. 北京:人民郵電出版社,2003[8] 劉彥華,邢鵬康. [9] :電子世界,2002[10]V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingleChipMicroputerandThermoelectricModulesBasedonthePeltierEffect[J],2002[11] Meehan Joanne,Muir in Merseyside SMEs:Benefits and barriers[J]. TQM Journal. 2008附 錄源程序清單主程序includeinclude include include include include include include include unsigned char idata time_buf1[8] = {20,14,6,6,12,29,45}。//空年月日時分秒周(周不用輸入)unsigned char alarm=0,al_hour=12,al_min=30,al_sec=30。uchar count=0。uint beeptime1,beeptime2,beepalarm。void main(void){beep=1。DelayMs(500)。 Ds1302_Init()。 Ds1302_Write_Time()。//初值寫入ds1302 Init_DS18B20()。 DelayMs(500)。 //啟動等待,等LCD講入工作狀態(tài) LCDInit()。 //LCM初始化 DelayMs(5)。 //延時片刻(可不要) while(1){ DelayMs(400)。 Ds1302_Read_Time()。 // 以下是正點報時功能 if(time_buf1[6]==0) {if(time_buf1[5]==30) beeptime1=4。}if(beeptime1!=0) {beep=~beep。beeptime1。} if(time_buf1[6]==0) {if(time_buf1[5]==0) beeptime2=4。} if(beeptime2!=0) {beep=~beep。beeptime2。} if(beeptime2==0amp。amp。beeptime1==0) beep=1。 //以下陰陽歷轉換 Conversion(0,time_buf1[1],time_buf1[2],time_buf1[3])。 Conver_week(time_buf1[1],time_buf1[2],time_buf1[3])。 DelayMs(300)。 if(alarm==0) display4_0()。//全屏顯示所有數(shù)據(jù) else display4_1()。 //以下按鍵循環(huán)大程序 key_count()。 if(count)key_set()。 //判斷set鍵按下,進入設置界面 //以下鬧鐘響,即定時報警功能 if(al_sec==time_buf1[6]) {if((al_hour==time_buf1[4])amp。amp。(al_min==time_buf1[5])amp。amp。alarm) beepalarm=11。} if(beepalarm!=0) {beep=~beep。beepalarm。} } if(beepalarm==0) beep=1。 //以下再次全屏顯示,使屏幕顯示穩(wěn)定 if(alarm==0) display4_0()。 else display4_1()。}各部分子程序/*名稱:18B20溫度傳感器內容:18B20單線溫度檢測的應用樣例程序*/includeinclude
點擊復制文檔內容
數(shù)學相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1