基于51單片機(jī)的萬年歷設(shè)計_第1頁
基于51單片機(jī)的萬年歷設(shè)計_第2頁
基于51單片機(jī)的萬年歷設(shè)計_第3頁
基于51單片機(jī)的萬年歷設(shè)計_第4頁
基于51單片機(jī)的萬年歷設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、洛 陽 理 工 學(xué) 院課 程 設(shè) 計 報 告 課程名稱 單片機(jī)原理與應(yīng)用 設(shè)計題目 基于STC89C51萬年歷的設(shè)計與實(shí)現(xiàn) 專 業(yè) 物聯(lián)網(wǎng)工程 班 級 學(xué) 號 姓 名 完成日期 大約在冬季 課 程 設(shè) 計 任 務(wù) 書設(shè)計題目: 基于STC89C51萬年歷的設(shè)計與實(shí)現(xiàn)設(shè)計內(nèi)容與要求:一、 設(shè)計內(nèi)容利用STC89C51單片機(jī)、專用時鐘芯片DS1302、DS18B20數(shù)字溫度采集器及1602顯示器件設(shè)計一個萬年歷,要求實(shí)現(xiàn):(1)正確顯示年月日,時分秒,星期等信息;(2)顯示環(huán)境溫度;(3)具有鬧鐘功能,可以整點(diǎn)報時;(4)能夠通過按鍵調(diào)整時間和設(shè)置鬧鐘。二、設(shè)計要求1.分析系統(tǒng)功能,確定系統(tǒng)設(shè)計方

2、案,掌握總體設(shè)計的方法與思路。2.系統(tǒng)硬件設(shè)計,確定外設(shè)與單片機(jī)的硬件接口。掌握單片機(jī)系統(tǒng)外部接口的擴(kuò)展設(shè)計方法。3.系統(tǒng)軟件設(shè)計,結(jié)合硬件設(shè)計,編寫相應(yīng)控制程序,并進(jìn)行Protuse仿真執(zhí)行。4.熟練掌握程序燒錄及調(diào)試過程。5.按照要求撰寫課程設(shè)計論文。 指導(dǎo)教師: 2019年 11 月 26 日課 程 設(shè) 計 評 語 成績: 指導(dǎo)教師:_ 年 月 日 洛 陽 理 工 學(xué) 院 課 程 設(shè) 計 報 告目錄摘 要2一、設(shè)計目標(biāo)與內(nèi)容31.1設(shè)計目標(biāo)31.2 設(shè)計內(nèi)容31.3設(shè)計要求31.4 本章小結(jié)3二、系統(tǒng)設(shè)計32.1 電路設(shè)計框圖32.2 系統(tǒng)硬件概述42.3 主要單元電路的設(shè)計42.3.1

3、 時鐘電路模塊的設(shè)計42.3.2溫度傳感器電路設(shè)計62.3.3顯示模塊的設(shè)計82.4本章小結(jié)8三、系統(tǒng)的軟件設(shè)計93.1程序流程圖93.1.1 系統(tǒng)總流程圖93.1.2 溫度程序流程圖93.1.3 DS1302時鐘程序流程圖103.1.4 LCD顯示程序流程圖113.2程序的設(shè)計113.2.1 DS18B20測溫程序113.2.2 DS1302讀寫程序133.2.3液晶顯示程序143.3本章小結(jié)15四、仿真與調(diào)試154.1 Keil軟件調(diào)試流程154.2 Proteus軟件運(yùn)行流程174.3本章小結(jié)18總結(jié)18基于STC89C51萬年歷的設(shè)計與實(shí)現(xiàn)摘 要古人依靠日冕、漏刻記錄時間,而隨著科技的

4、發(fā)展,電子萬年歷已經(jīng)成為日漸流行的日常計時工具。本文研究的萬年歷系統(tǒng)擬用STC89C52單片機(jī)控制,以DS1302時鐘芯片計時、DS18B20采集溫度、1602液晶屏顯示。系統(tǒng)主要由溫度傳感器電路,單片機(jī)控制電路,顯示電路以及校正電路四個模塊組成。本文闡述了系統(tǒng)的硬件工作原理,所應(yīng)用的各個接口模塊的功能以及其工作過程,論證了設(shè)計方案理論的可行性。系統(tǒng)程序采用C語言編寫,經(jīng)Keil軟件進(jìn)行調(diào)試后在Proteus軟件中進(jìn)行仿真,可以顯示年、月、日、星期、時、分、秒和溫度并具有校準(zhǔn)功能和與即時時間同步的功能。實(shí)驗(yàn)結(jié)果表明此萬年歷實(shí)現(xiàn)后具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點(diǎn),符合電子儀器

