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

正文內容

基于單片機的空調溫度控制器的設計論文(留存版)

2024-07-29 12:43上一頁面

下一頁面
  

【正文】 科技電子產業(yè)提出了更高的要求,為了使人們生活更人性化、智能化。單片機系統將接收的數字信號譯碼處理,通過LCD1602將溫度顯示出來,同時單片機系統還將完成鍵盤掃描 、按鍵溫度設定、超溫報警等程序的處理 ,將處理的溫度信號與系統設定溫度值比較,形成可以控制空調制冷、制熱與停止工作三種工作狀態(tài),從而實現空調的智能化。 AT89C52引腳圖如圖2所示。引腳XTAL1和XTAL2是此放大器的輸人端和輸出端。圖5 鍵盤接口電路 溫度測量電路設計 本系統的溫度測量電路采用DS18B20來實現。l 2腳VDD:電源正極。圖10 系統軟件流程圖4 系統調試程序在Keil uVision4環(huán)境下編寫。extern uchar Current_Temp_Display_Buffer[]。uchar Current_Temp_Display_Buffer[]={ NOW: }。 } TR0=1。 extern void Read_Temperature()。_nop_()。 Delay_INI(100)。 } return dat。 Temp_Value[0] = ReadOneByte()。 Display_Digit[1] = CurrentT%10。Display_Digit[3]==0) Current_Temp_Display_Buffer[8] = 39。endif:include include include includeuchar code KeyCodeTable[]={ 0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88}。 if(kCode == KeyCodeTable[0]) return K_ONE。 } else sCode = _crol_(sCode,1)。 } if(K_UP == key) { while(Keys_Scan() == K_UP)。(set_Temp_Display_Buffer[11]58)) { set_Temp_Display_Buffer[11]=1。239。639。039。 M_Count=0。 set_Temp_Display_Buffer[11]=39。639。 sel++。 M_Count=0。 set_Temp_Display_Buffer[10]=39。 set_Temp_Display_Buffer[8]=set_Temp_Display_Buffer[9] 。 set_Temp_Display_Buffer[10]=set_Temp_Display_Buffer[11] 。639。 } if(K_NINE == key) { while(Keys_Scan() == K_NINE)。 set_Temp_Display_Buffer[8] =39。 } }} /*void set(){ uchar key。 } if(K_DOWN == key) { while(Keys_Scan() == K_DOWN)。 //使能端給一高脈沖,因為初始化函數中已經將lcden置零 delay1(5)。num15。 //寫一個字符后地址指針加1 write_(0x01)。}void write_(uchar ) //寫命令函數{ lcdrs=0。 39。 } if(K_OK == key) { while(Keys_Scan() == K_OK)。039。 set_Temp_Display_Buffer[10]=set_Temp_Display_Buffer[11] 。 set_Temp_Display_Buffer[8]=set_Temp_Display_Buffer[9] 。 sel++。 set_Temp_Display_Buffer[11]=39。 set_Temp_Display_Buffer[8] =39。 set_Temp_Display_Buffer[10]=39。 } if(K_NINE == key) { while(Keys_Scan() == K_NINE)。 sel++。239。 set_Temp_Display_Buffer[10]=39。939。539。139。 } else if(set_Temp_Display_Buffer[8]==57) { set_Temp_Display_Buffer[8]=48。 39。 else if(kCode == KeyCodeTable[12]) return K_OK。k4。39。 if(Display_Digit[3] == 0) Current_Temp_Display_Buffer[7] = 39。0xf0)4) | ((Temp_Value[1]amp。 WriteOneByte(0x44)。 _nop_()。 Delay_INI(90)。void Delay_INI(uint x){ while(x)。 warm=0。 Read_Temperature()。uint S_Count=0。extern uint S_Count。圖8 輸出控制電路 總電路設計系統總電路圖如圖9所示。電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。圖4 復位電路 鍵盤接口電路設計獨立鍵盤與單片機連接時,每個按鍵都需要單片機的一個I/O口,若單片機系統需要較多按鍵,如果用獨立按鍵會占用過多的I/O口資源。RESET:復位引腳,當該端加上超過24個時鐘周期的高電平時,可是8051復位。l 三個16位定時器/計數器。2 硬件電路設計 總體方案設計空調溫度控制系統,主要要完成對溫度的采集、顯示以及設定等工作,從而實現對空調的控制。我設計了這一基于單片機的空調溫度控制系統,人們只有生活在一定的溫度環(huán)境內才能長期感覺舒服,才能保證不中暑不受凍,所以對室內溫度要求要高。另外,鍵盤輸入方面,采用了軟件來修正誤操作輸入 ,即輸入的溫度范圍必須在系統硬件所確定的范圍內,直接降低由于誤操作帶來的風險,提高了系統的可靠性 ,體現了人性化的系統設計原則。圖2 AT89C52引腳圖VCC: +5V電源輸入GND:接地P0口是一個雙向8位三態(tài)I/O口,每個口可獨立控制。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構成一個自激振蕩器, 振蕩電路的連接如圖所示圖8所示,外接石英晶體或陶瓷諧振器以及電容C1和C2構成并聯諧振電路, 接在放大器的反饋回路中。DS18B20是美國DALLAS半導體公司推出的第一片采用“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾、能力強、易配微處理器等優(yōu)點,可直接將溫度轉化成串行數字信號供處理器處理。l 3腳VO:液晶顯示對比度調節(jié)端?!?,℃,故開始運行時兩路LED燈都不點亮。extern uchar set_Temp_Display_Buffer[]。uchar set_Temp_Display_Buffer[]= { SET: }。 }}////////////////////主程序///////////////////////////////void main(){ init_lcd()。extern void Display_Temperature()。 _nop_()。 DQ = 1。}void WriteOneByte(uchar dat){ uchar i。 Temp_Value[1] = ReadOneByte()。 Current_Temp_Display_Buffer[11] = Display_Digit[0] + 39。 39。void Delay_key(){ uchar i。 else if(kCode == KeyCodeTable[1]) return K_TWO。 } } } return 1。 if((set_Temp_Display_Buffer[11]47)amp。 } else if(set_Temp_Display_Buffer[11]==48) { set_Temp_Display_Buffer[11]=57。 sel++。 sel++。 sel++。 cold=0。339。 sel++。 } if(K_ZERO == key) { while(Keys_Scan() == K_ZERO)。 cold=0。 39。 set_Temp_Display_Buffer[9]=set_Temp_Display_Buffer[10] 。 set_Temp_Display_Buffer[11]=39。 sel++。 set_Temp_Display_Buffer[8]=set_Temp_Display_Buffer[9] 。 39。 key = Keys_Scan()。 } if(S_Count) { set_num()。 //稍作延時 lcden=0。num++) { write_date(Current_Temp_Display_Buffer[num])。 //設置開顯示,不顯示光標 write_(0x06)。y)。 set_Temp_Display_Buffer[10]=39。 sel=0。 set_Temp_Display_Buffer[11]=39。 set_Temp_Display_Buffer[9]=set_Temp_Display_Buffer[10] 。 } if(K_SIX == key) { while(Keys_Scan() == K_SIX)。339。 set_Temp_Display_Buffer[10]=set_Temp_Display_Buffer[11] 。 if(K_CLEAR == key) { while(Keys_Scan() == K_CLEAR)。 39。 sel++。539。 set_Temp_Disp
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1