畢業(yè)設(shè)計(jì)(論文)-熱敏電阻測溫系統(tǒng)的溫度采集模塊的設(shè)計(jì).doc_第1頁
畢業(yè)設(shè)計(jì)(論文)-熱敏電阻測溫系統(tǒng)的溫度采集模塊的設(shè)計(jì).doc_第2頁
畢業(yè)設(shè)計(jì)(論文)-熱敏電阻測溫系統(tǒng)的溫度采集模塊的設(shè)計(jì).doc_第3頁
畢業(yè)設(shè)計(jì)(論文)-熱敏電阻測溫系統(tǒng)的溫度采集模塊的設(shè)計(jì).doc_第4頁
畢業(yè)設(shè)計(jì)(論文)-熱敏電阻測溫系統(tǒng)的溫度采集模塊的設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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ī)對(duì)溫度進(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)對(duì)單片機(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)用,對(duì)數(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è)步驟,本章將對(duì)凌陽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)提供了對(duì)高級(jí)語言的支持,這可以大大縮短產(chǎn)品的開發(fā)時(shí)間。 低功耗、低電壓nSP家族采用CMOS制造工藝,同時(shí)增加了軟件激發(fā)的弱振方式、空閑方式和掉電方式,極大地降低了其功耗。另外,nSP家族的工作電壓范圍大,能在低電壓供電時(shí)正常工作,且能用電池供電。這對(duì)于其在野外作業(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第二級(jí)運(yùn)放輸入腳MICOUT 27Microphone第一級(jí)運(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ī)之后,需要對(duì)它的硬件結(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è)字。它們?cè)贑PU正常運(yùn)行狀態(tài)下均可通過程序擦除或?qū)懭搿H?2K字閃存均可在ICE工作方式下被寫入或被擦除。為了安全起見,不對(duì)用戶開放整體擦除功能。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通過對(duì)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,F(xiàn)osc再經(jīng)過分頻得到CPU時(shí)鐘頻率(CPUCLK),可通過設(shè)定P_SystemClock(寫)(7013H)單元來控制。預(yù)設(shè)的Fosc、CPUCLK分別為24.576MHz和Fosc/8。用戶可以通過對(duì)P_SystemClock單元編程完成對(duì)系統(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電壓。此反饋回路把ADC的最高參考電壓設(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)對(duì)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或通道MIC_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í)序 以上是對(duì)SPCE061A單片機(jī)硬件結(jié)構(gòu)的簡單介紹,接下來是對(duì)中斷系統(tǒng)的介紹。3.3 中斷系統(tǒng)中斷是為處理器對(duì)外界異步事件具有處理能力而設(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)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套功能。用戶可以用關(guān)中斷指令(或復(fù)位)屏蔽所有的中斷請(qǐng)求,也可以用開中斷指令使CPU接受中斷申請(qǐng)。每一個(gè)中斷源可以用軟件獨(dú)立控制為開或關(guān)中斷狀態(tài);但中斷級(jí)別不可用軟件設(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的事件中斷可采用兩種方式:快速中斷請(qǐng)求即FIQ中斷和中斷請(qǐng)求即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è)中斷入口地址對(duì)應(yīng)多個(gè)中斷源,因此在中斷服務(wù)程序中需通過查詢中斷請(qǐng)求位來判斷是那個(gè)中斷源請(qǐng)求的中斷。SPCE061A單片機(jī)的中斷服務(wù)流程圖3.10所示圖3.10 中斷服務(wù)流程圖3.4 音頻壓縮算法我們所說的音頻是指頻率在20 Hz20 kHz的聲音信號(hào),分為:波形聲音、語音和音樂三種,其中波形聲音就是自然界中所有的聲音,是聲音數(shù)字化的基礎(chǔ)。語音也可以表示為波形聲音,但波形聲音表示不出語言、語音學(xué)的內(nèi)涵。語音是對(duì)講話聲音的一次抽象。是語言的載體,是人類社會(huì)特有的一種信息系統(tǒng),是社會(huì)交際工具的符號(hào)。音樂與語音相比更規(guī)范一些,是符號(hào)化了的聲音。但音樂不能對(duì)所有的聲音進(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à)格低,適用于對(duì)保真度要求不高的場合, 如玩具類產(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ì)就得對(duì)凌陽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阻值的選?。篗FD-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,電阻變化相對(duì)比較小,需要電橋電壓轉(zhuǎn)換,運(yùn)算放大器的放大。5 軟件設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)的開發(fā)中,軟件的設(shè)計(jì)是最復(fù)雜和困難的,大部分情況下工作量都較大,特別是對(duì)那些控制系統(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ì),還得有軟件的支持,對(duì)本設(shè)計(jì)的程序編寫選用的是C語言和凌陽匯編。C的編譯器把C語言代碼編譯為匯編代碼,匯編編譯器對(duì)匯編代碼進(jìn)行編譯成為目標(biāo)文件。鏈接器將目標(biāo)文件、資源文件連接成整體,形成一個(gè)可在芯片上運(yùn)行的可執(zhí)行文件。圖5.1 代碼流動(dòng)結(jié)構(gòu)示意nSP的匯編指令只有單字和雙字兩種,其結(jié)構(gòu)緊湊,且最大限度地考慮了對(duì)高級(jí)語言中C語言的支持。另外,在需要尋址的各類指令中的每一個(gè)指令都可通過與6種尋址方式的組合而形成一個(gè)指令子集,目的是為增強(qiáng)指令應(yīng)用的靈活性和實(shí)用性。而算邏運(yùn)算類指令中的16位16位的乘法運(yùn)算指令(Mul)和內(nèi)積運(yùn)算指令(Muls),又提供了對(duì)數(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ī)的速度足夠高,可以使用程序掃描查詢也可以用中斷申請(qǐng)執(zhí)行,這也要具體的問題具體分析。對(duì)于多中斷系統(tǒng),但它們存在矛盾時(shí),需區(qū)分輕重緩急,主要和次要的區(qū)別對(duì)待。并適當(dāng)?shù)厥跈?quán)予不同的中斷優(yōu)先級(jí)別。在單片機(jī)的軟件設(shè)計(jì)中,任務(wù)可能也很多,程序量很大,這種情況下一般都需把程序分成若干個(gè)功能獨(dú)立的模塊,這也是軟件設(shè)計(jì)中常用的方法,這也即俗稱的“化整為零”的方法。理論和實(shí)踐都證明,這種方法是行之有效的。這樣可以分階段地對(duì)單個(gè)模塊進(jìn)行設(shè)計(jì)和調(diào)試,一般情況下單個(gè)模塊利用仿真工具即可將它們調(diào)試好,最后再將它們有機(jī)的聯(lián)系起來,構(gòu)成一個(gè)完整的控制程序,并對(duì)它們進(jìn)行聯(lián)合調(diào)試即可。對(duì)于復(fù)雜的多任務(wù)實(shí)時(shí)控制系統(tǒng),要處理的數(shù)據(jù)就非常龐大,同時(shí)又要求對(duì)多個(gè)控制對(duì)象進(jìn)行實(shí)時(shí)控制,要求對(duì)各控制對(duì)象的實(shí)時(shí)數(shù)據(jù)進(jìn)行快速的處理和響應(yīng),這對(duì)系統(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論