5、儀表的發(fā)展趨勢,具有廣闊的市場前景。關(guān)鍵詞:萬年歷 單片機(jī) 仿真 一、設(shè)計目標(biāo)與內(nèi)容1.1設(shè)計目標(biāo) 制作出可以檢測溫度并報警的的電子萬年歷。1.2 設(shè)計內(nèi)容用keilC51編譯程序。用proteus仿真電路圖。將電路圖使用萬用板或其他電路板焊接實(shí)物圖。1.3設(shè)計要求具備在液晶上顯示年、月、日、星期、時、分、秒的功能。具備年、月、日、星期、時、分、秒校準(zhǔn)功能。具有與即時時間同步的功能。1.4 本章小結(jié)通過設(shè)計程序,制作仿真,焊接實(shí)物三個步驟,以小組合作的方式來設(shè)計滿足設(shè)計要求的萬年歷并簡單描述可以實(shí)現(xiàn)的功能,制作結(jié)束后,進(jìn)行課程設(shè)計答辯并編寫一份課程設(shè)計報告。二、系統(tǒng)設(shè)計122.1 電路設(shè)計框圖

6、根據(jù)上章確定的方案給出了系統(tǒng)整體的設(shè)計框圖:圖1.1系統(tǒng)結(jié)構(gòu)框圖為使時鐘走時與標(biāo)準(zhǔn)時間一致,校時電路是必不可少的,鍵盤模塊用來校正液晶上顯示的時間;溫度傳感器則用來檢測當(dāng)前的環(huán)境溫度;STC89C52單片機(jī)通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作;而系統(tǒng)的時間、溫度等數(shù)據(jù)則最終通過液晶模塊顯示出來。2.2 系統(tǒng)硬件概述本電路是以STC89C52單片機(jī)為控制核心,該芯片具有在線編程功能,功耗低,能在3.3V的超低壓下工作;時鐘芯片采用DS1302,它是一款高性能、低功耗、自帶RAM的實(shí)時時鐘芯片,具有使用壽命長,精度高和功耗低等特點(diǎn),同時具有掉電自動保存功能,可以對年、月、日、星期、時、分

7、、秒進(jìn)行計時,具有閏年補(bǔ)償功能,其工作電壓為2.5V5.5V;溫度檢測模塊由DS18B20構(gòu)成,它采用獨(dú)特的單線接口僅需一個端口引腳進(jìn)行通訊, 具有測量精度高、測量范圍廣等優(yōu)點(diǎn),其測溫范圍在-55+125,工作電壓為3v5.5v;顯示部份使用1602液晶顯示屏來實(shí)現(xiàn),該顯示屏具有低功耗、壽命長、可靠性高的特點(diǎn),其工作電壓為5v。2.3 主要單元電路的設(shè)計2.3.1 時鐘電路模塊的設(shè)計DS1302是DALLAS公司推出的涓流充電時鐘芯片,內(nèi)含有一個實(shí)時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機(jī)進(jìn)行通信。圖4.5所示為DS1302的引腳排列,其中VCC1為后備電源,VCC2為主電源

8、。DS1302由VCC1或VCC2兩者中的較大者供電。所以在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運(yùn)行。X1和X2是振蕩源,外接32.768KHz晶振用來為芯片提供計時脈沖。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電行動時,在VCC大于等于2.5V之前,RST必須保持低電平。在SCL

9、K為低電平時,才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。如圖2.1圖2.1 DS1302的硬件接線圖時鐘芯片DS1302的工作原理:(1) DS1302的控制字節(jié)DS1302控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出(2) 數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開

10、始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。(3) DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式?!癈H”是時鐘暫停標(biāo)志位,當(dāng)該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時,時鐘開始運(yùn)行?!癢P”是寫保護(hù)位,在任何的對時鐘和RAM的寫操作之前,“WP”必須為0。當(dāng)“WP”為1時,寫保護(hù)位防止對任一寄存器的寫操作。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀

