freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

商用智能節(jié)水淋浴器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-19 16:53 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 設(shè)定獨(dú)立波特率發(fā)生器重裝值 4800 n 8 1 AUXR |= 0x04。 //獨(dú)立波特率發(fā)生器時(shí)鐘為Fosc,即1T AUXR |= 0x01。 //串口1選擇獨(dú)立波特率發(fā)生器為波特率發(fā)生器 AUXR |= 0x10。 //啟動(dòng)獨(dú)立波特率發(fā)生器*/我使用的是串行通行,采用了TXD RXD 和GND三根線實(shí)現(xiàn)最簡(jiǎn)單的串行通信,用到了9針RS232串行口中的3根,即5引腳。串行通信在計(jì)算機(jī)控制方面用處非常廣泛,我們數(shù)字設(shè)備之間的通信常用的方式有兩種,即串行通信和并行通信。顧名思義,并行通信是設(shè)備間一次傳送8位數(shù)據(jù)。串行通信就是一位一位的傳輸(雙方約定好起始、終止、數(shù)據(jù)格式、和通信的速度即波特率,COM口,這樣才能準(zhǔn)確得發(fā)送和接收)。兩者的傳輸速率相差了七倍,那么串行通信還能存在那么久并且越來(lái)越廣泛應(yīng)用是有其原因的,因?yàn)椴⑿型ㄐ烹m然可以一次傳送8位數(shù)據(jù),但是在傳送過(guò)程中容易因?yàn)榫€路問(wèn)題發(fā)生標(biāo)準(zhǔn)電位變化(通常是因?yàn)樾盘?hào)衰減和信號(hào)間串音干擾),使傳輸數(shù)據(jù)錯(cuò)誤,若傳輸線路長(zhǎng)的話,這種錯(cuò)誤將更加明顯。而串行通信一次只傳送一位,處理的數(shù)據(jù)電壓只有一個(gè)標(biāo)準(zhǔn)電位,因此不容易發(fā)生數(shù)據(jù)遺失現(xiàn)象,加上防范措施就更準(zhǔn)確了。但是在短距離通信中,并行通信可以使數(shù)據(jù)傳輸速度更快,部分科學(xué)儀器、醫(yī)學(xué)儀器由于短時(shí)間要傳送大量數(shù)據(jù),所以要使用并行接口,常用的并行數(shù)據(jù)傳輸接口有GPIB和LTP。常用的串行通信有RS232和RS485兩種。最近幾年還有USB和IEEE1394。RS232接口是臺(tái)式計(jì)算機(jī)的必備接口,一般是COM1和COM2。新式的計(jì)算機(jī)一般是都是以9針的形式接出來(lái),需要注意的是計(jì)算機(jī)上的均是公頭。在計(jì)算機(jī)上連接通信設(shè)備后,在電腦的設(shè)備管理窗口可以看到該設(shè)備。在工業(yè)領(lǐng)域上,RS232通信大多使用正負(fù)9V分別表示0和1。但它常常受到各種干擾,為了解決這個(gè)問(wèn)題RS485應(yīng)運(yùn)而生。隨著時(shí)代的發(fā)展,串行通信也朝高速化發(fā)展,串行通信有了USB接口,這種規(guī)格可以整合計(jì)算機(jī)連接的外圍設(shè)備,不必要每個(gè)設(shè)備都有專(zhuān)用接口,都是通用的USB接口。,速度達(dá)到了480Mbps。而且可以使用USB集線器,最多在5M內(nèi)可以連接127臺(tái)設(shè)備。但是無(wú)論如何要比RS232最高115Kbps要快很多。IEEE1394即WIRE FIRE,也稱(chēng)“火線”。它與USB一樣都具有即插即用的功能,也為了解決外圍產(chǎn)品與計(jì)算機(jī)復(fù)雜連接的問(wèn)題,也同樣是串行通信,但不一樣的是IEEE1394在高速方面占盡了優(yōu)勢(shì),速度正在向1000Mbps邁進(jìn),但這并不否認(rèn)USB存在的價(jià)值,1394接口主攻高速方向,而USB則應(yīng)用于中低速場(chǎng)合。為了驗(yàn)證上述硬件的正確性,單片機(jī)與上位機(jī)之間串行通信功能測(cè)試是必要的。上位機(jī)所使用的程序?yàn)椤按谡{(diào)試助手”。單片機(jī)驗(yàn)證程序如下:main (void) { SCON = 0x50。 //REN=1允許串行接受狀態(tài),串口工作模式1 TMOD|= 0x20。 //定時(shí)器工作方式2 //使用定時(shí)器作為串口波特率發(fā)生器 PCON|= 0x80。 TH1 = 0xFD。 //波特率 19200、數(shù)據(jù)位停止位1。效驗(yàn)位無(wú) () TL1 = 0xF3。 //裝載計(jì)數(shù)值,需要仔細(xì)計(jì)算 TR1 = 1。 ES = 1。 //開(kāi)串口中斷 EA = 1。 // 開(kāi)總中斷 while(1) { if (Flag==1) { SBUF=SenData。 //SUBF接受/發(fā)送緩沖器 while(TI==0)。 //等待發(fā)送完成 TI=0。 //發(fā)送完成后清除標(biāo)志位 Flag=0。 //標(biāo)志位清零 }}//串口中斷程序void ser_int (void) interrupt 4 using 1{ if(RI == 1) //RI接受中斷標(biāo)志,需要判斷,因?yàn)榇谥袛喾纸邮芎桶l(fā)送兩個(gè) { RI = 0。 //清除RI接受中斷標(biāo)志 ReData = SBUF。 //SUBF接受/發(fā)送緩沖器 SenData=ReData。 //接受給發(fā)送 Flag=1。 //置標(biāo)志位 }}上述程序能夠?qū)崿F(xiàn)的功能是使用串口助手發(fā)送一個(gè)值,單片機(jī)接收到之后,再將這個(gè)值發(fā)送給串口助手,串口助手將其在屏幕上顯示。需要注意的是,串行通信在普通C51單片機(jī)中只能使用定時(shí)器1來(lái)作為波特率發(fā)生器,而定時(shí)器1的時(shí)鐘來(lái)源與系統(tǒng)一樣都來(lái)自晶振,這樣就大大加重了系統(tǒng)的負(fù)擔(dān),經(jīng)過(guò)測(cè)試,本系統(tǒng)如果采用定時(shí)器1作為波特率發(fā)生器,控制的實(shí)時(shí)性將大打折扣。STC12C5A60S2不但擁有雙串口,而且可以使用獨(dú)立的波特率發(fā)生器,而且性能相當(dāng)穩(wěn)定,本設(shè)計(jì)采用獨(dú)立波特率發(fā)生器,其初始化參數(shù)都可以通過(guò)宏晶公司提供波特率計(jì)算器來(lái)計(jì)算,這個(gè)工具十分好用,因?yàn)樽约和ㄟ^(guò)公式計(jì)算出來(lái)的波特率不光容易發(fā)生錯(cuò)誤,而且過(guò)程很麻煩,裝載值要使波特率與目標(biāo)值的誤差控制在3%,這樣才能保證正確的通信。 測(cè)試程序運(yùn)行時(shí)串口調(diào)試助手界面 蜂鳴器的連接經(jīng)過(guò)測(cè)試,用單片機(jī)的P0口直接驅(qū)動(dòng)蜂鳴器效果不理想,所以方案為外接電源以增加驅(qū)動(dòng)能力(本系統(tǒng)的指示燈、繼電器驅(qū)動(dòng)、蜂鳴器均使用外接電源增加驅(qū)動(dòng)能力)。 蜂鳴器連接圖經(jīng)過(guò)測(cè)試,當(dāng)P0^6賦值為0時(shí)蜂鳴器聲音十分響亮,當(dāng)P0^6賦值為1時(shí)蜂鳴器不發(fā)聲。不要為了限流給蜂鳴器接上電阻,要限流也要很小的電阻,因?yàn)閷?shí)驗(yàn)中在VCC與蜂鳴器之間接上10K電阻后,在測(cè)試時(shí)蜂鳴器是沒(méi)有聲音的,1K電阻時(shí)聲音比較微弱。 熱電阻與AD模塊的使用及其調(diào)試方法要進(jìn)行溫度的顯示、可調(diào),首先要對(duì)溫度進(jìn)行測(cè)量和獲取,本設(shè)計(jì)沒(méi)有使用溫度測(cè)量模塊18B20,而是采用的熱電阻進(jìn)行溫度測(cè)量,它雖然不是很精確,但基本滿(mǎn)足系統(tǒng)需要,同時(shí)降低了成本。,這樣將通過(guò)AD的模塊的模數(shù)轉(zhuǎn)換功能可以將溫度值的數(shù)字量計(jì)算出來(lái),系統(tǒng)的一個(gè)顯而易見(jiàn)的缺點(diǎn)是溫度誤差大概在3攝氏度左右,這是在單片機(jī)內(nèi)部提取溫度值時(shí),將0—120攝氏度對(duì)應(yīng)的電阻值關(guān)系完全線性化。這一部分所涉及的硬件有熱電阻和AD模塊,下面將詳細(xì)介紹硬件與測(cè)試程序。 AD分壓電路本設(shè)計(jì)所使用的熱電阻為飲水機(jī)用的測(cè)溫電阻(),靈敏度比較高,誤差是線性化后產(chǎn)生的,誤差是可以通過(guò)一定的補(bǔ)償措施來(lái)消除的。通過(guò)這樣的分壓電路,溫度可以由相應(yīng)的電阻值反映,電阻值可以通過(guò)一定的電壓值來(lái)測(cè)量,0—5V的電壓又可以通過(guò)AD轉(zhuǎn)換后的0—255來(lái)衡量(5V參考電壓,只使用8位精度,即提取結(jié)果寄存器的前8位),以下各值均是通過(guò)實(shí)驗(yàn)得來(lái),沒(méi)有相關(guān)資料,難免有粗漏之處。溫度值050120電阻值163K18K2K電壓值轉(zhuǎn)換后24016443 線性化計(jì)算表格 熱電阻STC12C5A60S2共有8路10位精度的高速AD轉(zhuǎn)換?!???梢宰鰷囟葯z測(cè)、電池電壓檢測(cè)、按鍵掃描、頻譜檢測(cè)等等。上電后P1口為弱上拉IO口,用戶(hù)可以通過(guò)給寄存器賦值來(lái)定義哪一路為AD轉(zhuǎn)換,其余的仍然做為普通的IO口使用(一般沒(méi)有定義就作為第一功能引腳)。由于KEIL環(huán)境自帶的頭文件中沒(méi)有對(duì)AD模塊所涉及的寄存器進(jìn)行定義,所以在編程之前要在自建的頭文件中對(duì)寄存器地址進(jìn)行定義,如下:名稱(chēng)寄存器地址作用P1ASF模擬功能控制寄存器9DH控制P1的哪一位為AD轉(zhuǎn)換ADC_CONTRADC控制寄存器BCHADC功能控制寄存器ADC_RES轉(zhuǎn)換結(jié)果寄存器BDH存儲(chǔ)AD轉(zhuǎn)換結(jié)果ADC_RESL轉(zhuǎn)換結(jié)果(低位)寄存器BEH存儲(chǔ)AD轉(zhuǎn)換結(jié)果AUXR1輔助功能寄存器A2H一系列輔助功能控制IE中斷允許寄存器A8H開(kāi)關(guān)全部中斷IP中斷優(yōu)先級(jí)寄存器(低)B8H設(shè)定中斷優(yōu)先級(jí)IPH中斷優(yōu)先級(jí)寄存器(高)B7H設(shè)定中斷優(yōu)先級(jí) AD模塊所涉及的寄存器P1ASF:給這個(gè)8位寄存器的8位賦值可以控制P1的那一位為AD轉(zhuǎn)換引腳。=。ADC_CONTR:BIT 7是ADC_POWER,它是ADC模塊電源控制位,ADC_POWER=1即打開(kāi)轉(zhuǎn)換電源。開(kāi)始轉(zhuǎn)換前要確定電源是打開(kāi)的。轉(zhuǎn)換完成后可以選擇關(guān)閉電源,這樣可以降低功耗。B6和B5是轉(zhuǎn)換速度聯(lián)合控制位,兩位都置1時(shí)轉(zhuǎn)換速度最快,CPU工作頻率為21MHZ時(shí)轉(zhuǎn)換速度為250KHZ(最高速度)。B4為ADC_FLAG即轉(zhuǎn)換完成標(biāo)志位,轉(zhuǎn)換完成后會(huì)自動(dòng)置1,要注意的是必須要軟件清零。B3為ADC_START即轉(zhuǎn)換開(kāi)始標(biāo)志位。也就是說(shuō)若是選擇多路AD轉(zhuǎn)換,它們工作時(shí)并不是同時(shí)轉(zhuǎn)換的,而是以掃描的方式進(jìn)行的。AUXR1的B2位ADRJ為轉(zhuǎn)換結(jié)果格式調(diào)整控制位,ADRJ=0時(shí),10位的轉(zhuǎn)換結(jié)果八位存儲(chǔ)在ADC_RES,低兩位存儲(chǔ)在ADC_RESL。只取八位結(jié)果的話(8位精度)只讀ADC_RES就行了。IE為中斷允許寄存器,B7為EA,EA=1標(biāo)志CPU開(kāi)放中斷,相當(dāng)于所有中斷的總開(kāi)關(guān)。其他的7位分別為低電壓檢測(cè)轉(zhuǎn)換、AD轉(zhuǎn)換、串行口中斷、兩個(gè)定時(shí)器中斷、兩個(gè)外部中斷,給相應(yīng)的位置1,相當(dāng)于打開(kāi)相應(yīng)的中斷。相當(dāng)于兩級(jí)開(kāi)關(guān)控制。通過(guò)給IP和IPH賦值,可以設(shè)置7個(gè)中斷的優(yōu)先級(jí)為4級(jí)。本設(shè)計(jì)采用查詢(xún)的方式讀取AD轉(zhuǎn)換值,所以在這里不用對(duì)中斷相關(guān)的寄存器進(jìn)行設(shè)置。一般情況下中斷優(yōu)先級(jí)采用默認(rèn)方式就好。針對(duì)AD模塊進(jìn)行了幾次測(cè)試,分別是AD基本功能測(cè)試、AD與指示燈、AD溫度顯示測(cè)試等等,下面是一段綜合的測(cè)試程序(程序中使用了許多的延時(shí)函數(shù),經(jīng)過(guò)測(cè)試,對(duì)于高速AD來(lái)說(shuō)些許延時(shí)是有必要的,這一點(diǎn)DATASHEET上有說(shuō)明,程序中保留調(diào)試程序時(shí)加上的指示燈亮滅語(yǔ)句,本程序要注意浮點(diǎn)數(shù)運(yùn)算)。main(){int AD=0。//初始化P1ASF=0X80。//使用第八路,其余只做IOADC_RES=0。 //結(jié)果寄存器清零delay(5)。 //必要的延時(shí)p1_1=0。 //運(yùn)行到這一步的指示燈,下同while(1){ p1_6=0。ADC_CONTR=0xe7。 //開(kāi)電源、全速、第八通道 delay(5)。 p1_4=0。ADC_CONTR=ADC_CONTR|0x08。//開(kāi)始轉(zhuǎn)換delay(5)。while((ADC_CONTRamp。0x10)==0)p1_0=0。//等待完成后,轉(zhuǎn)換標(biāo)志位置1ADC_CONTRamp。=0xe7。 //標(biāo)志位清零delay(5)。AD=ADC_RES。 //取數(shù)據(jù)delay(5)。//隨溫度的變化,指示燈依次亮滅if(AD164)p1_0=0。if(AD164amp。amp。AD130)p1_1=0。if(AD130amp。amp。AD100)p1_2=0。if(AD100amp。amp。AD60)p1_3=0。//獲取實(shí)際的溫度值wendu=。wendu=wendu*。 //獲得浮點(diǎn)溫度值wendu1=wendu*100。 //獲取整數(shù)溫度值e=wendu1/10000。 //獲取溫度百位值f=wendu1%10000/1000。//獲取溫度的十位值g=wendu1%1000/100。//獲取溫度的個(gè)位值if(e==0)e=0x0f。//如果高位是零則置零}}上述程序的功能是獲取第7路AD轉(zhuǎn)換的結(jié)果,并把它轉(zhuǎn)換成對(duì)應(yīng)溫度值,根據(jù)溫度值的大小相應(yīng)的指示燈有亮滅,程序還提取了實(shí)際溫度值的各個(gè)位,配合數(shù)碼管,可以對(duì)溫度進(jìn)行顯示,也可以將溫度值各位分別發(fā)送給上位機(jī),關(guān)鍵是單片機(jī)可以通過(guò)該溫度值進(jìn)行溫度控制。測(cè)試時(shí)用打火機(jī)加熱熱電阻,可以看到有指示燈依次亮滅。 溫度調(diào)節(jié)、水量調(diào)節(jié)與中斷模塊調(diào)試方法設(shè)計(jì)中有兩個(gè)按鈕,溫度調(diào)節(jié)按鈕和水量調(diào)節(jié)按鈕,通過(guò)出發(fā)中斷執(zhí)行中斷子程序的方式進(jìn)行,在中斷子程序中對(duì)相應(yīng)的全局變量進(jìn)行遞增操作和遞減操作并且讓相應(yīng)的指示燈亮滅,程序中溫度值和剩余水量值都是全局變量。單片機(jī)觸發(fā)中斷的方式有兩種,一種是下降沿觸發(fā),一種是低電平觸發(fā),本設(shè)計(jì)采用的是低電平觸發(fā),它實(shí)現(xiàn)起來(lái)比較容易,電路也簡(jiǎn)單。如下: 中斷按鈕中斷功能是為了處理外部突發(fā)事件而設(shè)置的,當(dāng)某個(gè)中斷被觸發(fā)后,CPU放下當(dāng)前的工作(設(shè)置斷點(diǎn)、狀態(tài)值壓棧等等),根據(jù)其中斷向量,去執(zhí)行相應(yīng)的中斷子程序,中斷響應(yīng)完成之后,繼續(xù)之前的工作。實(shí)現(xiàn)這些功能的部件叫中斷系統(tǒng)。申請(qǐng)中斷的設(shè)備成為中斷源,CPU一般允許有多個(gè)中斷源,當(dāng)多個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),這就存在CPU先響應(yīng)哪個(gè)中斷的問(wèn)題,這就引出了中斷優(yōu)先級(jí)的問(wèn)題。如果在CPU正在響應(yīng)中斷,另一個(gè)優(yōu)先級(jí)更高的中斷發(fā)生,CPU暫停相應(yīng)當(dāng)下的中斷轉(zhuǎn)而去相應(yīng)更高級(jí)的中斷,響應(yīng)完之后再去繼續(xù)相應(yīng)之前的中斷,這個(gè)過(guò)程叫中斷嵌套,具有這樣功能的中斷系統(tǒng)叫多級(jí)中斷系統(tǒng),否則稱(chēng)為單級(jí)中斷系統(tǒng)。STC12C5A60S2提供了十個(gè)中斷源:兩個(gè)外部中斷、兩個(gè)定時(shí)器中斷、兩個(gè)串口中斷,AD轉(zhuǎn)換中斷、PCA中斷、SPI中斷、低電壓檢測(cè)中斷。所有的中斷都具有4個(gè)優(yōu)先級(jí),優(yōu)先級(jí)可以通過(guò)IP和IPH兩個(gè)寄存器來(lái)設(shè)置。每個(gè)中斷都可以獨(dú)立的通過(guò)寄存器賦值來(lái)進(jìn)行開(kāi)關(guān)。高優(yōu)先級(jí)的中斷可以打斷低優(yōu)先級(jí)的中斷,低優(yōu)先級(jí)的中斷不可以打斷高優(yōu)先級(jí)的中斷,同級(jí)的中斷同時(shí)發(fā)生時(shí)按照查詢(xún)次序分別響應(yīng)。下面分別介紹中斷的查詢(xún)次序、中斷號(hào)、及與中斷相關(guān)的寄存器,如下各圖。 同級(jí)中斷查詢(xún)次序 各中斷源的中斷號(hào) 中斷的觸發(fā)方式外部中斷0和外部中斷1可以下降沿也可以低電平觸發(fā),申請(qǐng)中斷的中斷標(biāo)志位在IE0/,中斷響應(yīng)完之后標(biāo)志位自動(dòng)清除。IE和IE2是中斷允許寄存器,IP/IPH/IP2/IP2H可以對(duì)10個(gè)中斷源設(shè)置4級(jí)優(yōu)先級(jí)。下面是程序中的對(duì)中斷
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1