




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中北大學(xué)2010屆畢業(yè)設(shè)計(jì)說明書1 引言1.1 課題研究意義 溫度是工業(yè)生產(chǎn)中主要的參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用。單片機(jī)在工業(yè)生產(chǎn)中的應(yīng)用尤其廣泛,溫度采集系統(tǒng)則是單片機(jī)在工業(yè)生產(chǎn)中的一個(gè)典型的應(yīng)用。采用單片機(jī)對溫度進(jìn)行采集不僅具有控制方便、簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大的提高產(chǎn)品的質(zhì)量和數(shù)量。隨著嵌入式系統(tǒng)開發(fā)技術(shù)的快速發(fā)展及其在各個(gè)領(lǐng)域的廣泛應(yīng)用,單片機(jī)已經(jīng)以其體積小、功能強(qiáng)、價(jià)格低、使用靈活等特點(diǎn)顯示出了明顯的優(yōu)勢和廣泛的應(yīng)用前景。作為一名測控技術(shù)與儀器專業(yè)的學(xué)生,理應(yīng)對單片機(jī)有更深的了解,本著開拓創(chuàng)新的思想,需要設(shè)計(jì)了帶語音播報(bào)功能的溫度測量儀。普通大眾所常見的溫度計(jì)是玻璃管溫度計(jì),它是靠管內(nèi)水銀升降來判斷溫度值的高低。當(dāng)光線較暗時(shí),就看不清水銀位置,這給觀察者帶來不便。而使用負(fù)溫度系數(shù)熱敏電阻結(jié)合凌陽16位單片機(jī)系統(tǒng)開發(fā)出來的熱敏電阻溫度計(jì)則克服了普通溫度計(jì)的許多缺點(diǎn),使用更方便,而且更加準(zhǔn)確。1.2 課題研究的背景溫度數(shù)據(jù)采集系統(tǒng)作為數(shù)據(jù)采集系統(tǒng)大家族的普通一員也是其一方面的具體應(yīng)用,數(shù)據(jù)采集系統(tǒng)的發(fā)展就是她的發(fā)展。數(shù)據(jù)采集系統(tǒng)始于20世紀(jì)50年代,1965年美國首先研究了用在軍事上的測試系統(tǒng),目標(biāo)是測試中不依靠相關(guān)的測試文件,由非熟練人員操作,并且測試任務(wù)由測試設(shè)備高速自動(dòng)控制完成。由于該種數(shù)據(jù)采集系統(tǒng)具有高速屬性和一定的靈活性,可以滿足眾多傳統(tǒng)方法不能完成的數(shù)據(jù)采集和測試任務(wù),因而得到了初步的認(rèn)可。20世紀(jì)70年代中后期,隨著微型機(jī)的發(fā)展,誕生了采集器、儀表同計(jì)算機(jī)融為一體的數(shù)據(jù)采集系統(tǒng)。由于這種數(shù)據(jù)采集系統(tǒng)的性能優(yōu)良,超過了傳統(tǒng)的自動(dòng)檢測儀表和專用數(shù)據(jù)采集系統(tǒng),因而獲得了驚人的發(fā)展。從70年代起,數(shù)據(jù)采集系統(tǒng)發(fā)展過程中逐漸分為兩類,一類是實(shí)驗(yàn)室數(shù)據(jù)采集系統(tǒng),另一類是工業(yè)現(xiàn)場數(shù)據(jù)采集系統(tǒng)。20世紀(jì)80年代隨著計(jì)算機(jī)的普及應(yīng)用,數(shù)據(jù)采集系統(tǒng)得到了極大的發(fā)展,開始出現(xiàn)了,通用的數(shù)據(jù)采集與自動(dòng)化測試系統(tǒng)。該階段的數(shù)據(jù)采集系統(tǒng)主要有兩類,一類以儀器儀表和采集器、通用接口總線和計(jì)算機(jī)等構(gòu)成。例如:國際標(biāo)準(zhǔn)ice625(gpib)接口總線系統(tǒng)就是一個(gè)典型的代表。這類系統(tǒng)主要用于實(shí)驗(yàn)室,在工業(yè)生產(chǎn)現(xiàn)場也有一定的應(yīng)用。第二類以數(shù)據(jù)采集卡、標(biāo)準(zhǔn)總線和計(jì)算機(jī)夠成。例如:std總線系統(tǒng)。1.3 課題研究的現(xiàn)狀時(shí)至今日,由于集成電路制造技術(shù)的不斷提高,出現(xiàn)了高性能、高可靠性的數(shù)據(jù)采集系統(tǒng)?,F(xiàn)代的數(shù)據(jù)采集系統(tǒng),在系統(tǒng)初始化、編程、修改、擴(kuò)充等方面,變得比過去更加容易。a/d變換器的技術(shù)發(fā)展,允許以更高的分辨率,更快的采集速度和更低的成本,實(shí)現(xiàn)更精密的測量。目前,數(shù)據(jù)采集系統(tǒng)的一種較為肯定的發(fā)展趨勢是:把個(gè)人計(jì)算機(jī)同數(shù)據(jù)采集系統(tǒng)結(jié)合起來,實(shí)現(xiàn)測量和控制任務(wù)的自動(dòng)化。隨著科學(xué)技術(shù)的發(fā)展和數(shù)據(jù)采集技術(shù)的廣泛應(yīng)用,對數(shù)據(jù)采集系統(tǒng)的各項(xiàng)指標(biāo),如采樣率、分辨率、存儲(chǔ)深度、數(shù)字信號(hào)處理的、抗干擾能力等方面提出了越來越高的要求,這時(shí)超高速數(shù)據(jù)采集系統(tǒng)應(yīng)運(yùn)而生。特別是在高速電路中的毛刺捕獲、火箭噴氣流量的動(dòng)態(tài)測試以及遙感測試等場合需要高速或超高速數(shù)據(jù)采集系統(tǒng)技術(shù)。超高速數(shù)據(jù)采集技術(shù)已廣泛應(yīng)用在雷達(dá)、導(dǎo)彈、通信、聲納、遙感、地質(zhì)勘測、振動(dòng)工程、無損檢測、智能儀器、語音處理、激光多普勒測速、光時(shí)間域反射測量、物質(zhì)光譜學(xué)與光譜測量、生物醫(yī)學(xué)工程等領(lǐng)域,進(jìn)而不斷推動(dòng)這些領(lǐng)域的發(fā)展。2 設(shè)計(jì)需求分析2.1 總體需求結(jié)合當(dāng)前我的設(shè)計(jì)及實(shí)際情況,具有以下任務(wù)需求:利用凌陽spce061a單片機(jī)和負(fù)溫度系數(shù)熱敏電阻的組合編程實(shí)現(xiàn)溫度的實(shí)時(shí)測量和語音播報(bào)。溫度的測量范圍為-20至80,當(dāng)按下報(bào)溫鍵時(shí),系統(tǒng)通過監(jiān)測熱敏電阻兩端電壓,經(jīng)過計(jì)算得到實(shí)時(shí)溫度值,再播報(bào)出來。2.2 硬件需求 基于本設(shè)計(jì)的需要并從經(jīng)濟(jì)角度考慮,我選擇了凌陽spce061a單片機(jī)作為硬件支持,它除了具有單片機(jī)最小系統(tǒng)外,還包擴(kuò)有電源電路、音頻電路、復(fù)位電路等,采用電池供電,方便攜帶。溫度傳感器選擇了負(fù)溫度系數(shù)熱敏電阻mfd-502-34,熱敏電阻是一種新型半導(dǎo)體感溫元件,具有靈敏度高、體積小、壽命長的優(yōu)點(diǎn)。2.3 軟件工具需求選定了硬件后就需要編寫軟件了,本設(shè)計(jì)選用的編程軟件為c語言和凌陽匯編。同硬件的設(shè)計(jì)一樣,軟件也是分塊進(jìn)行的。主要包括以下部分的程序:系統(tǒng)初始化程序、鍵盤掃描程序、a/d轉(zhuǎn)換程序、溫度計(jì)算程序、語音播報(bào)程序。各部分程序由主程序(main.c)調(diào)用,組成一個(gè)整體。3 凌陽單片機(jī)簡介作為整個(gè)設(shè)計(jì)的核心部件,凌陽spce061a單片機(jī)起著至關(guān)重要的作用,影響著整個(gè)設(shè)計(jì)的各個(gè)步驟,本章將對凌陽spce061a單片機(jī)進(jìn)行具體詳細(xì)的介紹。3.1 spce061a概述隨著單片機(jī)功能集成化的發(fā)展,其應(yīng)用領(lǐng)域也逐漸地由傳統(tǒng)的控制,擴(kuò)展為控制處理、數(shù)據(jù)處理以及數(shù)字信號(hào)處理(dsp,digital signal processing)等領(lǐng)域。凌陽的16位單片機(jī)就是為適應(yīng)這種發(fā)展而設(shè)計(jì)的。它的cpu內(nèi)核采用凌陽最新推出的nsp(microcontroller and signal processor)16位微處理器芯片(以下簡稱nsp)。圍繞nsp所形成的16位nsp系列單片機(jī)(以下簡稱nsp家族)采用的是模塊式集成結(jié)構(gòu),它以nsp內(nèi)核為中心集成不同規(guī)模的rom、ram和功能豐富的各種外設(shè)接口部件,如圖3.1所示。 圖3.1 nsp家族的模塊式結(jié)構(gòu)nsp內(nèi)核是一個(gè)通用的核結(jié)構(gòu)。除此之外的其它功能模塊均為可選結(jié)構(gòu),亦即這種結(jié)構(gòu)可大可小或可有可無。借助這種通用結(jié)構(gòu)附加可選結(jié)構(gòu)的積木式的構(gòu)成,便可形成各種不同系列派生產(chǎn)品,以適合不同的應(yīng)用場合。這樣做無疑會(huì)使每一種派生產(chǎn)品具有更強(qiáng)的功能和更低的成本。nsp家族有以下特點(diǎn): 體積小、集成度高、可靠性好且易于擴(kuò)展nsp家族把各功能部件模塊化地集成在一個(gè)芯片里,內(nèi)部采用總線結(jié)構(gòu),因而減少了各功能部件之間的連線,提高了其可靠性和抗干擾能力。另外,模塊化的結(jié)構(gòu)易于系統(tǒng)擴(kuò)展,以適應(yīng)不同用戶的需求。 具有較強(qiáng)的中斷處理能力nsp家族的中斷系統(tǒng)支持10個(gè)中斷向量及10余個(gè)中斷源,適合實(shí)時(shí)應(yīng)用領(lǐng)域。 高性能價(jià)格比nsp家族片內(nèi)帶有高尋址能力的rom、靜態(tài)ram和多功能的i/o口。另外,nsp的指令系統(tǒng)提供具有較高運(yùn)算速度的16位16位的乘法運(yùn)算指令和內(nèi)積運(yùn)算指令,為其應(yīng)用增添了dsp功能,使得nsp家族運(yùn)用在復(fù)雜的數(shù)字信號(hào)處理方面既很便利,又比專用的dsp芯片廉價(jià)。 功能強(qiáng)、效率高的指令系統(tǒng)nsp指令系統(tǒng)的指令格式緊湊,執(zhí)行迅速,并且其指令結(jié)構(gòu)提供了對高級語言的支持,這可以大大縮短產(chǎn)品的開發(fā)時(shí)間。 低功耗、低電壓nsp家族采用cmos制造工藝,同時(shí)增加了軟件激發(fā)的弱振方式、空閑方式和掉電方式,極大地降低了其功耗。另外,nsp家族的工作電壓范圍大,能在低電壓供電時(shí)正常工作,且能用電池供電。這對于其在野外作業(yè)等領(lǐng)域中的應(yīng)用具有特殊的意義。 spce061a 是繼nsp系列產(chǎn)品spce500a等之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。與spce500a不同的是,在存儲(chǔ)器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,spce061a里只內(nèi)嵌32k字的閃存(flash)。較高的處理速度使nsp能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。因此,與spce500a相比,以nsp為核心的spce061a微控制器是適用于數(shù)字語音識(shí)別應(yīng)用領(lǐng)域產(chǎn)品的一種最經(jīng)濟(jì)的選擇。其主要性能有: 內(nèi)核采用16位nsp微處理器; 工作電壓(cpu)vdd為2.43.6v ,i/o端口高電平vddh為2.45.5v; cpu時(shí)鐘:0.32mhz49.152mhz ; 內(nèi)置2k字sram和32k flash; 可編程音頻處理; 晶體振蕩器; 系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電僅為2a3.6v; 兩個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值); 兩個(gè)10位dac(數(shù)-模轉(zhuǎn)換)輸出通道; 32位通用可編程輸入/輸出端口; 14個(gè)中斷源可來自定時(shí)器a / b,時(shí)基,兩個(gè)外部時(shí)鐘源輸入,鍵喚醒 具備觸鍵喚醒的功能; 使用凌陽音頻編碼sacm_s240方式(2.4kb/s),能容納210s的語音數(shù)據(jù); 32768hz實(shí)時(shí)時(shí)鐘,由鎖相環(huán)pll振蕩器提供系統(tǒng)時(shí)鐘信號(hào); 7通道10位電壓模/數(shù)轉(zhuǎn)換器(adc)和單通道聲音模-數(shù)轉(zhuǎn)換器; 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(agc)功能; 具備串行設(shè)備接口; 具有低電壓復(fù)位(lvr)功能和低電壓監(jiān)測(lvd)功能; 內(nèi)置在線仿真電路ice(in- circuit emulator)接口; 具有保密能力; 具有watch dog功能。spce061a的結(jié)構(gòu)如圖3.2所示。其主要功能模塊有并行i/o端口、模/數(shù)轉(zhuǎn)換adc、存儲(chǔ)ram&flash、定時(shí)器/計(jì)數(shù)器t/c(脈寬調(diào)制輸出pwm)、watchdog、異步串行通信口uart、指令寄存器ir、設(shè)備串行口sio、低電壓檢測lvd(低電壓復(fù)位)等。圖3.2 spce061a的結(jié)構(gòu)spce061a有兩種封裝片,一種為84個(gè)引腳,plcc84封裝形式;另一種為80個(gè)引腳,lqfp80封裝。而我選用的是84個(gè)引腳的,它的排列如圖3.3所示。圖3.3 spce061a plcc84封裝引腳排列圖在plcc84封裝中,有15個(gè)空余腳,在使用時(shí)這15個(gè)空余腳懸浮。在lqfp80封裝中有9個(gè)空余腳,在使用時(shí)這9個(gè)空余腳接地。 下面為lqfp84封裝管腳功能介紹。表3.1 lqfp84封裝管腳功能 管腳名稱管腳功能ioa0ioa15(4148,5360)i/oa口,16個(gè)iob0iob15(51,8176,6864)i/ob口,16個(gè)osci 13振蕩器輸入,采用石英晶振時(shí),接晶振osco 12振蕩器輸出,采用石英晶振時(shí),接晶振res_b 6復(fù)位信號(hào)輸入端,低電平有效ice_en 16ice使能端,接在線調(diào)試器probe的使能腳ice_enice_clk 17ice時(shí)鐘腳,接在線調(diào)試器probe的時(shí)鐘腳ice_clkice_sda 18ice數(shù)據(jù)腳,接在線調(diào)試器probe的數(shù)據(jù)腳ice_sdapvin 20程序保密設(shè)定電源輸入腳pfuse 29程序保密設(shè)定輸入腳dac1 21音頻輸入通道1dac2 22音頻輸入通道2vref2 23 2 v參考電壓輸入腳agc 25語音輸入自動(dòng)增益控制引腳opi 26microphone第二級運(yùn)放輸入腳micout 27microphone第一級運(yùn)放輸入腳micn 28microphone正向輸入腳micp 33microphone負(fù)向輸入腳vrt 35a/d轉(zhuǎn)換參考電壓輸入腳vcm 34adc參考電壓輸入腳vmic 37microphone電源sleep 63睡眠狀態(tài)指示,當(dāng)cpu進(jìn)入睡眠狀態(tài)時(shí),輸出高電平vcp 8鎖相環(huán)壓控振蕩器阻容輸入端xpomt pvpp xtest(61.69.14)出廠測試管腳,使用時(shí)懸空即可vddh 51.52.75i/o電平參考電壓輸入端,當(dāng)輸入?yún)⒖茧妷簽?v/3.3v時(shí),i/o輸入、輸出高電平為5v/3.3vvdd 7鎖相環(huán)pll電源vss 9鎖相環(huán)pll地vss 19.24模擬信號(hào)地vss 38.49.50.62數(shù)字信號(hào)地vdd 15.36數(shù)字信號(hào)電源 spce061a單片機(jī)的集成度很高,因此它的最小應(yīng)用系統(tǒng)構(gòu)成非常方便,只需在osco、osci端接石英晶體振蕩器及諧振電容,在復(fù)位端接復(fù)位電路,在鎖相環(huán)壓控振蕩器的阻容輸入vcp端接上相應(yīng)的電容、電阻后即可工作,其它不用的電源端和接地端可接上104小電容或100f的去偶電容,以提高抗干擾能力,如圖3.4所示。圖3.4 spce061a最小系統(tǒng)在基本了解了spce061a單片機(jī)之后,需要對它的硬件結(jié)構(gòu)做一定了解,下面將就spce061a單片機(jī)的硬件結(jié)構(gòu)做一定介紹。3.2 spce061a硬件結(jié)構(gòu)spce061a芯片內(nèi)部集成了ice (在線實(shí)時(shí)仿真/除錯(cuò)器)、flash (閃存)、sram (靜態(tài)內(nèi)存)、通用i/o端口、定時(shí)器/計(jì)數(shù)器、中斷控制、cpu時(shí)鐘鎖相環(huán)(pll)、adc (模擬數(shù)字轉(zhuǎn)換器)、dac (數(shù)字模擬轉(zhuǎn)換器)輸出、uart (通用異步串行輸入輸出接口)、sio (串行輸入輸出接口)、低電壓監(jiān)測/低電壓復(fù)位等模塊。1 .nsp的內(nèi)核結(jié)構(gòu)nsp的核心由總線、alu算術(shù)邏輯運(yùn)算單元、寄存器組、中斷系統(tǒng)及堆棧等部分組成。其結(jié)構(gòu)如圖3.5所示。圖3.5 nsp的核心結(jié)構(gòu)2 .spce061a片內(nèi)存儲(chǔ)器結(jié)構(gòu)spce061a的內(nèi)存地址映像如圖3.6所示。芯片內(nèi)的內(nèi)存有2k字的sram(包括堆棧區(qū))和32k字閃存(flash)。 圖3.6 spce061a內(nèi)存映像表sram的地址范圍從0x0000到0x07ff。前64個(gè)字,即0x00000x003f地址范圍內(nèi),可采用6位地址直接地址尋址方法,存取速度為2個(gè)cpu時(shí)鐘周期;其余范圍內(nèi)(0x00400x07ff)內(nèi)存的存取速度則為3個(gè)cpu時(shí)鐘周期。 32k字的內(nèi)嵌閃存被劃分為128個(gè)頁,每個(gè)頁存儲(chǔ)容量為256個(gè)字。它們在cpu正常運(yùn)行狀態(tài)下均可通過程序擦除或?qū)懭?。全?2k字閃存均可在ice工作方式下被寫入或被擦除。為了安全起見,不對用戶開放整體擦除功能。3.spce061a的輸入/輸出接口輸入/輸出接口(也可簡稱為i/o端口)是單片機(jī)與外設(shè)交換信息的通道。輸入端口負(fù)責(zé)從外界接收檢測信號(hào)、鍵盤信號(hào)等各種開關(guān)量信號(hào)。輸出端口負(fù)責(zé)向外界傳送由內(nèi)部電路產(chǎn)生的處理結(jié)果、顯示信息、控制命令、驅(qū)動(dòng)信號(hào)等。nsp內(nèi)有并行和串行兩種方式的i/o口。并行口線路成本較高,但是傳輸速率也較高;與并行口相比,串行端口的傳輸速率較低但可以節(jié)省大量的線路成本。spce061a有兩個(gè)16位的通用并行i/o口:a口和b口。這兩個(gè)端口的每一位都可通過編程單獨(dú)定義成輸入或輸出口。 4. 時(shí)鐘電路nsp的時(shí)鐘電路是采用晶體振蕩器電路。圖3.7為spce061a時(shí)鐘電路的接線圖。外接晶振采用32768hz。推薦使用外接32768hz晶振,因rc阻容振蕩的電路時(shí)鐘不如外接晶振準(zhǔn)確。 圖3.7 spce061a與振蕩器的連接32768hz實(shí)時(shí)時(shí)鐘通常用于鐘表、實(shí)時(shí)時(shí)鐘延時(shí)以及其它與時(shí)間相關(guān)類產(chǎn)品。spce061a通過對32768hz實(shí)時(shí)時(shí)鐘來源分頻,而提供了多種實(shí)時(shí)時(shí)鐘中斷。例如,用作喚醒的中斷來源irq5_2hz,表示系統(tǒng)每隔0.5秒被喚醒一次,由此可作為精確的計(jì)時(shí)基準(zhǔn)。除此之外,spce061a 還支持rtc振蕩器強(qiáng)振模式/自動(dòng)模式的轉(zhuǎn)換。 5. 系統(tǒng)時(shí)鐘32768hz的實(shí)時(shí)時(shí)鐘經(jīng)過pll倍頻電路以后,產(chǎn)生系統(tǒng)時(shí)鐘頻率fosc,fosc再經(jīng)過分頻得到cpu時(shí)鐘頻率(cpuclk),可通過設(shè)定p_systemclock(寫)(7013h)單元來控制。預(yù)設(shè)的fosc、cpuclk分別為24.576mhz和fosc/8。用戶可以通過對p_systemclock單元編程完成對系統(tǒng)時(shí)鐘和cpu時(shí)鐘頻率的定義。 此外,32768hz rtc振蕩器有兩種工作方式:強(qiáng)振模式和自動(dòng)弱振模式。處于強(qiáng)振模式時(shí),rtc振蕩器始終運(yùn)行在高耗能的狀態(tài)下。處于自動(dòng)弱振模式時(shí),系統(tǒng)在上電復(fù)位(power on reset) 后的前7.5秒內(nèi)處于強(qiáng)振模式,然后自動(dòng)切換到弱振模式以降低功耗。cpu被喚醒后預(yù)設(shè)的時(shí)鐘頻率為fosc/8,用戶可以根據(jù)需要調(diào)整該值。 在spce061a內(nèi),p_systemclock(寫)(7013h)單元控制著系統(tǒng)時(shí)鐘和cpu時(shí)鐘。第02位用來改變cpuclk,若將第02位設(shè)為“111”可以使cpu時(shí)鐘停止工作,系統(tǒng)切換至低功耗的睡眠狀態(tài);通過設(shè)置該單元的第57位可以改變系統(tǒng)時(shí)鐘的頻率。此外,在睡眠狀態(tài)下,通過設(shè)置該單元的第4位可以開打或關(guān)閉32768hz實(shí)時(shí)時(shí)鐘。6. 模擬數(shù)字轉(zhuǎn)換器adcspce061a有八個(gè)10位adc通道,其中一個(gè)通道(mic_in)用于語音輸入,模擬信號(hào)經(jīng)過自動(dòng)增益控制器和放大器放大后進(jìn)行a/d轉(zhuǎn)換。其余七個(gè)通道(line_in)和ioa06引腳共享,可以將輸入的模擬信號(hào)(如電壓信號(hào)) 轉(zhuǎn)換為數(shù)字信號(hào)。spce061a的a/d轉(zhuǎn)換范圍是整個(gè)輸入范圍,即0vavdd。無效的a/d模擬信號(hào)(超過vdd+0.3v或是低于vss0.3v)將影響轉(zhuǎn)換電路的工作范圍,從而降低adc的性能。 adc的最大輸入電壓由p_adc_ctrl(寫)(7015h)的第七和第八位的值決定。第7位vextref決定了adc的參考電壓為avdd或是外部參考電壓。第8 位v2vrefb決定了2v電壓源是否起作用。如果起作用,可向vextref引腳輸入2v電壓。此反饋回路把a(bǔ)dc的最高參考電壓設(shè)置為2v。如果指定的參考電壓源的值不超過avdd,它還可以被當(dāng)作adc的最高參考電壓。 在adc內(nèi),由dac0和逐次逼近寄存器sar(successive approximation register)組成逐次逼近式模擬數(shù)字轉(zhuǎn)換器。向p_adc_ctrl(寫)(7015h)單元第0位寫入“1”,可以啟用adc。系統(tǒng)的默認(rèn)值為ade=0(關(guān)閉adc)。當(dāng)ade=1時(shí),應(yīng)對p_adc_ctrl(寫)(7015h)和p_adc_mux_ctrl(寫)(702bh)的其它控制位進(jìn)行合理的設(shè)置。 通過設(shè)置p_adc_mux_ctrl(寫)(702bh)的第02位,可以為a/d 轉(zhuǎn)換選擇輸入通道。通道包括mic_in和line_in兩種。工作時(shí),如果mic_in通道和line_in通道都處于直接工作模式(direct mode),程序會(huì)檢查p_adc_ctrl(w)(7015h)的第15位。只有當(dāng)目前的ad轉(zhuǎn)換完成后,才能切換通道。當(dāng)mic_in通道處于定時(shí)器鎖存狀態(tài)時(shí),它可以優(yōu)先存取adc。然后,可以從p_adc_mux_ctrl (讀) (702bh)的failb位得知,line_inadc 是否被mic_in adc打斷。 使用者可通過讀取p_adc(讀)(7014h)單元,取得從mic_in 通道輸入的模擬信號(hào)轉(zhuǎn)換結(jié)果。使用者可通過讀取p_adc_linein_data(讀)(702ch)單元,取得從指定的line_in 通道輸入的模擬信號(hào)轉(zhuǎn)換結(jié)果。 選擇mic_in通道后,可通過設(shè)置p_dac_ctrl(寫)(702ah)的第三和四 位,選擇a/d轉(zhuǎn)換的觸發(fā)事件。當(dāng)p_adc(讀)(7014h)單元的數(shù)據(jù)被讀取/timera/timerb事件發(fā)生后,可執(zhí)行a/d轉(zhuǎn)換。然而,在選擇line_in通道后,只有在讀p_adc_linein_data(讀)(702ch)單元的內(nèi)容后,才執(zhí)行a/d 轉(zhuǎn)換,且不能使用定時(shí)器鎖存數(shù)據(jù)。 進(jìn)入睡眠狀態(tài)后,adc被關(guān)閉(包括agc和vmic)。注意,供電復(fù)位后不論adc是否被啟用,vmic信號(hào)都預(yù)設(shè)為on。vmic用于向外部的mic提供電源,vmic =avdd。即,vmic的狀態(tài)和adc的狀態(tài)無關(guān)。所以,不使用vmic時(shí),使用者必須把p_adc_ctrl(寫)( 7015h)單元的第1位mic_enb設(shè)為1,以關(guān)閉vmic。 硬件adc 的最高速率限定為(fosc/32/16)hz , 如果速率超過此值, 當(dāng)從p_adc(讀)(7014h)/ p_adc_linein_data(讀)(702ch)單元讀出數(shù)據(jù)時(shí)會(huì)發(fā)生錯(cuò)誤。 p_adc_ctrl(寫)(7015h)單元的第5 位dac_out,可用來選擇兩通道音頻dac 的最大輸出。最大輸出電流可為2ma 或是默認(rèn)值3ma。dac_out 的設(shè)置可改變dac 輸出的功率。在adc自動(dòng)方式被啟用后,會(huì)產(chǎn)生出一個(gè)啟動(dòng)信號(hào),即rdy=0。此時(shí),dac0 的輸出電壓與外部輸入電壓進(jìn)行比較,以盡快找出外部電壓的數(shù)字值。逐次逼近式控制首先將sar中數(shù)據(jù)的最高有效位設(shè)為1,而其它位全設(shè)為0,即10 0000 0000b。這時(shí)dac0輸出電壓vdac0為1/2 最大值,用來與輸入電壓vin進(jìn)行比較。如果vinvdac0,則保持原先設(shè)置為1的位(最高有效位)仍為1;否則,該位會(huì)被清為0。接著,逐次逼近式控制又將下一位試設(shè)為1,其余低位依舊設(shè)為0,即110000 0000b,vdac0與vin進(jìn)行比較的結(jié)果若vinvdac0,則仍保持原先設(shè)置位的值,否則該位便清為0。這個(gè)逐次逼近的過程一直會(huì)延續(xù)到10 位中的所有位都被測試之后,a/d轉(zhuǎn)換的結(jié)果便會(huì)保存在sar內(nèi)。 當(dāng)10 位a/d 轉(zhuǎn)換完成時(shí),rdy 會(huì)被設(shè)1。此時(shí),使用者通過讀取p_adc (7014h)或p_adc_mux_data(702ch)單元可以獲得10 位的a/d 轉(zhuǎn)換數(shù)據(jù)。而從該單元讀取數(shù)據(jù)后,又會(huì)使rdy 自動(dòng)清為0來重新開始進(jìn)行a/d 轉(zhuǎn)換。若未讀取p_adc (7014h) 或p_adc_mux_data(702ch)單元中的數(shù)據(jù),rdy 仍會(huì)保持為1,并且不會(huì)啟動(dòng)下一次的a/d 轉(zhuǎn)換。外部信號(hào)由lin_in17即ioa06或通道m(xù)ic_in 輸入。從lin_in17輸入的模擬信號(hào)直接被送入緩沖器p_adc_mux_data(702ch);從mic_in 輸入的模擬信號(hào)則要經(jīng)過緩沖器和放大器。放大器的增益值可由外部線路來調(diào)整,因此agc 可以控制mic_in 輸入信號(hào)的值在一定的范圍內(nèi)。7 .dac方式音頻輸出spce061a為音頻輸出提供兩個(gè)dac通道:dac1和dac2,分別由經(jīng)由dac1和dac2引腳輸出。dac的輸出范圍從0x0000 到0xffff。如果dac的輸出數(shù)據(jù)被處理成pcm數(shù)據(jù),必須讓dac輸出數(shù)據(jù)的直流電位保持為0x8000,且僅有高10位的數(shù)據(jù)有作用。dac1和dac2的輸出數(shù)據(jù)應(yīng)寫入p_dac1(寫) (7017)和p_dac2(寫) (7016)單元。上電復(fù)位后,兩個(gè)dac均被自動(dòng)打開,此時(shí)會(huì)消耗少量的電流(幾毫安)。所以如不需要用它們,盡量將p_dac_ctrl(寫)(702ah)單元的第1位設(shè)為1,關(guān)閉dac輸出。dac的直流電壓必須保證平穩(wěn)地變化。否則會(huì)由于電壓的突變引起揚(yáng)聲器產(chǎn)生雜音。采用ramp up/down技術(shù),可以減緩電壓變化的幅度,從而輸出高品質(zhì)的音頻數(shù)據(jù)。它的應(yīng)用場合包括:被喚醒/上電復(fù)位后首次使用dac時(shí),上電復(fù)位功能被關(guān)閉/進(jìn)入睡眠狀態(tài)之前。圖3.8為音頻輸出的結(jié)構(gòu)圖 圖3.8 音頻輸出的結(jié)構(gòu)圖8. 看門狗計(jì)數(shù)器watchdogwatchdog是用來監(jiān)視系統(tǒng)的正常運(yùn)作。當(dāng)系統(tǒng)正常運(yùn)行時(shí),每隔一定的周期就必須清除watchdog計(jì)數(shù)器。如果在限定的時(shí)間內(nèi),watchdog計(jì)數(shù)器沒有被清除,cpu就會(huì)認(rèn)為系統(tǒng)已經(jīng)無法正常工作,將會(huì)進(jìn)行系統(tǒng)復(fù)位(reset)。 spce061a的watchdog的清除時(shí)間周期為0.75秒。因?yàn)閣atchdog的溢出復(fù)位信號(hào)watchdog_reset是由4hz時(shí)基信號(hào)經(jīng)4分頻之后產(chǎn)生的,即每4個(gè)4hz時(shí)基信號(hào)(1秒)將會(huì)產(chǎn)生一個(gè)watchdog_reset信號(hào),如圖3.9所示。 圖3.9 watchdog的結(jié)構(gòu)和信號(hào)時(shí)序 以上是對spce061a單片機(jī)硬件結(jié)構(gòu)的簡單介紹,接下來是對中斷系統(tǒng)的介紹。3.3 中斷系統(tǒng)中斷是為處理器對外界異步事件具有處理能力而設(shè)置的,中斷技術(shù)的引入把計(jì)算機(jī)的發(fā)展和應(yīng)用大大地推進(jìn)一步。因此中斷功能的強(qiáng)弱已成為衡量一臺(tái)計(jì)算機(jī)性能的重要指標(biāo)。spce061a系列單片機(jī)中斷系統(tǒng),是凌陽16位單片機(jī)中中斷功能較強(qiáng)的一種,它可以提供14個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級,可實(shí)現(xiàn)兩級中斷嵌套功能。用戶可以用關(guān)中斷指令(或復(fù)位)屏蔽所有的中斷請求,也可以用開中斷指令使cpu接受中斷申請。每一個(gè)中斷源可以用軟件獨(dú)立控制為開或關(guān)中斷狀態(tài);但中斷級別不可用軟件設(shè)置。spce061a的結(jié)構(gòu)給出了三種類型的中斷:軟件中斷、異常中斷和事件中斷。1) 軟件中斷軟件中斷是由軟件指令break產(chǎn)生的中斷。軟件中斷的向量地址為fff5h2)異常中斷異常中斷表示為非常重要的事件,一旦發(fā)生,cpu必須立即進(jìn)行處理。目前spce061a定義的異常中斷只有復(fù)位一種。通常,spce061a系統(tǒng)復(fù)位可以由以下三種情況引起:上電、看門狗計(jì)數(shù)器溢出以及系統(tǒng)電源低于電壓低限。不論什么情況引起復(fù)位,都會(huì)使復(fù)位引腳的電位變低,進(jìn)而使程序指針pc指向由一個(gè)復(fù)位向量(fff7h)所指的系統(tǒng)復(fù)位程序入口地址。3)事件中斷事件中斷(可簡稱“中斷”,以下提到的“中斷”均為事件中斷)一般產(chǎn)生于片內(nèi)設(shè)部件或由外設(shè)中斷輸入引腳引入的某個(gè)事件。這種中斷的開通/禁止,由相應(yīng)獨(dú)立使能和相應(yīng)的irq或fiq總使能控制。spce061a的事件中斷可采用兩種方式:快速中斷請求即fiq中斷和中斷請求即irq中斷。這兩種中斷都有相應(yīng)的總使能。中斷向量和中斷源:共有9個(gè)中斷向量即fiq、irq0irq6及uart irq。這9個(gè)中斷向量共可安置14個(gè)中斷源供用戶使用,其中有3個(gè)中斷源可安置在fiq或irq0irq2中,另有10個(gè)中斷源則可安置在irq3irq6中。還有一個(gè)專門用于通用異步串行口uart的中斷源,須安置在uart irq向量中。spce061a單片機(jī)的中斷系統(tǒng)有14個(gè)中斷源分為兩個(gè)定時(shí)器溢出中斷、兩個(gè)外部中斷、一個(gè)串行口中斷、一個(gè)觸鍵喚醒中斷、7個(gè)時(shí)基信號(hào)中斷、pwm音頻輸出中斷。每個(gè)中斷入口地址對應(yīng)多個(gè)中斷源,因此在中斷服務(wù)程序中需通過查詢中斷請求位來判斷是那個(gè)中斷源請求的中斷。spce061a單片機(jī)的中斷服務(wù)流程圖3.10所示圖3.10 中斷服務(wù)流程圖3.4 音頻壓縮算法我們所說的音頻是指頻率在20 hz20 khz的聲音信號(hào),分為:波形聲音、語音和音樂三種,其中波形聲音就是自然界中所有的聲音,是聲音數(shù)字化的基礎(chǔ)。語音也可以表示為波形聲音,但波形聲音表示不出語言、語音學(xué)的內(nèi)涵。語音是對講話聲音的一次抽象。是語言的載體,是人類社會(huì)特有的一種信息系統(tǒng),是社會(huì)交際工具的符號(hào)。音樂與語音相比更規(guī)范一些,是符號(hào)化了的聲音。但音樂不能對所有的聲音進(jìn)行符號(hào)化。樂譜是符號(hào)化聲音的符號(hào)組,表示比單個(gè)符號(hào)更復(fù)雜的聲音信息內(nèi)容。將模擬的(連續(xù)的)聲音波形數(shù)字元化(離散化),以便利數(shù)字計(jì)算機(jī)進(jìn)行處理的過程,主要包括采樣和量化兩個(gè)方面。數(shù)字音頻的質(zhì)量取決于:采樣頻率和量化位數(shù)這兩個(gè)重要參數(shù)。此外,聲道的數(shù)目、相應(yīng)的音頻設(shè)備也是影響音頻質(zhì)量的原因。凌陽常用的音頻形式和壓縮算法有以下幾種:1) 波形編碼:sub-band即sacm-a2000特點(diǎn):高質(zhì)量、高碼率,適于高保真語音音樂。2) 參數(shù)編碼:聲碼器(vocoder)模型表達(dá),抽取參數(shù)與激勵(lì)信號(hào)進(jìn)行編碼。如:sacm-s240。特點(diǎn):壓縮比大,計(jì)算量大,音質(zhì)不高,廉價(jià)!3) 混合編碼:celp即sacm-s480特點(diǎn):綜合參數(shù)和波形編碼之優(yōu)點(diǎn)。除此之外,還具有fm音樂合成方式即sacm-ms01。而壓縮分無損壓縮和有損壓縮。無損壓縮一般指:磁盤文件,壓縮比低:2:14:1。而有損壓縮則是指:音視頻文件,壓縮比可高達(dá)100:1。凌陽音頻壓縮算法根據(jù)不同的壓縮比分為以下幾種:sacm-a2000:壓縮比為8:,8:1.25,8:1.5。該壓縮算法壓縮比較小,所以具有高質(zhì)量、高碼率的特點(diǎn)適用于高保真音樂和語音。sacm-s480: 壓縮比為80:3,80:4.5,該壓縮算法壓縮比較大, 存儲(chǔ)容量大,音質(zhì)介于a2000和s240之間,適用于語音播放。sacm-s240: 壓縮比為80:1.5,該壓縮算法的壓縮比較大,價(jià)格低,適用于對保真度要求不高的場合, 如玩具類產(chǎn)品的批量生產(chǎn),編碼率僅為2.4 kbps。sacm_ms01:該算法較繁瑣,但只要具備音樂理論、配器法和聲學(xué)知識(shí)了解spce編曲格式者均可嘗試。4.硬件電路設(shè)計(jì)4.1 設(shè)計(jì)思路在選定了本設(shè)計(jì)所需的硬件之后就需要進(jìn)行電路的設(shè)計(jì)工作了,只有正確合理的電路設(shè)計(jì)才能夠?qū)我坏碾娖髟M合成一個(gè)能夠?qū)崿F(xiàn)各種功能的作品。因此電路設(shè)計(jì)是整個(gè)制作過程中最重要的,而要完成電路設(shè)計(jì)就得對凌陽spce061a單片機(jī)非常熟悉。 spce061a內(nèi)置8通道10位模-數(shù)轉(zhuǎn)換器,其中7個(gè)通道用于將模擬量信號(hào) (例如電壓信號(hào)) 轉(zhuǎn)換為數(shù)字量信號(hào), 可以直接通過引線(ioa06)輸入。另外一個(gè)通道只用于語音輸入,即通過內(nèi)置自動(dòng)增益控制放大器的麥克風(fēng)通道(mic_in)輸入。實(shí)際上可以把模數(shù)轉(zhuǎn)換器(adc,analog to digital converter)看作是一個(gè)實(shí)現(xiàn)模/數(shù)信號(hào)轉(zhuǎn)換的編碼器。在adc內(nèi),由數(shù)模轉(zhuǎn)換器dac0和逐次逼近寄存器sar組成逐次逼近式模-數(shù)轉(zhuǎn)換器。溫度采集電路spce061aad 轉(zhuǎn)換語音播報(bào)溫度計(jì)算圖4.1 設(shè)計(jì)思路4.2 具體設(shè)計(jì)本設(shè)計(jì)選用了凌陽spce061a單片機(jī)和一個(gè)5k負(fù)溫度系數(shù)熱敏電阻相結(jié)合,通過凌陽spce061a單片機(jī)的中斷系統(tǒng)實(shí)時(shí)監(jiān)測熱敏電阻兩端的電壓,經(jīng)過微處理器計(jì)算得到溫度值,再由音頻壓縮算法處理后播報(bào)出實(shí)時(shí)溫度。4.2.1 電阻測溫原理熱敏電阻是近年來發(fā)展起來的一種新型半導(dǎo)體感溫元件。由于它具有靈敏度高、體積小、重量輕、熱慣性小、壽命長以及價(jià)格便宜等優(yōu)點(diǎn),因此應(yīng)用非常廣泛。負(fù)系數(shù)熱敏電阻熱敏電阻與普通熱電阻不同,它具有負(fù)的電阻溫度特性,當(dāng)溫度升高時(shí),電阻值減??;當(dāng)溫度降低時(shí),電阻值增大,其特性曲線如下:圖4.2 熱敏電阻溫度特性曲線熱敏電阻的阻值-溫度特性曲線是一條指數(shù)曲線,非線性度較大,因此在使用時(shí)要進(jìn)行線性化處理,線性化處理雖然能改善熱敏電阻的特性曲線,但比較復(fù)雜。為此常在要求不高的一般應(yīng)用中,作出在一定的溫度范圍內(nèi)溫度與阻值成線性關(guān)系的假定,以簡化計(jì)算。熱敏電阻的應(yīng)用是為了感知溫度為此給熱敏電阻以恒定的電流,測量電阻兩端就得到一個(gè)電壓,然后就可以通過下列公式求得溫度:t = t0 kvt其中:t-被測溫度t0-與熱敏電阻特性有關(guān)的溫度參數(shù)k-與熱敏電阻特性有關(guān)的系數(shù)vt-熱敏電阻兩端的電壓根據(jù)這一公式,如能測得熱敏電阻兩端的電壓vt,再知道參數(shù)t0和系數(shù)k,則可計(jì)算出熱敏電阻的環(huán)境溫度,也就是被測的溫度。固定電阻r阻值的選取:mfd-502-34型熱敏電阻線性化較好的一段是在-20到80,為了在最高溫度和最低溫度時(shí)使被測信號(hào)基本接近滿量程值,采取線性區(qū)域內(nèi)中間某一點(diǎn)溫度的阻值作為固定電阻的值。它們分壓后,ad的輸入電壓是ad的輸入電壓范圍一半。在25時(shí)熱敏電阻的阻值為5k,所以選取固定電阻r的值為5k。在-20時(shí)熱敏電阻的阻值為37.399k,熱敏電阻兩端電壓vrt=2.9v,接近a/d輸入電壓的上限3.3v;在80時(shí)熱敏電阻的阻值為0.796k,熱敏電阻兩端電壓vrt=0.45v,接近a/d輸入電壓的下限0v。在溫度線性化較好的區(qū)域內(nèi)spce061a的a/d值都沒有達(dá)到極限值。按照0接法時(shí),t0=76,k=0.1022,根據(jù)以上公式和參數(shù),測出熱敏電阻兩端的電壓就可以求出被測溫度。4.2.2 溫度計(jì)算語音播報(bào)溫度計(jì)設(shè)計(jì)工作的主要內(nèi)容,就是把熱敏電阻兩端電壓值經(jīng)a/d轉(zhuǎn)換變成數(shù)字量,然后通過軟件方法計(jì)算得到溫度值,再經(jīng)過凌陽spce061a單片機(jī)的音頻壓縮算法得到溫度值的音頻,經(jīng)喇叭播報(bào)出來。在設(shè)計(jì)中,系統(tǒng)在凌陽spce061a單片機(jī)的基礎(chǔ)上擴(kuò)展了一個(gè)按鍵,接于spce061a的ioa15,當(dāng)按鍵按下時(shí),就進(jìn)行a/d轉(zhuǎn)換初始化,并進(jìn)行四次a/d轉(zhuǎn)換, spce061a的a/d轉(zhuǎn)換結(jié)果在高10位,每次將其移入低10位再計(jì)算四次平均值作為ad有效結(jié)果返回;為了提高準(zhǔn)確度,變量tempad、temper都采用浮點(diǎn)數(shù),計(jì)算完成用語音將溫度值報(bào)出來。由于在放音時(shí)播放函數(shù)會(huì)改變一些參數(shù),為了穩(wěn)定起見,在每次a/d轉(zhuǎn)換前都做一次初始化。由于每個(gè)熱敏電阻的特性并非一樣、與熱敏電阻串聯(lián)的固定電阻的不準(zhǔn)確等原因,每支溫度計(jì)在整個(gè)測量范圍內(nèi)至少找5點(diǎn)進(jìn)行校正,并適當(dāng)?shù)男薷膮?shù)以達(dá)到最佳狀態(tài)。4.2.3 工作電源電路凌陽單片機(jī)的工作電壓為3.3v,獲得工作電壓有兩種方式: (1)通過兩個(gè)二極管連續(xù)降壓使5v的電壓降至3.6v,供芯片使用。這種方法比較簡單,但電壓值不是很精確。(2)通過spy0029可獲得準(zhǔn)確的3.3v電壓,如圖4.3圖 4.3是電源部分的電路,4.5v直流電壓經(jīng)過spy0029后產(chǎn)生3.3v給整個(gè)系統(tǒng)供電。 spy0029是凌陽公司設(shè)計(jì)的電壓調(diào)整ic,采用cmos工藝。spy0029具有靜態(tài)電流低、驅(qū)動(dòng)能力強(qiáng)、線性調(diào)整出色等特點(diǎn)。 圖 4.3中的vddh3為spce061a的i/o電平參考,接spce061a的51腳,這種接法使得i/o輸出高電平為3.3v;vddp為pll鎖相環(huán)電源,接spce061a的7腳;vdd和vdda分別為數(shù)字電源與模擬電源,分別接spce061a的15腳和36腳;avss1是模擬地,接spce061a的24腳;vss是數(shù)字地,接spce061a的38腳; avss2接音頻輸出電路的avss2。圖4.3 電源電路4.2.4 放音模塊電路放音利用的是spce061a內(nèi)部的dac,電路如圖 4.4所示。圖中的spy0030是凌陽公司的產(chǎn)品。和lm386相比,spy0030還是比較有優(yōu)勢的,比如lm386工作電壓需在4v以上,而spy0030僅需2.4v (兩顆電池)即可工作;lm386輸出功率100mw以下,spy0030約700mw。圖4.4 放音電路4.2.5 總電路原理圖和實(shí)物圖圖4.5 數(shù)據(jù)采集原理圖圖4.6 spce061a圖4.7 實(shí)物圖連接如圖4.7所示,該實(shí)物圖溫度采集部分由于mfd50234熱敏電阻沒買上,用5k的電阻代替與固定電阻r串聯(lián),5k電阻由一個(gè)4.7k和300串聯(lián)組成,如果結(jié)果播出25c,那么說系統(tǒng)設(shè)計(jì)成功。在選擇熱敏電阻的時(shí)候,曾考慮了利用鉑電阻pt100,其在0100c度范圍內(nèi)的電阻100138.51,電阻變化相對比較小,需要電橋電壓轉(zhuǎn)換,運(yùn)算放大器的放大。5 軟件設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)的開發(fā)中,軟件的設(shè)計(jì)是最復(fù)雜和困難的,大部分情況下工作量都較大,特別是對那些控制系統(tǒng)比較復(fù)雜的情況。如果是機(jī)電一體化的設(shè)計(jì)人員,往往需要同時(shí)考慮單片機(jī)的軟硬件資源分配。下面將詳細(xì)介紹語音播報(bào)溫度計(jì)的軟件設(shè)計(jì)過程。5.1 總體設(shè)計(jì)本設(shè)計(jì)為語音播報(bào)溫度計(jì),設(shè)計(jì)采用凌陽spce061a單片機(jī)作為處理器。該單片機(jī)是一款16位結(jié)構(gòu)的微控制器,有較高的處理速度。溫度傳感器選用的是負(fù)溫度系數(shù)熱敏電阻,該熱敏電阻溫度特性曲線線性化較好的一段是在2080,因此設(shè)計(jì)出的溫度計(jì)測量范圍就是2080。系統(tǒng)在凌陽spce061a單片機(jī)的基礎(chǔ)上擴(kuò)展了一個(gè)按鈕,接于凌陽spce061a單片機(jī)的ioa15,當(dāng)按下按鈕時(shí),系統(tǒng)采集溫度,計(jì)算并換算出溫度值播報(bào)出來。要實(shí)現(xiàn)該設(shè)計(jì),還得有軟件的支持,對本設(shè)計(jì)的程序編寫選用的是c語言和凌陽匯編。c的編譯器把c語言代碼編譯為匯編代碼,匯編編譯器對匯編代碼進(jìn)行編譯成為目標(biāo)文件。鏈接器將目標(biāo)文件、資源文件連接成整體,形成一個(gè)可在芯片上運(yùn)行的可執(zhí)行文件。圖5.1 代碼流動(dòng)結(jié)構(gòu)示意nsp的匯編指令只有單字和雙字兩種,其結(jié)構(gòu)緊湊,且最大限度地考慮了對高級語言中c語言的支持。另外,在需要尋址的各類指令中的每一個(gè)指令都可通過與6種尋址方式的組合而形成一個(gè)指令子集,目的是為增強(qiáng)指令應(yīng)用的靈活性和實(shí)用性。而算邏運(yùn)算類指令中的16位16位的乘法運(yùn)算指令(mul)和內(nèi)積運(yùn)算指令(muls),又提供了對數(shù)字信號(hào)處理應(yīng)用的支持。此外,復(fù)合式的移位算邏操作指令允許操作數(shù)在經(jīng)過alu的算邏操作前可先由移位器進(jìn)行各種移位處理,然后再經(jīng)alu的算邏運(yùn)算操作。本設(shè)計(jì)的程序大體框架如圖6.2所示語音播報(bào)溫度計(jì)鍵盤掃描a/d轉(zhuǎn)換溫度計(jì)算語音處理溫度播報(bào)系統(tǒng)初始化圖5.2 語音播報(bào)溫度計(jì)程序模塊各個(gè)模塊之間通過主程序調(diào)用連接在一起,圖5.3為程序結(jié)構(gòu)。系統(tǒng)主程序系統(tǒng)資源模塊系統(tǒng)初始化a/d轉(zhuǎn)換鍵 盤掃 描系統(tǒng)時(shí) 鐘中 斷初始化a/d四次a/d轉(zhuǎn)化 圖5.3 程序結(jié)構(gòu)圖5.2 詳細(xì)設(shè)計(jì)在確定了寫程序所用的語言后,正式進(jìn)入程序的編寫,下面是關(guān)于詳細(xì)設(shè)計(jì)的具體介紹。5.2.1 流程圖總體程序流程圖開 始系統(tǒng)初始化四次a/d轉(zhuǎn)換溫度a/d采樣a/d轉(zhuǎn)化初始化播報(bào)實(shí)時(shí)溫度溫度計(jì)算播報(bào)溫度超出鍵盤掃描有按鍵嗎溫度超出 y n n y圖5.4 總體程序流程圖各個(gè)模塊流程圖如下:1鍵盤掃描流程圖圖5.5 鍵盤掃描程序2a/d轉(zhuǎn)換流程圖圖5.6 a/d轉(zhuǎn)換流程圖3溫度計(jì)算流程圖 數(shù)據(jù)采集數(shù)據(jù)上傳開 始溫度計(jì)算結(jié) 束圖5.7 溫度計(jì)算流程圖4溫度播報(bào)流程圖采集溫度值開 始尋找語音文件溫度播報(bào)結(jié) 束圖5.8 溫度播報(bào)流程圖5.2.2 編程實(shí)現(xiàn)一個(gè)優(yōu)秀的單片機(jī)程序設(shè)計(jì)人員,設(shè)計(jì)的軟件程序結(jié)構(gòu)是合理、緊湊和高效的。同一種任務(wù),有時(shí)用主程序完成是合理的,但有時(shí)需子程序執(zhí)行效率最高,占用cpu資源最少。一些要求不高的中斷任務(wù)或單片機(jī)的速度足夠高,可以使用程序掃描查詢也可以用中斷申請執(zhí)行,這也要具體的問題具體分析。對于多中斷系統(tǒng),但它們存在矛盾時(shí),需區(qū)分輕重緩急,主要和次要的區(qū)別對待。并適當(dāng)?shù)厥跈?quán)予不同的中斷優(yōu)先級別。在單片機(jī)的軟件設(shè)計(jì)中,任務(wù)可能也很多,程序量很大,這種情況下一般都需把程序分成若干個(gè)功能獨(dú)立的模塊,這也是軟件設(shè)計(jì)中常用的方法,這也即俗稱的“化整為零”的方法。理論和實(shí)踐都證明,這種方法是行之有效的。這樣可以分階段地對單個(gè)模塊進(jìn)行設(shè)計(jì)和調(diào)試,一般情況下單個(gè)模塊利用仿真工具即可將它們調(diào)試好,最后再將它們有機(jī)的聯(lián)系起來,構(gòu)成一個(gè)完整的控制程序,并對它們進(jìn)行聯(lián)合調(diào)試即可。對于復(fù)雜的多任務(wù)實(shí)時(shí)控制系統(tǒng),要處理的數(shù)據(jù)就非常龐大,同時(shí)又要求對多個(gè)控制對象進(jìn)行實(shí)時(shí)控制,要求對各控制對象的實(shí)時(shí)數(shù)據(jù)進(jìn)行快速的處理和響應(yīng),這對系統(tǒng)的實(shí)時(shí)性、“并行性”提出了更高的要求。這種情況下一般要求采用實(shí)在時(shí)地任務(wù)操作系統(tǒng),并要求這個(gè)系統(tǒng)具備優(yōu)良的實(shí)時(shí)控制能力。基于以上幾點(diǎn),我編寫了以下幾部分語音播報(bào)溫度計(jì)的程序:1.主程序main.c :#include a2000.h#define rsp_current_temp 00 /現(xiàn)在溫度是#defin
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 魚都特色小鎮(zhèn)合作協(xié)議
- 腦梗塞臨床護(hù)理
- 生產(chǎn)運(yùn)營管理:企業(yè)戰(zhàn)略和運(yùn)作策略
- 管理人員培訓(xùn)心得體會(huì)模版
- 2025屆江蘇省泰州市部分地區(qū)八年級數(shù)學(xué)第二學(xué)期期末統(tǒng)考試題含解析
- 高二英語備課組工作總結(jié)
- 關(guān)于“互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽的需求調(diào)研
- 醫(yī)學(xué)寫作翻譯課程介紹
- 2025年會(huì)計(jì)試用期工作總結(jié)模版
- 新質(zhì)生產(chǎn)力與財(cái)政
- 2025陜西氫能產(chǎn)業(yè)發(fā)展有限公司所屬單位招聘(101人)筆試參考題庫附帶答案詳解
- 【MOOC】《學(xué)術(shù)交流英語》(東南大學(xué))章節(jié)中國大學(xué)慕課答案
- 2024年美國戶外露營裝備市場現(xiàn)狀及上下游分析報(bào)告
- 《建筑基坑工程監(jiān)測技術(shù)標(biāo)準(zhǔn)》(50497-2019)
- GB/T 2934-2007聯(lián)運(yùn)通用平托盤主要尺寸及公差
- 拘留所教育課件01
- 常見皮膚病鑒別診斷圖譜
- NJB-2綜合監(jiān)測儀說明書
- 26個(gè)英文字母發(fā)音-音標(biāo)-自然拼讀
- 殘魄點(diǎn)穴術(shù)(秘
- 咨詢收費(fèi)暫行規(guī)定的通知》(計(jì)價(jià)格【1999】1283號(hào))
評論
0/150
提交評論