11、寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。2.3.2溫度傳感器電路設(shè)計數(shù)字溫度傳感器DS18B20是由Dalles半導(dǎo)體公司生產(chǎn)的,它具有耐磨耐碰,體積小,使用方便,封裝形式多樣(如圖4.6),適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。如圖2.2圖2.2 DS18B20的兩種封裝1、DS18B20的主要特性 (1)適應(yīng)電壓

12、范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù) 據(jù)線供電。 (2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫。 (4)DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。 (5)溫范圍55125,在-10+85時精度為0.5。 (6)可編程 的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫。 (7)在9位分辨率時最多在

13、 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。 (8)測量結(jié)果直接輸出數(shù)字溫度信號,以一 線總線串行傳送給CPU,同時可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯能力。 (9)負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。2、DS18B20的內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM 、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器(如圖2.3)。圖2.3 DS18B20的內(nèi)部結(jié)構(gòu)組成DS18B20的供電方式有兩種:寄生電源供電方式和外部電源供電方式。本設(shè)計采用外部電源供電方式(如圖2.4),D

14、S18B20工作電源由VDD引腳接入,此時I/O線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度。外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。 圖2.4 DS18B20引腳接線引腳說明:GND為接地引腳;DQ為數(shù)據(jù)輸入輸出腳。用于單線操作,漏極開路;VCC接電源正;2.3.3顯示模塊的設(shè)計本設(shè)計中由于要對時間、溫度進(jìn)行顯示,所以選擇液晶顯示屏1602模塊作為輸出。1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。它可以顯示兩行,每行16個字符,采用單+5V

15、電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。將L1602的RS端和P2.0,R/W端和P2.1, E 端和P2.2相連,當(dāng)RS=0時,對LCD1602寫入指令;當(dāng)RS=1時,對LCD1602寫入數(shù)據(jù)。當(dāng)R/W端接高電平時芯片處于讀數(shù)據(jù)狀態(tài),反之處于寫數(shù)據(jù)狀態(tài),E端為使

16、能信號端。當(dāng)R/W為高電平,E端也為高電平,RS為低電平時,液晶顯示屏顯示需要顯示的示數(shù)。2.4本章小結(jié)本章主要介紹了系統(tǒng)硬件設(shè)計,其中對時鐘芯片DS1302、1602液晶顯示屏、DS18B20溫度傳感器和STC89C52最小系統(tǒng)的設(shè)計做了詳細(xì)闡述。此外還介紹了各模塊和單片機(jī)的連接方法、其特性及電路原理,最后確定系統(tǒng)的整體硬件設(shè)計方案。三、系統(tǒng)的軟件設(shè)計3.1程序流程圖3.1.1 系統(tǒng)總流程圖系統(tǒng)總流程圖如圖3.1所示。流程圖分析:首先系統(tǒng)初始化,系統(tǒng)開始運(yùn)行,當(dāng)有設(shè)置鍵按下時進(jìn)入修改時間模式,無按鍵按下時讀取時間、溫度等數(shù)據(jù)送入液晶屏顯示;在修改時間模式下設(shè)置時間完成后再送數(shù)據(jù)到液晶屏顯示。

17、圖3.1系統(tǒng)總流程圖3.1.2 溫度程序流程圖溫度讀取流程圖如圖3.2所示。流程圖分析:開始進(jìn)入初始化DS18B20,就是通過主機(jī)拉低單線產(chǎn)生復(fù)位脈沖然后釋放該線,如果有應(yīng)答脈沖,即發(fā)起ROM命令當(dāng)成功的執(zhí)行操作命令后,就使用Convert T命令即開始溫度轉(zhuǎn)換,當(dāng)轉(zhuǎn)換完后,又初始化DS18B20是否有應(yīng)答脈沖,若有,就發(fā)起Read Scratchpad(讀取暫存器和CRC字節(jié))命令,既同時讀出第1,2個字節(jié),即為溫度的數(shù)據(jù)。圖3.2 溫度顯示流程圖3.1.3 DS1302時鐘程序流程圖時鐘流程圖如圖5.3所示。流程圖分析:DS1302開始計時時,首先進(jìn)行初始化,當(dāng)有中斷信號時,讀取時鐘芯片的

18、數(shù)據(jù)送入液晶屏顯示。這時若有設(shè)置鍵按下時,進(jìn)行時間修改,完成后將數(shù)據(jù)送入時鐘芯片;若沒有按鍵按下,則直接存入EPROM,送入液晶屏顯示。圖3.3 時鐘流程圖3.1.4 LCD顯示程序流程圖顯示程序流程圖如圖5.4。流程圖分析:首先對1602顯示屏進(jìn)行初始化(初始化大約持續(xù)10ms左右),然后檢查忙信號,若BF=0,則獲得顯示RAM的地址,寫入相應(yīng)的數(shù)據(jù)顯示;若BF=1,則代表模塊正在進(jìn)行內(nèi)部操作,不接受任何外部指令和數(shù)據(jù),直到BF=0為止。圖3.4 LCD顯示程序流程圖3.2程序的設(shè)計3.2.1 DS18B20測溫程序DS18B20是一種單總線數(shù)字式溫度傳感器,它與單片機(jī)之間采用的是串行數(shù)據(jù)傳

19、送,所以在對DS18B20進(jìn)行讀寫操作時必須按照它的時序進(jìn)行。一般訪問DS18B20時按如下步驟進(jìn)行:初始化;ROM操作命令;存儲器操作命令;執(zhí)行/數(shù)據(jù)。部分源程序如下:ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for (i=8;i0;i-) DQ=1; DS18_delay(1); DQ=0; dat=1; /復(fù)合賦值運(yùn)算,等效dat=dat1 DQ=1; if(DQ) dat|=0x80; DS18_delay(4); return(dat);WriteOneChar(unsigned char dat) /有參函數(shù)

20、,功能是寫,而寫的內(nèi)容就是括號內(nèi)的參數(shù) unsigned char i=0; for(i=8;i0;i-) DQ=0; DQ=dat&0x01;DS18_delay(5);DQ=1;dat=1; /復(fù)合賦值運(yùn)算,等效dat=dat1(dat=dat右移一位后的值)DS18_delay(4);unsigned int ReadTemperature(void) Init_DS18B20(); /初始化,調(diào)用初始化函數(shù)WriteOneChar(0xcc); /跳過讀序列號的操作,調(diào)用寫函數(shù),寫0xcc指令碼WriteOneChar(0x44); /啟動溫度轉(zhuǎn)換,調(diào)用寫函數(shù),寫0x44指令碼DS18

21、_delay(125); /轉(zhuǎn)換需要一點(diǎn)時間,延時Init_DS18B20(); /初始化,調(diào)用初始化函數(shù)WriteOneChar(0xcc); /跳過讀序列號的操作,調(diào)用寫函數(shù),寫0xcc指令碼WriteOneChar(0xbe); /調(diào)用寫函數(shù),寫0xbe指令碼,讀溫度寄存器tempL=ReadOneChar(); /讀出溫度的低位LSBtempH=ReadOneChar(); /讀出溫度的高位MSB tempa=(tempH*256)+tempL)*0.0625; /溫度轉(zhuǎn)換DS18_delay(20);return(tempa); /運(yùn)算結(jié)果返回到函數(shù) :ReadTemperature

