




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)的電子萬年歷系統(tǒng)的軟件設(shè)計(jì)案例概述目錄TOC\o"1-3"\h\u4086基于單片機(jī)的電子萬年歷系統(tǒng)的軟件設(shè)計(jì)案例概述 1253551.1引言 110911.2軟件應(yīng)用程序 179061.2.1KEIL4軟件簡介 1110341.2.2Protues8軟件簡介 3116191.3各模塊程序設(shè)計(jì) 4164221.2.1DS1302時(shí)鐘子程序 4204071.2.2DS18B20溫度子程序 5193081.2.3按鍵子程序 549291.2.4LCD1602顯示子程序 672501.4仿真結(jié)果分析 7274251.5小結(jié) 81.1引言通過上一章各硬件電路模塊原理的介紹,本章根據(jù)各模塊原理進(jìn)行軟件編程,并介紹KEIL4、proteus8軟件程序的應(yīng)用方法,來進(jìn)行程序編寫和仿真電路設(shè)計(jì),設(shè)計(jì)仿真電路時(shí),注意連線要求以及技術(shù)參數(shù)數(shù)值。接下來詳細(xì)分析各模塊的程序設(shè)計(jì)以及實(shí)現(xiàn)的功能。1.2軟件應(yīng)用程序1.2.1KEIL4軟件簡介Keil4是以C語言為主的軟件開發(fā)系統(tǒng)的程序編譯軟件,并且兼容性能非常好。Keil4提供了包括C語言編譯器、匯編語言、鏈接器、數(shù)據(jù)庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境將這些部分組合在一起。此處簡單介紹一下KeiL4工程的建立。[13](1)要建立一個(gè)工程文件,首先選擇菜單欄中的“Project”然后單擊“NewProject”,軟件的菜單欄如圖4-1所示。圖4-1菜單欄(2)選擇建立的工程要保存的路徑并根據(jù)自己的需求輸入工程名為:“電子萬年歷”首拼大寫字母命名,如圖4-2所示。圖4-2“保存新工程”對話框(3)選擇本設(shè)計(jì)要用到的單片機(jī)系列型號(hào)“STC89C52”如圖4-3所示圖4-3(a)“單片機(jī)系列型號(hào)”(4)建立文件,選擇菜單中的“File”再單擊“New”,出現(xiàn)的對話框界面如圖4-4所示。圖4-4新建文件對話框界面(5)保存文件時(shí)在文件后方加入“.C”后綴,并且添加文件到所建的工程下,保存文件截圖如圖4-5(a)所示,添加文件顯示界面如圖4-5(b)所示,右鍵雙擊“SourceGroup1”進(jìn)行添加。圖4-5(a)保存文件界面圖4-5(b)添加文件界面1.2.2Protues8軟件簡介Proteus8軟件是英國LabCenterElectronics公司出版的EDA工具軟件,它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具,[13]最起碼可以很好的仿真51系列類型的單片機(jī)。在protues8仿真軟件內(nèi)繪制好原理圖后,調(diào)用已編譯好的程序代碼“.hex”文件,可以在protues8的原理圖中看到仿真圖的運(yùn)行狀態(tài)和過程。(1)Keil4中生成后綴為“.hex”的文件界面如圖4-7所示。圖4-7生成hex文件界面(2)Protues8中加載“.hex”文件,在Protues8軟件中繪制的本設(shè)計(jì)仿真電路圖界面中單擊“STC89C52”單片機(jī),打開的界面如圖4-8所示,并按要求勾選或加載所需的信息。圖4-8加載“.hex”文件界面1.3各模塊程序設(shè)計(jì)1.2.1DS1302時(shí)鐘子程序DS1302具有兩種讀寫模式,字節(jié)模式和突發(fā)模式。DS1302共有12位寄存器,其中有7位寄存器與時(shí)鐘、日歷相關(guān),存放的數(shù)據(jù)位為BCD碼形式,但BCD碼必須轉(zhuǎn)十進(jìn)制才能直接使用,否則會(huì)出現(xiàn)代碼錯(cuò)亂、數(shù)據(jù)信息顯示錯(cuò)誤。[12]時(shí)鐘子程序如下:voidread1302dat(){ucharm,f,s,r,y,n;分別儲(chǔ)存秒、分、小時(shí)、日、月、年ucharReadValue;從1302讀取的數(shù)據(jù)進(jìn)行儲(chǔ)存ReadValue=ReadSetb1302(0x81);/讀秒寄存器m=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);/將讀出數(shù)據(jù)轉(zhuǎn)化ReadValue=ReadSetb1302(0x83);/讀分寄存器f=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);ReadValue=ReadSetb1302(0x85);/讀時(shí)寄存器s=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);ReadValue=ReadSet1302(0x87);/讀日寄存器r=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);ReadValue=ReadSet1302(0x89);/讀月寄存器y=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);ReadValue=ReadSet1302(0x8d);/讀年寄存器n=((ReadValue&0xF0)>>4)*10+(ReadValue&0x0F);year=n;month=y;day=r;hour=s;min=f;sec=m;}時(shí)鐘子程序的流程圖如下圖4-9所示:開始開始開關(guān)否開關(guān)是斷電保護(hù)顯示模塊顯示斷電保護(hù)顯示模塊顯示“年月日時(shí)分秒”結(jié)束結(jié)束圖4-9時(shí)鐘子程序流程圖1.2.2DS18B20溫度子程序DS18B20溫度傳感器測溫的方式原理:用高溫度數(shù)值的振蕩器確定一個(gè)周期,內(nèi)部計(jì)數(shù)器在這個(gè)周期內(nèi)對一個(gè)低溫度的振蕩器的脈沖進(jìn)行計(jì)數(shù)來得到溫度值。DS18B20工作原理同DS1820工作原理大致相同,但溫度值的位數(shù)由于分辨率的不同而不同,且溫度轉(zhuǎn)換延時(shí)由2秒減少至750毫秒。[9]讀取溫度的子程序如下所示:voidInit_DS18B20(void){unsigncharx=0;DQ=1;DQ復(fù)位del_DS18B20(8);延時(shí)DQ=0;del_DS18B20(80);延時(shí)>480usDQ=1;del_DS18B20(14);x=DQ;延時(shí)后如果x=0時(shí)則初始化成功,x=1時(shí)則初始化失敗del_DS18B20(20);}溫度子程序的流程圖如下圖4-10所示:開始開始開關(guān)開關(guān)是顯示模塊顯示溫度信息“顯示精度為±0.5℃”顯示模塊顯示溫度信息“顯示精度為±0.5℃”結(jié)束結(jié)束圖4-10溫度子程序流程圖1.2.3按鍵子程序按鍵模塊的軟件程序比起溫度模塊和時(shí)鐘模塊還是比較簡單的。按鍵模塊的設(shè)計(jì),最關(guān)鍵的關(guān)鍵是消除按鍵抖動(dòng)(按鍵延時(shí))。通常的按鍵開關(guān)都為機(jī)械彈性開關(guān),當(dāng)開關(guān)按鍵斷開或閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,所以導(dǎo)致在開關(guān)按鍵按下時(shí)并不會(huì)立刻連接通電,在開關(guān)按鍵彈起時(shí)也不會(huì)突然一下子斷開連接的電源。[8]因此在開關(guān)按鍵按下或彈起的瞬間均伴隨明顯可觀的延時(shí),為了減少或減輕這種情況,本設(shè)計(jì)的做法就是按鍵消抖(也就是縮短按鍵延時(shí)時(shí)間)。按鍵的消抖有兩種:硬件和軟件消抖。因?yàn)橛布缎枰砑佑布骷?,所占用的空間會(huì)增大,也會(huì)增加焊接時(shí)的工作量,因此本設(shè)計(jì)采用軟件消抖的方法。軟件消抖:當(dāng)開關(guān)按鍵按下后執(zhí)行一個(gè)延時(shí)程序?yàn)?ms至10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測按鍵的按下狀態(tài),如果按鍵仍保持閉合狀態(tài),則確定為真正有鍵按下;當(dāng)檢測到按鍵釋放彈起后進(jìn)行5ms至10ms的延時(shí),待后沿抖動(dòng)完全消失后才能轉(zhuǎn)入該按鍵的處理程序。按鍵的子程序如下:voidkey_cou(){Sta_Set=1;if(Sta_Set==0)Delay(2);while(Sta_Set==0){if(cou==11)cou=0;elsecou++:brack;}while(Sta_Set==0);}按鍵子程序流程圖如圖4-11所示:開始開始開關(guān)開關(guān)是四個(gè)按鍵:按鍵消抖四個(gè)按鍵:按鍵消抖確定按鍵控制按鍵-控制按鍵+選擇按鍵確定按鍵控制按鍵-控制按鍵+選擇按鍵控制時(shí)鐘“年月日時(shí)分秒”信息控制時(shí)鐘“年月日時(shí)分秒”信息結(jié)束結(jié)束圖4-11按鍵子程序流程圖1.2.4LCD1602顯示子程序LCD1602顯示模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)其功能的。(說明:1為高電平、0為低電平)。指令1:清顯示。指令2:光標(biāo)復(fù)位。指令3:光標(biāo)和顯示模式設(shè)置。指令4:顯示開關(guān)控制。指令5:光標(biāo)或顯示移位。指令6:功能設(shè)置命令。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。[16]顯示屏的子程序如下:voiddelay1(void){inti;Writecom(0x80,1);for(i=0;i<16;i++){WriteDate(str[i]);}}顯示模塊子程序的流程圖如圖4-12所示:開始開始開關(guān)開關(guān)是顯示模塊顯示:溫度,時(shí)間顯示模塊顯示:溫度,時(shí)間結(jié)束結(jié)束圖4-10顯示模塊子程序流程圖1.4仿真結(jié)果分析用proteus8軟件畫出所要實(shí)現(xiàn)功能的仿真圖并進(jìn)行布線,使圖能夠美觀和直觀,為了實(shí)現(xiàn)功能將程序內(nèi)容生成“.HEX”文件下載到仿真系統(tǒng)的主系統(tǒng)中,再將溫度子程序調(diào)用到溫度仿真模塊中來實(shí)現(xiàn)本設(shè)計(jì)要求的數(shù)據(jù)信息。在PROTUES8中仿真的總體電路圖如圖4-9所示。圖4-9總體仿真電路圖1.3小結(jié)通過上面對系統(tǒng)結(jié)構(gòu)和功能的分析,可以清晰的了解在電子萬年歷系統(tǒng)的設(shè)計(jì)過程。首先對系統(tǒng)進(jìn)行初始化設(shè)計(jì),然后單片機(jī)檢測外部的時(shí)鐘芯片、溫度傳感器、顯示器等,通過對單片機(jī)的程序編寫是各個(gè)模塊的數(shù)據(jù)信息通過顯示器LCD1602進(jìn)行顯示。程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 林業(yè)推廣技術(shù)試題及答案
- 節(jié)水灌溉技術(shù)試題及答案
- 初中教師面試技巧提升:常見面試題目的應(yīng)對策略
- 民宿管理面試實(shí)戰(zhàn)模擬題庫
- 國有企業(yè)面試題庫:行業(yè)知識(shí)與技能
- 銷售人員必 備技能提升題庫:市場調(diào)研與談判技巧的實(shí)戰(zhàn)應(yīng)用
- 學(xué)校業(yè)務(wù)知識(shí)培訓(xùn)目的課件
- 學(xué)前班安全課課件
- 影視行業(yè)2025年工業(yè)化制作流程優(yōu)化與質(zhì)量控制技術(shù)前沿動(dòng)態(tài)報(bào)告
- 林地土壤肥力生態(tài)循環(huán)與服務(wù)實(shí)踐探究
- 雙方簽定協(xié)議書
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)下冊期末培優(yōu)卷(北師大版)含答案
- 新能源汽車生產(chǎn)線下線EOL測試和電檢診斷測試技術(shù)方案
- ASM AD830改機(jī)操作規(guī)范
- 第四篇 皮膚科疾病臨床評(píng)分表
- 《用Python實(shí)現(xiàn)垃圾郵件過濾的核心代碼程序》
- GB/T 3452.2-1987O形橡膠密封圈外觀質(zhì)量檢驗(yàn)標(biāo)準(zhǔn)
- GB/T 1690-1992硫化橡膠耐液體試驗(yàn)方法
- 叉車隱患排查情況記錄表
- he及roma用于卵巢癌全程管理省腫瘤雷旦生
- 小兒呼吸機(jī)相關(guān)知識(shí)詳解課件
評(píng)論
0/150
提交評(píng)論