智能體溫計(jì)設(shè)計(jì)報(bào)告_第1頁(yè)
智能體溫計(jì)設(shè)計(jì)報(bào)告_第2頁(yè)
智能體溫計(jì)設(shè)計(jì)報(bào)告_第3頁(yè)
智能體溫計(jì)設(shè)計(jì)報(bào)告_第4頁(yè)
智能體溫計(jì)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

用單片機(jī)制作智能體溫計(jì)班級(jí):機(jī)制08-4姓名:黃金凱 學(xué)號(hào):23號(hào)目錄摘要…………… 1關(guān)鍵詞………… 1一:引言……… 1二:智能體溫計(jì)的根本組成框圖…………… 1三:主要模塊的方案器件選擇……………… 21,電源器件的選擇………………… 22,溫度傳感器的選擇……………… 23,放大器的選擇…………………… 24,ad轉(zhuǎn)換器的選擇………………… 25,顯示溫度器件…………………… 26,語(yǔ)音報(bào)值模塊…………………… 3四:主要模塊的方案具體實(shí)現(xiàn)……………… 31,電源模塊的設(shè)計(jì)………………… 32,前端溫度采集局部……………… 33,前端溫度電壓信號(hào)放大局部…… 44,ad采樣局部的實(shí)現(xiàn)……………… 55,超溫報(bào)警電路…………………… 66,液晶顯示局部…………………… 87,語(yǔ)音報(bào)值電路…………………… 108,系統(tǒng)程序的設(shè)計(jì)………………… 12五:系統(tǒng)調(diào)試………………… 13六:設(shè)計(jì)總結(jié)………………… 14七:參考文獻(xiàn)………………… 15附錄1:整機(jī)電路圖附錄2:完整的程序附錄3:元器件清單附錄4:制作實(shí)物圖智能體溫計(jì)設(shè)計(jì)[摘要]本報(bào)告主要表達(dá)了應(yīng)用單片機(jī)AT89S52實(shí)現(xiàn)的智能體溫計(jì)主要的功能、硬件的組成和軟件的設(shè)計(jì)。該系統(tǒng)的功能是通過(guò)ad590溫度傳感器對(duì)溫度進(jìn)行采集,然后通過(guò)A/D轉(zhuǎn)換器ADC0832進(jìn)行模數(shù)轉(zhuǎn)換,傳給單片機(jī)進(jìn)行處理,用12864大屏幕液晶實(shí)時(shí)顯示溫度。并且可以自由設(shè)置報(bào)警溫度,在當(dāng)前溫度超過(guò)報(bào)警溫度時(shí),蜂鳴器發(fā)出滴滴聲報(bào)警,語(yǔ)音局部采用isd4004語(yǔ)音芯片進(jìn)行每分鐘報(bào)出當(dāng)前溫度一次。整個(gè)系統(tǒng)結(jié)構(gòu)緊湊、簡(jiǎn)單可靠、操作靈活、功能強(qiáng)、性能價(jià)格比高,較好地滿足了各種需要測(cè)溫場(chǎng)合的需要。[關(guān)鍵詞]單片機(jī)溫度傳感器模數(shù)轉(zhuǎn)換實(shí)時(shí)顯示報(bào)警語(yǔ)音報(bào)值一:引言系統(tǒng)采用兩節(jié)1.5V電池供電,由于單片機(jī)及運(yùn)放使用電源大于3v,所以首先得進(jìn)行升壓以便驅(qū)動(dòng)芯片。采用ad590溫度傳感器保證了精度和線性化,通過(guò)儀用放大電路將溫度電壓信號(hào)放大以便AD采樣。AD輸入接5V穩(wěn)壓二極管保證了輸入電壓不大于5V。單片機(jī)每秒采樣一次電壓即每秒鐘更新一次溫度。通過(guò)編程設(shè)置報(bào)警溫度,當(dāng)溫度大于設(shè)定溫度時(shí)報(bào)警,而且可以使用外中斷對(duì)報(bào)警溫度進(jìn)行修改。通過(guò)編程可以使得語(yǔ)音芯片每分鐘語(yǔ)音報(bào)出當(dāng)前溫度。二:智能體溫計(jì)的根本組成框圖溫度傳感器A/D轉(zhuǎn)換信號(hào)放大溫度傳感器A/D轉(zhuǎn)換信號(hào)放大報(bào)警電報(bào)警電源AT89S52單片機(jī)液晶實(shí)時(shí)顯示溫度AT89S52單片機(jī)液晶實(shí)時(shí)顯示溫度語(yǔ)音報(bào)值語(yǔ)音報(bào)值圖1圖1是智能體溫計(jì)的根本組成框圖。主要有溫度傳感器,信號(hào)放大電路,模數(shù)轉(zhuǎn)換器,單片機(jī),液晶顯示局部,語(yǔ)音報(bào)數(shù)局部組成,和電源局部組成。三:主要模塊的方案器件選擇1:電源器件的選擇電源是整個(gè)電路中主要的部件,由于運(yùn)放使用12V電壓,單片機(jī)等使用5V電壓,所以使用了升壓模塊。參考max網(wǎng)站datasheet確定兩個(gè)方案:方案一:使用max608芯片,max608輸入電壓范圍為1.8-16.5V,所具有的脈頻調(diào)制控制模式能夠提供非常高的效率,輸出電壓可以固定5V或可調(diào)至12V。另外此芯片5V電壓輸出電流可達(dá)0.5A,從而保證了各器件的正常供電。方案二:使用max631系列芯片,工作原理原理類似,優(yōu)點(diǎn)是外圍電路簡(jiǎn)單只需一個(gè)電容和一個(gè)電感即可供電,但是有個(gè)致命的缺點(diǎn)就是輸出電流太小,最大僅40ma。故不采用此方案。2:溫度傳感器的選擇溫度傳感器是控制整個(gè)系統(tǒng)精度最主要器件,選擇適宜的器件不僅有利于提高溫度采集精度,更有利于提高系統(tǒng)的穩(wěn)定性。 方案一:采用熱敏電阻。熱敏電阻價(jià)格廉價(jià),對(duì)溫度靈敏,原理簡(jiǎn)單,但線性度不好,如不進(jìn)行線性補(bǔ)償,那么對(duì)于本設(shè)計(jì)歸一化輸出的要求,難于到達(dá)設(shè)計(jì)精度;如要對(duì)非線性進(jìn)行補(bǔ)償,那么電路結(jié)構(gòu)復(fù)雜,難于調(diào)整。故不采用。 方案二:采用集成溫度傳感器。集成溫度傳感器ad590具有線性好、精度高、靈敏度高、體積小、使用方便等優(yōu)點(diǎn)。它是美國(guó)模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。AD590的測(cè)溫范圍為-55℃~+150℃,能滿足本設(shè)計(jì)的0~50度測(cè)量要求。根據(jù)官方datasheet:流過(guò)器件電流的微安數(shù)等于器件所處環(huán)境溫度的熱力學(xué)溫度〔開爾文〕度數(shù)。AD590線性電流輸出為13:放大器的選擇選用lm358運(yùn)放,lm358具有體積小,精度高的特點(diǎn)4:ad轉(zhuǎn)換器的選擇方案一:選用adc0809。ADC0809是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,采用cmos工藝制造,為28引腳封裝的并行芯片,由于體溫計(jì)體簡(jiǎn)單的功能用不上8通道,體溫計(jì)體積一般不是很大,故并行芯片不利于設(shè)計(jì)優(yōu)化,而且adc0809與單片機(jī)接口復(fù)雜,占用IO口比擬多,故不采用此方案。 方案二:選用adc0832。ADC0832是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的一種8位分辨率、雙通道A/D轉(zhuǎn)換芯片。它體積小,輸入輸出電平與ttl/cmos相兼容,5V電平供電時(shí),輸入電平在0-5V之間。而且轉(zhuǎn)換時(shí)間僅25us,采用串行的結(jié)構(gòu)更有利于縮小設(shè)備的體積和留出更多的IO口以供擴(kuò)展更多功能。而且速度方面也不慢。5:顯示溫度器件 方案一:采用數(shù)碼管顯示,如果采用數(shù)碼管動(dòng)態(tài)掃描顯示的話,太占用單片機(jī)的資源,因?yàn)槿绻麊纹粚?duì)數(shù)碼管掃描的話,那么數(shù)碼管將滅掉。還有如果采用靜態(tài)顯示的話那么得增加器件,太復(fù)雜化。還有更重要的是數(shù)碼管很耗電。綜上所述,不采用此方案。 方案二:采用12864液晶顯示,此種顯示方式不耗電,而且屏幕大可以顯示更多的內(nèi)容,而且不占用cpu資源,如果想跟新顯示內(nèi)容那么只需發(fā)送相應(yīng)的指令即可。操作簡(jiǎn)單速度快,故采用此方案。6:語(yǔ)音報(bào)值模塊 方案一:通過(guò)A/D轉(zhuǎn)換器、單片機(jī),存儲(chǔ)器,D\A轉(zhuǎn)換器實(shí)現(xiàn)聲音信號(hào)的采樣、處理、存儲(chǔ)和實(shí)現(xiàn)。首先將聲音信號(hào)放大,通過(guò)AD轉(zhuǎn)換器采樣將語(yǔ)音模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并由單片機(jī)和處理存放到存儲(chǔ)器中,實(shí)現(xiàn)錄音操作。在錄、放音過(guò)程中由單片機(jī)控制D/A轉(zhuǎn)換器,將存儲(chǔ)器中的數(shù)據(jù)轉(zhuǎn)化成聲音信號(hào)。此方案安裝調(diào)試復(fù)雜,集成度低。方案二:采用ISD4004-08mp語(yǔ)音錄放集成電路。這是一種永久記憶型語(yǔ)音錄放電路,錄音時(shí)間最大為8分鐘,可重復(fù)錄放10萬(wàn)次。該芯片采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣值可直接存儲(chǔ)在片內(nèi)單個(gè)EEPROM單元中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂、音調(diào)和效果聲。此外,ISD4004還省去了A/D和D/A轉(zhuǎn)換器。其集成度較高,內(nèi)部包括前置放大器、內(nèi)部時(shí)鐘、定時(shí)器、采樣時(shí)鐘、濾波器、自動(dòng)增益控制、邏輯控制、模擬收發(fā)器、解碼器等。ISD4004內(nèi)部EEPROM存儲(chǔ)單元均勻分為2400段,每段時(shí)間長(zhǎng)度為200ms,可以自由組合段數(shù)目。因此,選擇方案二。四:主要模塊的方案具體實(shí)現(xiàn)1:電源模塊的設(shè)計(jì)參考書籍最終確定模塊及外圍電路設(shè)計(jì)如下:圖2電源模塊 圖2所示是兩個(gè)由電池供電的升壓模塊,一路12V用于運(yùn)放供電,5V用于單片機(jī)等芯片的供電。2:前端溫度采集局部Ad590產(chǎn)生的電流與絕對(duì)溫度成正比,它可接收的工作電壓為4V-30V,檢測(cè)的溫度范圍為-55℃-+150℃,它有非常好的線性輸出性能,溫度每增加1+5VI=273.2+T(I單位uA,T為攝氏溫度)+5VAD590輸入電路圖3所示: 攝氏溫度℃AD590電流uA經(jīng)10kΩ電壓V0273.22.73210283.22.83220293.22.93230303.23.03240313.23.13250323.23.232 圖3ad590傳感器3:前端溫度電壓信號(hào)放大局部圖4前端信號(hào)放大電路 由AD590溫度與電流關(guān)系可知,當(dāng)溫度為0℃時(shí),流過(guò)10k電阻輸出電壓為2.732V,當(dāng)溫度為50℃時(shí),電壓為3.232V,溫差為0.5V。為了實(shí)現(xiàn)系統(tǒng)前端局部歸一化輸出,即0~+50℃線性對(duì)應(yīng)0~5V;必須得采用放大器。將0.5V圖4是一個(gè)改良型的儀用放大器電路,由圖可知,他是由兩個(gè)運(yùn)放按同相輸入接發(fā)組成第一級(jí)差分放大電路,后面的運(yùn)放組成第二級(jí)差分放大電路,在第一級(jí)放大電路中v1,v2分別加到運(yùn)放的同相端,r1和兩個(gè)r2組成的反應(yīng)網(wǎng)絡(luò),引入了負(fù)反應(yīng),由虛短和虛斷知Vr1=v1-v2Vr1/R1=〔v3-v4〕/〔2R2+R1〕解得: v3-v4=(1+2R2/R1)(v1-v2)輸出與輸入的關(guān)系為:Vo=-R4/R3(1+2R2/R1)(v1-v2)放大倍數(shù): Av=-R4/R3(1+2R2/R1)所以選擇適宜的阻值就可以得到適宜的放大倍數(shù),圖中R1是200Ω的可調(diào)電阻,用于微調(diào)放大倍數(shù),R2為200Ω,R3為20kΩ,R4為100kΩ。當(dāng)r1調(diào)至約100Ω時(shí),就可以得到10倍的放大倍數(shù)。R1還有補(bǔ)償電壓差不是0.5v的作用。(注:運(yùn)放使用12V電壓供電) 可變電阻r0是調(diào)零電阻,當(dāng)溫度為0時(shí),調(diào)節(jié)r0的阻值測(cè)量輸出電壓為0v后固定r0的值不在改變。當(dāng)溫度為50℃4:ad采樣局部的實(shí)現(xiàn)圖5是adc0832與單片機(jī)的接口電路圖,vi接前級(jí)放大電路vo局部。片選cs接P1.0口,時(shí)鐘接P1.1口,adc0832的數(shù)據(jù)輸出線DO和數(shù)據(jù)輸入線DI不是一起工作的,是分時(shí)復(fù)用的,因而可以接在一起,用單片機(jī)的一個(gè)IO口P1.2來(lái)控制。Gnd接地線,vcc接電源再編寫相應(yīng)程序即可工作。圖5ADC0832與單片機(jī)接口ADC0832的軟件實(shí)現(xiàn)下列圖6是adc0832的時(shí)序圖,圖7是程序的流程圖。由時(shí)序圖和流程圖編寫程序如下:圖6ADC0832時(shí)序圖程序如下:開始ADC0832: SETBAD_CS ;片選無(wú)效,一個(gè)轉(zhuǎn)換周期開始開始 CLRAD_CLK ;為第一個(gè)脈沖作準(zhǔn)備 CLRAD_CS ;選中adc0832芯片 SETBAD_DI ;起始約定高電平使能芯片 SETBAD_CLK ;使能芯片 CLRAD_CLK ;形成一個(gè)脈沖,將一發(fā)送到adc0832 SETBAD_DI ;高電平1,狀態(tài)字10選擇單通道0 SETBAD_CLK ;產(chǎn)生三個(gè)脈沖送起始信號(hào)和狀態(tài)字 CLRAD_CLK ;產(chǎn)生三個(gè)脈沖送起始信號(hào)和狀態(tài)字 CLRAD_DI ; SETBAD_CLK ; CLRAD_CLK ; SETBAD_DI ;第三個(gè)脈沖下沉之后,置1兩次讀取溫度 SETBAD_CLK ;兩次讀取溫度 MOVR7,#8 ;讀取轉(zhuǎn)換后的數(shù)據(jù),讀入到A AD1: SETBAD_CLK ;不相等 CLRAD_CLK ;不相等 MOVC,AD_DO ;比擬兩次讀取的溫度 RLCA ;比擬兩次讀取的溫度 DJNZR7,AD1 MOVB,A MOVR7,#8 ;再次讀取溫度 AD2: MOVC,AD_DO RRCA相等 SETBAD_CLK相等 CLRAD_CLK DJNZR7,AD2釋放芯片,保存數(shù)據(jù)并退出 CJNEA,B,ADC0832 ;比擬兩次讀取的溫度釋放芯片,保存數(shù)據(jù)并退出 SETBAD_CS MOVADTEMP,A RET 圖7adc流程圖5:超溫報(bào)警電路圖8是一個(gè)溫度超過(guò)預(yù)設(shè)溫度的報(bào)警電路,由圖知當(dāng)溫度超過(guò)報(bào)警溫度時(shí)給P3.6口一個(gè)頻率約為1000hz的方波即可驅(qū)動(dòng)蜂鳴器發(fā)出滴滴聲。編程時(shí)注意退出蜂鳴時(shí)一定要置P3.6口為高電平,否那么8550一直導(dǎo)通會(huì)燒壞蜂鳴器。電阻R1是為了防止燒壞發(fā)射結(jié)而增加。圖8蜂鳴器與單片機(jī)接口蜂鳴器軟件實(shí)現(xiàn)起來(lái)比擬簡(jiǎn)單。只要在每次溫度取樣后與設(shè)定溫度比擬,如果大與或等于設(shè)定溫度,那么報(bào)警一下。如果小于設(shè)定溫度,那么跳過(guò)不執(zhí)行報(bào)警。局部主要程序如下:INT_T0: PUSHACC ;保護(hù)現(xiàn)場(chǎng)T0中斷:50ms時(shí)間到 PUSHPSWT0中斷:50ms時(shí)間到 CLRTR0 ;關(guān)閉定時(shí)器 INCCOUNT ;計(jì)數(shù)加一,滿20次即1s跟新一次溫度 MOVA,COUNT CJNEA,#20,INTOUT MOVCOUNT,#0Count計(jì)數(shù)加1CCount計(jì)數(shù)加1Count到20了嗎? MOVA,ADTEMP ;保存溫度值否LCALLTIAOZHEN否是ISDOUT: LCALLBEEP ;調(diào)用蜂鳴器子程序是INTOUT: MOVTH0,#3CH ;設(shè)置定時(shí)器初值執(zhí)行溫度轉(zhuǎn)化執(zhí)行數(shù)據(jù)處理執(zhí)行溫度轉(zhuǎn)化執(zhí)行數(shù)據(jù)處理 SETBTR0 ;開啟定時(shí)器 POPPSW POPACC RETIBEEP: MOVA,31H調(diào)用蜂鳴器函數(shù)并與設(shè)定溫度比擬調(diào)用蜂鳴器函數(shù)并與設(shè)定溫度比擬 MOVA,32H CJNEA,42H,BEEP1 MOVA,33H CJNEA,43H,BEEP1大于設(shè)定溫度嗎?BEEP1: JNCSTARTBE大于設(shè)定溫度嗎? LJMPBEOUT否STARTBE:MOVR7,#2否 BE2: MOVR6,#255是 BE1: CPLP3.6是 MOVR5,#200 DJNZR5,$蜂鳴器報(bào)警蜂鳴器報(bào)警 MOVR5,#200 DJNZR5,$ DJNZR6,BE1定時(shí)器設(shè)初值并開啟退出定時(shí)器設(shè)初值并開啟退出BEOUT: SETBP3.6 RET圖9蜂鳴器流程圖注:溫度采集后,被放在adtemp中,之后又被調(diào)整為三個(gè)數(shù)即圖9蜂鳴器流程圖十位,個(gè)位和十分位,分別存儲(chǔ)在31h〔十位〕,32h〔個(gè)位〕,33h(十分位)。設(shè)定溫度也分為三個(gè)數(shù)存儲(chǔ),這樣比擬時(shí)一一比擬即可知道當(dāng)前溫度有沒有超出設(shè)定溫度。6:液晶顯示局部 本體溫計(jì)的溫度顯示局部采用st7920控制器的lcd12864液晶顯示。其好處是可以顯示更多的內(nèi)容,也可以顯示溫度曲線。查看st7920的控制器手冊(cè),其與單片機(jī)的接口電路如圖7所示,b/ljp是控制液晶背光跳線。圖10液晶與單片機(jī)接口各引腳主要作用如下表:引腳號(hào)標(biāo)示說(shuō)明接單片機(jī)引腳PIN1GND接地PIN2VCC接vcc電源PIN3VO比照度調(diào)節(jié)PIN4RS指令或數(shù)據(jù)選擇〔高電平數(shù)據(jù)存放器,低電平指令存放器P2.0PIN5R/W讀或?qū)憯?shù)據(jù)〔高電平讀,低電平寫〕P2.1PIN6SCLK允許信號(hào)P2.2PIN7-14D0-D78位數(shù)據(jù)線PIN15PSB高電平為并行模式PIN19LED+背光正極(本電路通過(guò)跳線接vcc控制背光)PIN20LED-背光負(fù)極12864液晶采用st7920控制器,可以顯示8字4行漢字,或者顯示4行16字半寬字符如數(shù)字和ASCII嗎等。它可以并行操作也可以串行操作,本設(shè)計(jì)中采用8位并行的方式來(lái)對(duì)液晶進(jìn)行控制顯示。要想對(duì)液晶顯示漢字首先得對(duì)液晶寫入初始化程序,即寫入一組指令集即可,當(dāng)然這涉及到12864底層驅(qū)動(dòng)的編寫,如發(fā)送狀態(tài)字程序,發(fā)送數(shù)據(jù)程序,檢測(cè)液晶忙程序,還有連續(xù)發(fā)送多個(gè)漢字的程序,限于篇幅這里不在詳細(xì)說(shuō)明,直接給出程序。 液晶在整個(gè)系統(tǒng)中負(fù)責(zé)顯示開機(jī)歡送詞,顯示當(dāng)前溫度和報(bào)警溫度的功能。由于系統(tǒng)運(yùn)行中有些是固定的顯示,如開機(jī)歡送詞和一些提示文字在整個(gè)運(yùn)行中一次顯示后面無(wú)需再次改變,所以可以在初始化中把這些信息全部顯示出來(lái)。以后就不用再次修改。而實(shí)時(shí)溫度的顯示只需當(dāng)溫度變化后再發(fā)送指令更新液晶中的數(shù)據(jù)即可。本程序涉及的主要指令集如下所示:指令碼功能D7D6D5D4D3D2D1D0去除顯示00000001將ddram填滿20h〔空格〕,并且設(shè)定ddram的地址計(jì)數(shù)器〔ac〕到00h進(jìn)入點(diǎn)設(shè)定000001I/DS指定在數(shù)據(jù)的讀取與寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位顯示狀態(tài)開關(guān)00001DCBD=1:整體顯示onC=1:游標(biāo)onB=1:游標(biāo)位置反白允許功能設(shè)定001DL0RE00DL=0/1:4/8位數(shù)據(jù)RE=0:根本指令集操作設(shè)定ddram地址10Ac5Ac4Ac3Ac2Ac1Ac0設(shè)置顯示位置第一行:80h-87h。第二行:90h-97h第三行:88h-8fh。第四行:98h-9fh讀取忙標(biāo)志BFAc6Ac5AC4AC3AC2AC1AC0讀忙標(biāo)志〔bf〕判斷液晶內(nèi)部工作是否完成 再指定的位置顯示漢字流程如下:發(fā)送顯示位置的ddram地址發(fā)送高字節(jié)發(fā)送低字節(jié)。開機(jī)初始化顯示流程圖如圖12所示程序如下:LCDINIT: MOVA,#30H ;液晶初始化程序 LCALLLCDSEND_I ;8位數(shù)據(jù)并行,根本指令操作集 MOVA,#0CH開始 LCALLLCDSEND_I ;整體顯示開,游標(biāo)關(guān),禁止游標(biāo)位置反白開始 MOVA,#06H LCALLLCDSEND_I MOVA,#01H LCALLLCDSEND_I ;清楚顯示,游標(biāo)歸位發(fā)送相關(guān)初始化指令發(fā)送相關(guān)初始化指令 MOVA,#92H ;顯示開機(jī)歡送詞 LCALLLCDSEND_I MOVZISHU,#8 MOVDPTR,#TAB3 LCALLSENDZIJIE ;顯示“歡送使用”開機(jī)顯示兩行歡送詞 MOVA,#88H開機(jī)顯示兩行歡送詞 LCALLLCDSEND_I MOVZISHU,#16 MOVDPTR,#TAB4 LCALLSENDZIJIE ;顯示“智能型電子溫度計(jì)”歡送詞延時(shí)顯示 MOVR7,#20 ;開機(jī)畫面的顯示延時(shí)歡送詞延時(shí)顯示 DE1: MOVR6,#200 DE2: MOVR5,#200 DJNZR5,$ DJNZR6,DE2 DJNZR7,DE1顯示電子溫度計(jì)等內(nèi)容 MOVA,#01H顯示電子溫度計(jì)等內(nèi)容 LCALLLCDSEND_I ;清屏游標(biāo)歸位 MOVA,#81H LCALLLCDSEND_I MOVZISHU,#10 MOVDPTR,#TAB6返回 LCALLSENDZIJIE ;在第一行顯示“電子溫度計(jì)”返回 MOVA,#90H LCALLLCDSEND_I圖11初始化流程 MOVZISHU,#10圖11初始化流程 MOVDPTR,#TAB1 LCALLSENDZIJIE ;在第二行前五個(gè)空格顯示“當(dāng)前溫度:” MOVA,#97H LCALLLCDSEND_I MOVZISHU,#2 MOVDPTR,#TAB2 LCALLSENDZIJIE ;在第二行最后一個(gè)空格顯示“℃”圖標(biāo) MOVA,#88H LCALLLCDSEND_I MOVZISHU,#10 MOVDPTR,#TAB5 LCALLSENDZIJIE ;在第三行前五個(gè)空格顯示“報(bào)警溫度:” MOVA,#8FH LCALLLCDSEND_I MOVZISHU,#2 MOVDPTR,#TAB2 LCALLSENDZIJIE ;顯示“℃”圖標(biāo) RETTAB1:DB'當(dāng)前溫度:'TAB2:DB'℃'TAB3:DB'歡送使用'TAB4:DB'智能型電子溫度計(jì)'TAB5:DB'報(bào)警溫度:'TAB6:DB'電子溫度計(jì)' 如果在程序運(yùn)行過(guò)程中,溫度變化了那么得更新液晶的顯示,以便顯示正確的溫度。主程序不斷檢測(cè)當(dāng)前溫度與上次溫度是否一致,如果一致那么繼續(xù)檢測(cè)等待溫度變化,如果變化那么跟新顯示當(dāng)前的溫度即可。相關(guān)流程及局部程序如下:MAIN: MOVA,ADTEMP ;adtemp為當(dāng)前溫度CJNEA,ADCBJ,LO1 ;將當(dāng)前溫度與上次溫度比擬 LJMPMAIN開始 LO1: MOVADCBJ,ADTEMP ;將當(dāng)前溫度替換上次溫度,便于下次比擬開始 LCALLDESPLAY ;調(diào)用顯示子程序 LJMPMAIN ;返回繼續(xù)比擬相等DESPLAY: MOVA,#95H ;顯示實(shí)時(shí)溫度相等當(dāng)前溫度與上次溫度相等嗎 LCALLLCDSEND_I當(dāng)前溫度與上次溫度相等嗎 MOVA,34H LCALLLCDSEND_D MOVA,35H LCALLLCDSEND_D不相等 MOVA,#2EH不相等 LCALLLCDSEND_D MOVA,36H LCALLLCDSEND_D當(dāng)前溫度替換上次溫度當(dāng)前溫度替換上次溫度 MOVA,#8DH ;顯示實(shí)時(shí)報(bào)警溫度 LCALLLCDSEND_I MOVA,44H LCALLLCDSEND_D MOVA,45H更新lcd的顯示 LCALLLCDSEND_D更新lcd的顯示 MOVA,#2EH LCALLLCDSEND_D MOVA,46H LCALLLCDSEND_D RET 圖12主函數(shù)這樣只有溫度變化時(shí)才去執(zhí)行對(duì)液晶的操作,其他大局部時(shí)間都是在內(nèi)部執(zhí)行比擬的指令,這樣大大減少了對(duì)液晶的操作,增加了液晶的壽命,實(shí)際中還發(fā)現(xiàn)能減少液晶字符閃爍的問題。7:語(yǔ)音報(bào)值電路 語(yǔ)音報(bào)值局部電路采用性能優(yōu)越的isd4004串行芯片,最長(zhǎng)可以8分鐘錄音播放,方便控制等有點(diǎn)。由于事先已錄制好聲音,所以本電路連接中就沒有錄音局部電路只有放音電路和單片機(jī)控制局部。 圖13是一個(gè)實(shí)際的接法,片選cs接P1.4,mosi接P1.5,時(shí)鐘sclk接P1.6中斷引腳int接P1.7。圖13isd4004與單片機(jī)接口Isd4004語(yǔ)音芯片具有模擬量電平直接存儲(chǔ)技術(shù),因而可以最大真實(shí)的復(fù)原聲音。它可以采取分段存儲(chǔ)技術(shù),最大可以存儲(chǔ)2400段。這對(duì)語(yǔ)音報(bào)值非常方便,只需把1234等語(yǔ)音分段存儲(chǔ),播放時(shí)按地址去查找并播放相應(yīng)的聲音即可實(shí)現(xiàn)語(yǔ)音報(bào)值的功能。Isd4004工作于spi總線,所有的串行數(shù)據(jù)開始于ss的下降沿,ss在數(shù)據(jù)傳輸時(shí)必須保持低電平,兩條指令間必須是高電平。由于事先也錄制好音頻信息,錄制的信息與分段地址如下:地址h0000000800100018002000280030信息0123456地址h003800400048005000580060信息78910點(diǎn)度由上表可知當(dāng)我要播放一個(gè)數(shù)字時(shí)只需查表查出相應(yīng)的位置并送入isd4004語(yǔ)音芯片即可控制其播放。發(fā)送指令應(yīng)該嚴(yán)格按照isd4004的時(shí)序進(jìn)行。isd的指令集是8為控制碼或者是8為控制嗎加上16位地址碼。語(yǔ)音芯片播放時(shí)中斷引腳是高電平,當(dāng)遇到wom時(shí)停止播放并且中斷引腳是低電平,利用這個(gè)特性可以在程序中判斷當(dāng)前段是否播放完畢。本程序涉及主要的指令集如下表:指令8位控制碼〔16位地址碼〕說(shuō)明Powerup00100000上電指令,等待25ms可工作Setplay11100000從指定的地址開始放音Stoppwrdn00010000停止當(dāng)前的操作并掉電 對(duì)isd語(yǔ)音芯片操作應(yīng)該嚴(yán)格按照其datasheet中要求的順序執(zhí)行。其順序見流程圖,局部主要程序如下:開始選中芯片以播放語(yǔ)音“十”開始選中芯片BAOWENDU: LCALLPOWERUP ;發(fā)送上電指令 LCALLDELAY25MS ;延時(shí)25ms CLRCS ;選中芯片發(fā)送上電指令 MOVA,#50H ;發(fā)送地址碼低位發(fā)送上電指令 LCALLISDSEND MOVA,#0 ;發(fā)送地址碼高位延時(shí)25ms LCALLISDSEND延時(shí)25ms MOVA,#0E0H ;發(fā)送指令 LCALLISDSEND SETBCS 結(jié)束指令發(fā)送地址值及播放命令 JBINTT,$ ;等待播放完畢發(fā)送地址值及播放命令 LCALLSTOPP ;發(fā)送掉電指令 RET等待播放完畢發(fā)送掉電指令等待播放完畢發(fā)送掉電指令退出;語(yǔ)音存儲(chǔ)012345678910點(diǎn)度退出〔注:這只是一個(gè)播放語(yǔ)音“十”的程序,實(shí)際的程序見附錄,關(guān)于更多的子程序見總程序〕 圖14語(yǔ)音播放流程8:系統(tǒng)程序的設(shè)計(jì)系統(tǒng)程序連接各個(gè)模塊程序,一個(gè)系統(tǒng)如果子程序都寫好了,主程序應(yīng)當(dāng)把各個(gè)子模塊合理的銜接起來(lái),這樣系統(tǒng)工作穩(wěn)定,有錯(cuò)誤才好排除。 本設(shè)計(jì)的體溫計(jì)設(shè)計(jì)的軟件模塊比擬多,主要思想是開機(jī)初始化話,各存放器賦初值,開啟各中斷,定時(shí)器。進(jìn)入主循環(huán)函數(shù)等待中斷,主循環(huán)發(fā)現(xiàn)存放器的值變化那么更新顯示內(nèi)容。更新完畢后,繼續(xù)運(yùn)行主函數(shù)等待中斷。定時(shí)器T0中斷主要負(fù)責(zé)每1s更新一次溫度即AD轉(zhuǎn)換一次,每60s語(yǔ)音報(bào)出當(dāng)前溫度一次。外中斷0,1負(fù)責(zé)增加和減少設(shè)定報(bào)警溫度。外中斷設(shè)定高優(yōu)先級(jí)以便能夠得到響應(yīng)迅速執(zhí)行中斷。設(shè)定報(bào)警溫度減0.1℃外中斷1設(shè)定報(bào)警溫度減0.1外中斷1中斷返回外中斷0設(shè)定報(bào)警溫度加設(shè)定報(bào)警溫度加0.1中斷返回中斷返回 圖15外中斷0流程 圖16外中斷1流程T0中斷T0中斷開始N初始化,各存放器賦初值N初始化,各存放器賦初值1s到了?1s到了?YY開啟T0中斷開啟T0中斷開啟外中斷0,1更新當(dāng)前溫度更新當(dāng)前溫度顯示初始化顯示初始化N60s到了?N60s到了?相等Y采集當(dāng)前溫度與上次溫度比擬相等Y采集當(dāng)前溫度與上次溫度比擬語(yǔ)音報(bào)值語(yǔ)音報(bào)值不相等不相等中斷返回中斷返回更新lcd顯示更新lcd顯示圖17主函數(shù) 圖18T0中斷流程完整的程序及電路總圖見附錄。五:系統(tǒng)調(diào)試 測(cè)試主要包括硬件測(cè)試和軟件測(cè)試兩局部,硬件測(cè)試主要包括溫度傳感器的測(cè)試,前端溫度放大器的測(cè)試,軟件測(cè)試包括各模塊間的調(diào)試。1:各模塊的調(diào)試電源及各引線間的測(cè)試:仔細(xì)檢查各引線是否連線正確,在確保正確的前提下仔細(xì)檢查模塊是否焊接牢固,是否有虛焊。通電測(cè)量各芯片的電壓,測(cè)量主要引腳的電壓。如果有故障那么應(yīng)仔細(xì)檢查排除。ad590的調(diào)試:將ad590置于0攝氏度的環(huán)境中測(cè)量輸出電壓并與標(biāo)準(zhǔn)電壓相比擬。再將ad590置于50℃的環(huán)境中,測(cè)量方法同上。前端放大器的調(diào)試:①將R1阻值減小到適宜值以增大整個(gè)放大電路的增益,②將溫度傳感器置于0℃的環(huán)境中,調(diào)節(jié)調(diào)零電阻并測(cè)量輸出電壓,使得輸出電壓為0v,此時(shí)固定調(diào)零電阻即可。③將溫度傳感器置于50攝氏度的環(huán)境中,此時(shí)輸出電壓大于5v,調(diào)節(jié)R1并測(cè)量輸出電壓使得輸出電壓等于5v即可。如此調(diào)整好后整個(gè)電路0-50℃線性對(duì)應(yīng)0-5V電壓。A單片機(jī)的測(cè)試:檢測(cè)單片機(jī)的各io口是否為高電平,用示波器檢測(cè)ale引腳有脈沖輸出,如有那么說(shuō)明單片機(jī)工作正常。AD采樣的測(cè)試:給定ad輸入一個(gè)電壓,編寫最小程序檢測(cè)是否能正確讀取數(shù)值。蜂鳴器的測(cè)試:上電后p3.6口輸出高電平,測(cè)量三極管Vce電壓是否約為5v〔三極管截止〕。編寫最小程序測(cè)試能不能發(fā)出蜂鳴報(bào)警聲音。液晶模塊的測(cè)試:檢測(cè)液晶各引腳接口電壓是否正常,檢測(cè)背光是否能正常的關(guān)閉。調(diào)節(jié)比照度電位器測(cè)試能不能正常調(diào)節(jié)比照度。編寫最小顯示程序觀察能不能正常顯示。語(yǔ)音芯片的測(cè)試:測(cè)量電源電壓是否為3v,測(cè)量聲音輸出引腳電壓是否為1.2v。如果正確那么說(shuō)明可以正常工作。編寫最小程序給定地址試聽有無(wú)聲音輸出。2:整體調(diào)試將程序?qū)懭隺t89s52單片機(jī)中,檢查各局部功能是否運(yùn)行正常,檢查各按鍵是否工作正常。檢查溫度是否正常顯示,檢查溫度大于報(bào)警溫度是否報(bào)警,檢查每分鐘是否報(bào)出當(dāng)前溫度。如果有欠缺的地方應(yīng)該仔細(xì)查找程序中有問題的地方并加以修改。將溫度傳感器置于不同溫度的地方并測(cè)量輸出電壓和讀取溫度顯示,觀察是否一致或接近。六:設(shè)計(jì)總結(jié) 1,本設(shè)計(jì)主要完成了如下功能:①系統(tǒng)采用兩節(jié)1.5V電池升壓對(duì)各模塊供電;②前端溫度傳感器溫差0~0.5V經(jīng)放大10左右對(duì)應(yīng)0~5V,由于傳感器是線性器件故放大后也是線性對(duì)應(yīng)的;③系統(tǒng)前端局部加了一個(gè)5V穩(wěn)壓二極管所以具有輸出保護(hù)電路,使其輸出電壓不超過(guò)5V;④溫度采樣使用定時(shí)器定時(shí)的方式這樣保證了1s采集一次;⑤系統(tǒng)實(shí)現(xiàn)了0~50℃的范圍內(nèi)任意設(shè)預(yù)警溫度值〔默認(rèn)值設(shè)定為37.0℃〕,當(dāng)所測(cè)溫度超過(guò)預(yù)警溫度值時(shí),系統(tǒng)立即報(bào)警,預(yù)警值的設(shè)定通過(guò)外中斷可隨時(shí)更改。⑥系統(tǒng)利用T0中斷實(shí)現(xiàn)了每分鐘報(bào)出溫度值一次。 本設(shè)計(jì)未完成的情況如下:①系統(tǒng)精度最大只到達(dá)0.2℃,題目要求到達(dá)0.1℃的精度,經(jīng)計(jì)算得知應(yīng)該才用9位以上ad來(lái)溫度采樣,由于匯編語(yǔ)言多字節(jié)除法算法的問題未能解決,深表遺憾。②在液晶上顯示溫度曲線未能完成,因?yàn)槠聊恍?,采用st7920控制器的屏幕匯編算法難的問題更加突出,時(shí)間有限,所以未能完成。③無(wú)線方面由于我們團(tuán)隊(duì)都毫無(wú)經(jīng)驗(yàn),對(duì)無(wú)線模塊不了解,在這短暫的時(shí)期內(nèi)沒有更多的時(shí)間去學(xué)習(xí), 2,對(duì)于未能完成的局部,表示遺憾,以后會(huì)在完成課內(nèi)學(xué)習(xí)的前提下加強(qiáng)對(duì)單片機(jī)的學(xué)習(xí),對(duì)編程的靈活使用。另外多看相關(guān)的圖書資料,加強(qiáng)相關(guān)理論的學(xué)習(xí)和應(yīng)用,多做一點(diǎn)實(shí)物多積累經(jīng)驗(yàn)。針對(duì)本次設(shè)計(jì)未完成的局部我們會(huì)在課下繼續(xù)努力,爭(zhēng)取早日找到解決方案。 3,通過(guò)本次設(shè)計(jì)我們知道了自己哪方面的缺乏,感到理論與實(shí)際的差距,雖然理論上都清楚,但是實(shí)際操作涉及到了很多問題〔主要是匯編語(yǔ)言的算法〕,通過(guò)大家的不斷努力和支持最終把這些困難都一一克服了。通過(guò)本次設(shè)計(jì)無(wú)論在理論和實(shí)踐上都得到了很大的提高,對(duì)匯編語(yǔ)言更加熟悉了。提高了我們對(duì)單片機(jī)和外圍接口電路的設(shè)計(jì)能力,使我們對(duì)電子設(shè)計(jì)更加感興趣,更加明確了學(xué)習(xí)的方向。七:參考文獻(xiàn)黃友銳主編,《單片機(jī)原理及應(yīng)用》,2006年11月第一版;康華光主編,《電子技術(shù)根底》,2006年1月第五版;王水平主編,《DC/DC變換器集成電路及應(yīng)用》,2006年1月第一版。附錄一:整機(jī)電路圖附錄二:?jiǎn)纹瑱C(jī)全部程序AD_CS BIT P1.0 ;ADC0832片選AD_CLK BIT P1.1 ;ADC0832時(shí)鐘引腳AD_DO BIT P1.2 ;ADC0832數(shù)據(jù)輸出引腳和數(shù)據(jù)輸入引腳復(fù)用AD_DI BIT P1.2 ;同上CS BIT P1.4 ;ISD4004語(yǔ)音芯片片選MOSI BIT P1.5 ;串行輸入端SCLK BIT P1.6 ;串行時(shí)鐘INTT BIT P1.7 ;中斷引腳LCD_RS BIT P2.0 ;LCD_RW BIT P2.1 ;LCD_EN BIT P2.2 ;ADTEMP EQU 50H ;用于存放ad轉(zhuǎn)換后的結(jié)果ZISHU EQU 51HBEEPTEMPEQU 52HCOUNT EQU 53H ;用于計(jì)數(shù)20次進(jìn)行一次adc0832轉(zhuǎn)化ISDCOUNTEQU 58HADCBJ EQU 54HWDBJG EQU 55HWDBJZ EQU 56HWDBJD EQU 57H ORG0000H LJMPSTART ORG0003H LJMPZENGJIA ORG000BH LJMPINT_T0 ORG0013H LJMPJIANSHAO ORG0030HSTART: MOVSP,#5FH MOV41H,#3 MOV42H,#7 MOV43H,#0 MOV53H,#0 MOVTMOD,#01H ;定時(shí)器0工作于方式1,16位計(jì)數(shù)方式。 MOVTH0,#3CH MOVTL0,#0B0H MOVCOUNT,#0 MOVISDCOUNT,#0 SETBEA ;開啟總中斷 SETBEX0 ;開啟外中斷0,用于報(bào)警溫度增加0.1 SETBEX1 SETBIT0 ;下降沿觸發(fā) SETBIT1 SETBET0 ;開啟定時(shí)器t0中斷,用于1s更新ad溫度一次 MOVIP,#05H LCALLLCDINIT SETBTR0MAIN: MOVA,ADTEMP CJNEA,ADCBJ,LO1 MOVA,#41H CJNEA,WDBJG,LO1 MOVA,#42H CJNEA,WDBJZ,LO1 MOVA,#43H CJNEA,WDBJD,LO1 LJMPMAIN LO1: MOVWDBJG,41H MOVWDBJZ,42H MOVWDBJD,43H MOVADCBJ,ADTEMP LCALLDESPLAY LJMPMAIN;*********************************************************;定時(shí)器t0中斷程序用于1s跟新一次ad溫度,60s報(bào)實(shí)時(shí)溫度一次;*********************************************************INT_T0: PUSHACC PUSHPSW CLRTR0 INCCOUNT MOVA,COUNT CJNEA,#20,INTOUT MOVCOUNT,#0 LCALLADC0832 MOVA,ADTEMP LCALLTIAOZHEN INCISDCOUNT MOVA,ISDCOUNT CJNEA,#6,ISDOUT LCALLBAOWENDU MOVISDCOUNT,#0 ISDOUT: LCALLBEEP INTOUT: MOVTH0,#3CH MOVTL0,#0BH SETBTR0 POPPSW POPACC RETI;*******************************************************************;以下是對(duì)adc0832ad轉(zhuǎn)換芯片的操作;*******************************************************************ADC0832: SETBAD_CS ;片選無(wú)效,一個(gè)轉(zhuǎn)換周期開始 CLRAD_CLK ;為第一個(gè)脈沖作準(zhǔn)備 CLRAD_CS ;選中adc0832芯片 SETBAD_DI ;起始約定高電平 SETBAD_CLK ; CLRAD_CLK ;形成一個(gè)脈沖,將一發(fā)送到adc0832 SETBAD_DI ;高電平1,狀態(tài)字10選擇單通道0 SETBAD_CLK ; CLRAD_CLK ; CLRAD_DI ; SETBAD_CLK ; CLRAD_CLK ; SETBAD_DI ;第三個(gè)脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1 SETBAD_CLK ; MOVR7,#8 ;讀取轉(zhuǎn)換后的數(shù)據(jù),讀入到A AD1: SETBAD_CLK ; CLRAD_CLK ; MOVC,AD_DO ; RLCA ; DJNZR7,AD1 MOVB,A MOVR7,#8 AD2: MOVC,AD_DO RRCA SETBAD_CLK CLRAD_CLK DJNZR7,AD2 CJNEA,B,ADC0832 SETBAD_CS MOVADTEMP,A RETTIAOZHEN: MOVA,ADTEMP ;調(diào)整函數(shù),將A除以51,分三個(gè)字節(jié)保存,出口31h〔高位〕,32h,33h。 MOVB,#51 DIVAB MOV31H,A MOVA,B MOVB,#10 MULAB MOVR7,B MOVR6,A MOVR5,#0 MOVR4,#51 LCALLDDIV MOV32H,R6 MOVA,R2 MOVB,#10 MULAB MOVR7,B MOVR6,A MOVR5,#0 MOVR4,#51 LCALLDDIV MOV33H,R6 MOVA,31H ;將16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼其功能是將31h,32h,33h中的數(shù)加上30h送到34h,35h,36h ADDA,#30H MOV34H,A MOVA,32H ADDA,#30H MOV35H,A MOVA,33H ADDA,#30H MOV36H,A RETDDIV: MOVA,R4;雙字節(jié)除法子函數(shù)R7R6/R5R4=R7R6……R3R2 ORLA,R5 JZERR DOWN0: MOVR2,#0 MOVR3,#0 MOVR1,#16 DOWN1: CLRC MOVA,R6 RLCA MOVR6,A MOVA,R7 RLCA MOVR7,A MOVA,R2 RLCA MOVR2,A MOVA,R3 RLCA MOVR3,A MOVA,R2 SUBBA,R4 MOVR0,A MOVA,R3 SUBBA,R5 JCDOWN2 INCR6 MOVR3,A MOVA,R0 MOVR2,A DOWN2: DJNZR1,DOWN1 CLRF0 LJMPDOWN3 ERR: SETBF0 DOWN3: RET;***********************************************************;以下是對(duì)12864液晶的操作;***********************************************************LCDINIT: MOVA,#30H ;液晶初始化程序 LCALLLCDSEND_I ;8位數(shù)據(jù)并行,根本指令操作集 MOVA,#0CH LCALLLCDSEND_I ;整體顯示開,游標(biāo)關(guān),禁止游標(biāo)位置反白 MOVA,#06H LCALLLCDSEND_I MOVA,#01H LCALLLCDSEND_I ;清楚顯示,游標(biāo)歸位 MOVA,#92H ;顯示開機(jī)歡送詞 LCALLLCDSEND_I MOVZISHU,#8 MOVDPTR,#TAB3 LCALLSENDZIJIE ;顯示“歡送使用” MOVA,#88H LCALLLCDSEND_I MOVZISHU,#16 MOVDPTR,#TAB4 LCALLSENDZIJIE ;顯示“智能型電子溫度計(jì)” LCALLADC0832 LCALLTIAOZHEN MOVR7,#18 ;開機(jī)畫面的顯示延時(shí) DE1: MOVR6,#200 DE2: MOVR5,#200 DJNZR5,$ DJNZR6,DE2 DJNZR7,DE1 MOVA,#01H LCALLLCDSEND_I ;清屏游標(biāo)歸位 MOVA,#81H LCALLLCDSEND_I MOVZISHU,#10 MOVDPTR,#TAB6 LCALLSENDZIJIE ;在第一行顯示“電子溫度計(jì)” MOVA,#90H LCALLLCDSEND_I MOVZISHU,#10 MOVDPTR,#TAB1 LCALLSENDZIJIE ;在第二行前五個(gè)空格顯示“當(dāng)前溫度:” MOVA,#97H LCALLLCDSEND_I MOVZISHU,#2 MOVDPTR,#TAB2 LCALLSENDZIJIE ;在第二行最后一個(gè)空格顯示“℃”圖標(biāo) MOVA,#88H LCALLLCDSEND_I MOVZISHU,#10 MOVDPTR,#TAB5 LCALLSENDZIJIE ;在第三行前五個(gè)空格顯示“報(bào)警溫度:” MOVA,#8FH LCALLLCDSEND_I MOVZISHU,#2 MOVDPTR,#TAB2 LCALLSENDZIJIE ;顯示“℃”圖標(biāo) RETDESPLAY: MOVA,#95H ;顯示實(shí)時(shí)溫度 LCALLLCDSEND_I MOVA,34H LCALLLCDSEND_D MOVA,35H LCALLLCDSEND_D MOVA,#2EH LCALLLCDSEND_D MOVA,36H LCALLLCDSEND_D MOVA,#8DH ;顯示實(shí)時(shí)報(bào)警溫度 LCALLLCDSEND_I MOVA,44H LCALLLCDSEND_D MOVA,45H LCALLLCDSEND_D MOVA,#2EH LCALLLCDSEND_D MOVA,46H LCALLLCDSEND_D RETCHK_BUSY: MOVP0,#0FFH //忙檢測(cè)程序 CLRLCD_RS SETBLCD_RW SETBLCD_EN JBP0.7,$ CLRLCD_EN RETLCDSEND_I: LCALLCHK_BUSY //發(fā)送狀態(tài)字入口地址A. CLRLCD_RS CLRLCD_RW MOVP0,A SETBLCD_EN NOP NOP CLRLCD_EN RETLCDSEND_D: LCALLCHK_BUSY //發(fā)送數(shù)據(jù)入口地址A SETBLCD_RS CLRLCD_RW MOVP0,A SETBLCD_EN NOP NOP CLRLCD_EN RETSENDZIJIE: MOVR7,ZISHU SE1: CLRA MOVCA,@A+DPTR LCALLLCDSEND_D INCDPTR DJNZR7,SE1 RETTAB1:DB'當(dāng)前溫度:'TAB2:DB'℃'TAB3:DB'歡送使用'TAB4:DB'智能型電子溫度計(jì)'TAB5:DB'報(bào)警溫度:'TAB6:DB'電子溫度計(jì)';********************************************************;以下程序是蜂鳴器函數(shù);當(dāng)溫度大于37時(shí),蜂鳴器報(bào)警;********************************************************BEEP: MOVA,31H CJNEA,41H,BEEP1 MOVA,32H CJNEA,42H,BEEP1 MOVA,33H CJNEA,43H,BEEP1 BEEP1: JNCSTARTBE LJMPBEOUT STARTBE:MOVR7,#2 BE2: MOVR6,#255 BE1: CPLP3.6 MOVR5,#200 DJNZR5,$ MOVR5,#200 DJNZR5,$ DJNZR6,BE1 DJNZR7,BE2BEOUT: SETBP3.6 RETZENGJIA: PUSHACC ;調(diào)整報(bào)警溫度子程序,外中斷0,增加1 PUSHPSW INC43H MOVA,43H CJNEA,#10,ZJ1 MOV43H,#0H INC42H ZJ1: MOVA,42H CJNEA,#10,ZJ2 MOV42H,#0 INC41H ZJ2: MOVA,41H CJNEA,#05,ZJ3 MOV41H,#0H LCALLWENDUTZ ZJ3: POPPSW POPACC RETIJIANSHAO: PUSHACC ;調(diào)整報(bào)警溫度子程序,外中斷1,減少1 PUSHPSW DEC43H MOVA,43H CJNEA,#0FFH,JS1 MOV43H,#9 DEC42H JS1: MOVA,42H CJNEA,#0FF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論