22、()3.2.2 DS1302讀寫程序DS1302是SPI總線驅(qū)動方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如圖3.5所示。圖3.5 DS1302的控制字控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。數(shù)據(jù)讀寫時序如圖3.6、3.7所示。圖3.6 單字節(jié)讀圖3.7 單字節(jié)寫在進(jìn)行任何數(shù)據(jù)傳輸時,RST必

23、須被置高電平,每個SCLK為上升沿時數(shù)據(jù)被輸入,下降沿時數(shù)據(jù)被輸出。先把RST置低,禁止數(shù)據(jù)傳輸,SCLK置低,清零時鐘總線,RST再置高,允許數(shù)據(jù)傳輸。傳送完成后,RST置低,禁止字節(jié)的傳送。部分源程序如下:void write_byte(uchar dat) /寫一個字節(jié)ACC=dat;RST=1;for(a=8;a0;a-)IO=ACC0;SCLK=0;SCLK=1;ACC=ACC1;uchar read_byte() /讀一個字節(jié)RST=1;for(a=8;a0;a-)ACC7=IO;SCLK=1;SCLK=0;ACC=ACC1;return (ACC);void write_1302

24、(uchar add,uchar dat) /向1302芯片寫函數(shù),指定寫入地址,數(shù)據(jù)RST=0;SCLK=0;RST=1;write_byte(add);write_byte(dat);SCLK=1;RST=0;uchar read_1302(uchar add) /從1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來源地址uchar temp;RST=0;SCLK=0;RST=1;write_byte(add);temp=read_byte();SCLK=1;RST=0;return(temp);3.2.3液晶顯示程序1602通過D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令,其模塊內(nèi)的控制器有11條控制指令。當(dāng)液晶

