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

正文內(nèi)容

數(shù)字式溫濕度傳感器的應(yīng)用設(shè)計(jì)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-06-17 16:58本頁(yè)面
  

【正文】 的公式計(jì)算: (54) (55)露點(diǎn)計(jì)算程序如下://計(jì)算露點(diǎn)// 輸入: 濕度 [%RH], 溫度 [攝氏度]// 輸出: 露點(diǎn) [攝氏度]{ float logEx,dew_point。 logEx=+*t/(+t)+(log10(h)2)。 dew_point = (logEx )*(+)。 return dew_point。 擴(kuò)展模塊鍵盤(pán)部分的使用,首先要定義各個(gè)按鍵,本設(shè)計(jì)中定義了6個(gè)按鍵,分別的功能是:a、進(jìn)入設(shè)置模式;b、退出設(shè)置模式;c、設(shè)置位左移一位;d、設(shè)置位右移一位;e、設(shè)置溫度值加一;f、設(shè)置溫度值減一。定義鍵盤(pán)功能程序如下:sbit StartSet=P0^0。 //進(jìn)入設(shè)置模式sbit Left=P0^1。 //設(shè)置位左移一位sbit Plus=P0^2。 //設(shè)置溫度值加一sbit Minus=P0^3。 //設(shè)置溫度值減一sbit Right=P0^4。 //設(shè)置位右移一位sbit FinishSet=P0^5。 //退出設(shè)置模式鍵盤(pán)操作流程圖如下:圖54 鍵盤(pán)操作流程圖圖中的其他操作為執(zhí)行按鍵的功能,下面我就舉一個(gè)例子來(lái)說(shuō)明一下。在進(jìn)入設(shè)置模式以后,如果需要把設(shè)置為左移一位時(shí),程序如下: }if(Left==0) {Delay(5000)。 //左移按鍵按下if(Left==0){n。 //設(shè)置的位向移左一位namp。=0x03。 //移到最左時(shí),再移一次從最右開(kāi)始左移for(i=0。i4。i++)DispBuffer[i]=SetTemp_bit[i]。 //把“設(shè)定溫度”值放到顯示緩沖區(qū)while(StartSet==0)Display()。 //當(dāng)按鍵沒(méi)釋放時(shí)顯示設(shè)定的溫度 }其他按鍵的操作步驟也類(lèi)似,程序在這里不一一列出,在附錄I中有詳細(xì)源代碼。 LED數(shù)碼管顯示數(shù)碼管顯示的程序如下:define LED P2define LED_Section P1unsigned char DispBuffer[8]={0,0,0,0,0,0,0,0}。 //顯示緩沖區(qū)void Delay(unsigned int v) //延時(shí)函數(shù){ while(v!=0) v。 }void Display(){unsigned char i=0。unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 //數(shù)碼管碼表 unsigned char addr[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}。 //數(shù)碼管位選表 for(i=0。i8。i++) { LED=addr[8]。Delay(20)。//消除重影 if(i!=2|i!=6){ LED_Section=tab[DispBuffer[i]]。 //顯示數(shù)字 }else{ LED_Section=tab[DispBuffer[i]]0x08。 //顯示數(shù)字(帶小數(shù)點(diǎn)) } LED=addr[i]。//打開(kāi)數(shù)碼管對(duì)應(yīng)的位 Delay(400)。 //延時(shí) }}在這段程序中,位選表是為碼表和緩沖區(qū)之間建立對(duì)應(yīng)關(guān)系。程序中有一個(gè)公共顯示緩沖區(qū),數(shù)據(jù)由緩沖區(qū)發(fā)送至碼表。消除重影是為了改善顯示效果。 控制部分控制接口部分的程序:sbit HeatA=P3^5。sbit HeatB=P3^6。sbit Beeper=P3^4。sbit SignalLED=P3^3。以上為設(shè)置控制端口函數(shù)void HeatUp(){ //制冷片加熱 HeatA=1。 HeatB=0。}以上為制冷片加熱函數(shù)void CoolDown(){ //制冷片制冷 HeatA=0。 HeatB=1。}以上為制冷片制冷函數(shù)void Init_Timer0(){ TMOD=0x01。 TH0=(6553650000)/256。 //定時(shí)器隔50毫秒進(jìn)一次中斷 TL0=(6553650000)%256。 TR0=1。 ET0=1。 EA=1。}unsigned char Tcount=0。void Timer0() interrupt 1{ TH0=(6553650000)/256。 //定時(shí)器隔50毫秒進(jìn)一次中斷 TL0=(6553650000)%256。 Tcount++。 if(Tcount==20) //定時(shí)器第20次進(jìn)中斷(1s) { MeasureFlag=1。 //控制傳感器隔1秒測(cè)量一下。 Tcount=0。 }}定時(shí)器設(shè)置,目的是為了使傳感器每秒使用不超過(guò)兩次,確保傳感器的溫漂不影響使用精度。還有就是為了恒溫,確保溫度不超過(guò)設(shè)定值允許超過(guò)的范圍,有以下一段程序:Display()。 //顯示“顯示緩沖區(qū)”的內(nèi)容SetTemp=SetTemp_bit[0]*100+SetTemp_bit[1]*10+SetTemp_bit[3]+SetTemp_bit[4]*。 //轉(zhuǎn)換設(shè)定溫度為一個(gè)浮點(diǎn)數(shù)。if() //{ if(Tcount%5==0) { SignalLED=~SignalLED。 //LED燈隔250ms閃一次 Beeper=~Beeper。 //蜂鳴器每隔250ms響一次 } CoolDown()。 //制冷片制冷}else if(){ if(Tcount%5==0) // { SignalLED=~SignalLED。 //LED燈隔250ms閃一次 Beeper=~Beeper。 //蜂鳴器每隔250ms響一次 } HeatUp()。 //制冷片加熱}}} 轉(zhuǎn)換設(shè)定溫度為一個(gè)浮點(diǎn)數(shù)以后,把設(shè)定溫度值于顯示溫度值相比較,LED燈和蜂鳴器會(huì)動(dòng)作,發(fā)出報(bào)警,同時(shí)制冷片會(huì)動(dòng)作,進(jìn)行對(duì)溫度的調(diào)節(jié)。第五章 (標(biāo)題)結(jié)束語(yǔ)歷時(shí)三個(gè)月的畢業(yè)設(shè)計(jì)終于完成了,為了讓本設(shè)計(jì)盡可能完美,在這段時(shí)間里我努力的學(xué)習(xí)了許多單片機(jī)的知識(shí)。雖然完成了,但是還是決定不太滿(mǎn)意,感覺(jué)設(shè)計(jì)中還有很多地方可以做得更好的,但是由于時(shí)間太緊湊,以及本人自身所掌握的知識(shí)不夠深入的原因沒(méi)有能做出來(lái),為此略感遺憾。設(shè)計(jì)的內(nèi)容不多,主要是單片機(jī)和傳感器主體部分的電路設(shè)計(jì)和軟件編程,除此以外還有鍵盤(pán)和顯示部分,以及蜂鳴器、報(bào)警燈和制冷片這些外部控制部分。每個(gè)部分都是作為典型例子來(lái)在設(shè)計(jì)中體現(xiàn)。雖然內(nèi)容不多,但是本設(shè)計(jì)適用于很多場(chǎng)合,使用的時(shí)候只需按要求做適當(dāng)調(diào)整即可。在軟件設(shè)計(jì)部分,我所使用的是C語(yǔ)言編程,由于之前沒(méi)有學(xué)習(xí)過(guò)C編程,為了完成本設(shè)計(jì),我花了很多時(shí)間和精力去學(xué)習(xí)這方面的知識(shí)。在完成軟件設(shè)計(jì)后,本設(shè)計(jì)也接近完成,反觀(guān)整個(gè)設(shè)計(jì),感到自己三個(gè)月以來(lái)的付出還是值得的。參考文獻(xiàn)參考文獻(xiàn)[1]數(shù)字式溫濕度傳感器SHT1x/SHT7x使用指南[2]零基礎(chǔ)學(xué)單片機(jī)C語(yǔ)言程序設(shè)計(jì),機(jī)械工業(yè)出版社,[3]單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航,人民郵電出版社,[4]傳感技術(shù)與應(yīng)用教程,清華大學(xué)出版社,[5]單片機(jī)原理與接口技術(shù),化學(xué)工業(yè)出版社,[6]基于AT89C2051的溫濕度控制儀,電子技術(shù),2004[7][M].電子工業(yè)出版社,1999:2146[8]AT89C52單片機(jī)資料手冊(cè)[9]魏俊奇,數(shù)字式溫濕度傳感器的應(yīng)用,電子產(chǎn)品世界,[10]鐘曉偉,[J].林業(yè)機(jī)械與木工設(shè)備,1001—4462(2010)01003904[11]AMS1117穩(wěn)壓器資料手冊(cè)[12]何立民,單片機(jī)應(yīng)用技術(shù)選編(4)[M].北京航空航天大學(xué)出版社,1999:2030.附錄I附錄I程序源代碼:include include include ////SHT傳感器模型變量//enum {TEMP,HUMI}。sbit DATA=P3^1。sbit SCK=P3^0。define noACK 0define ACK 1 //地址 指令 讀/寫(xiě)define STATUS_REG_W 0x06 //000 0011 0define STATUS_REG_R 0x07 //000 0011 1define MEASURE_TEMP 0x03 //000 0001 1define MEASURE_HUMI 0x05 //000 0010 1define RESET 0x1e //000 1111 0typedef union { unsigned int i。 float f。} value。 bit SetFlag=0。 //進(jìn)入設(shè)置模式的標(biāo)志 bit MeasureFlag=1。//允許測(cè)量的標(biāo)志(控制傳感器一秒內(nèi)只能工作1次) //char Write_Byte(unsigned char value)//// 寫(xiě)一字節(jié)數(shù)據(jù)到串行接口 { unsigned char i,error=0。 for (i=0x80。i0。i/=2) { //8位數(shù)據(jù),按從高位到低位的順序?qū)懭霐?shù)據(jù)線(xiàn) if (i amp。 value) { DATA=1。 }else{ DATA=0。 } SCK=1。 //時(shí)鐘線(xiàn)輸入下降沿信號(hào) _nop_()。_nop_()。_nop_()。 //數(shù)據(jù)在時(shí)鐘線(xiàn)下降沿載入SHT傳感器 SCK=0。 } DATA=1。 //釋放數(shù)據(jù)線(xiàn), SCK=1。 //等待SHT傳感器在數(shù)據(jù)線(xiàn)輸入ACK信號(hào) error=DATA。 //接收應(yīng)答信號(hào) SCK=0。 return error。 //沒(méi)有收到傳感器的應(yīng)答時(shí)error=1}//char Read_Byte(unsigned char ack)////從傳感器讀一字節(jié)數(shù)據(jù),并當(dāng)ACK=1是傳送一個(gè)應(yīng)答信號(hào)。{ unsigned char i,val=0。 DATA=1。 //釋放數(shù)據(jù)線(xiàn) for (i=0x80。i0。i/=2) { SCK=1。 if (DATA) val=(val | i)。 //讀一位 SCK=0。 } DATA=!ack。 //當(dāng)ack==1拉低數(shù)據(jù)線(xiàn) SCK=1。 //準(zhǔn)備發(fā)送應(yīng)答信號(hào) _nop_()。_nop_()。_nop_()。 SCK=0。 DATA=1。 //釋放數(shù)據(jù)線(xiàn) return val。}//void TransStart(void)//// 啟動(dòng)傳輸指令// _____ ________// DATA: |_______|/
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1