25、顯示屏的接口電路與單片機(jī)系統(tǒng)I/O按照并行數(shù)據(jù)傳輸方式連接完成以后,即可以對STC89C52單片機(jī)進(jìn)行編程。在液晶屏完成顯示之前首先要對液晶進(jìn)行初始化。源程序如下:lcd_init() /*液晶初始化函數(shù)*write_1602com(0x38); /設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)write_1602com(0x0c); /開顯示不顯示光標(biāo)write_1602com(0x06); /整屏不移動,光標(biāo)自動右移write_1602com(0x01); /清顯示write_1602com(yh+1); /日歷顯示固定符號從第一行第1個位置之后開始顯示for(a=0;a14

26、;a+)write_1602dat(tab1a); /向液晶屏寫日歷顯示的固定符號部分/delay(3);write_1602com(er+2); /時間顯示固定符號寫入位置,從第2個位置后開始顯示for(a=0;a8;a+)write_1602dat(tab2a); /寫顯示時間固定符號,兩個冒號/delay(3); 3.3本章小結(jié)本章對基于單片機(jī)的萬年歷系統(tǒng)軟件模塊進(jìn)行設(shè)計,先對該系統(tǒng)進(jìn)行了整體流程的設(shè)計,給出了設(shè)計的流程圖,隨后介紹了各模塊的子程序。對一些模塊常用的函數(shù)進(jìn)行了解釋,這一切都構(gòu)成了這個系統(tǒng)的軟件基礎(chǔ)。四、仿真與調(diào)試4.1 Keil軟件調(diào)試流程首先選擇菜單File-New,在

27、源程序編輯器中輸入?yún)R編語言或C語言源程序(或選擇File-Open,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時必須在文件名后加上擴(kuò)展名.asm(.a51)或.c。然后選擇菜單Project-New Project,建立新工程并保存(保存時無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2),工程保存后會立即彈出一個設(shè)備選擇對話框,選擇CPU后點(diǎn)確定返回主界面。這時工程管理窗口的文件頁(Files)會出現(xiàn)“Target1”,將其前面+號展開,接著選擇Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group Source Group1”,出現(xiàn)一個對話框,要求尋

28、找并加入源文件(在加入一個源文件后,該對話框不會消失,而是等待繼續(xù)加入其它文件)。加入文件后點(diǎn)close返回主界面,展開“Source Group1”前面+號,就會看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對工程進(jìn)行設(shè)置,選擇工程管理窗口的Target1,再選擇Project-Option for Target Target1(或點(diǎn)右鍵彈出快捷菜單再選擇該選項),打開工程屬性設(shè)置對話框,共有8個選項卡,主要設(shè)置工作包括在Target選項卡中設(shè)置晶振頻率、在Debug選項卡中設(shè)置實(shí)驗(yàn)仿真板等,如果要寫片,還必須在Output選項卡中選中“Creat Hex Fi”(如圖4.2);

29、其它選項卡內(nèi)容一般可取默認(rèn)值。工程設(shè)置后按F7鍵(或點(diǎn)擊編譯工具欄上相應(yīng)圖標(biāo))進(jìn)行編譯/匯編、連接以及產(chǎn)生目標(biāo)文件。圖4.2 生成HEX文件成功編譯/匯編、連接后,選擇菜單Debug-Start/Stop Debug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對程序的模擬調(diào)試功能,內(nèi)建一個功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過程單步執(zhí)行(按F10或選擇Debug-Step Over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯,可采用在線匯編功能對程序進(jìn)行在線修改(Debug-Inline Assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對工程

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論