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

正文內(nèi)容

大型糧庫的溫濕度檢測及控制系統(tǒng)設(shè)計-閱讀頁

2025-07-22 13:41本頁面
  

【正文】 》.國防工業(yè)出版社.2005.4247.。圖41 主程序模塊 SHT10初始化流程該流程主要對傳感器的初始化進(jìn)行設(shè)計,流程圖如圖42所示[15] 劉仲娥 張維新 宋文洋.《敏感元器件與應(yīng)用》.青島海洋大學(xué)出版社.1993.46125.。LCD初始化如圖43所示[16] 唐穎.《單片機(jī)原理與應(yīng)用及C51程序設(shè)計》.北京大學(xué)出版社.2008.1418.。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN9NT、WIN2000、WINXP等操作系統(tǒng)。Keil C51開發(fā)系統(tǒng)基本知識Keil C51開發(fā)系統(tǒng)基本知識:   1. 系統(tǒng)概述   Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。   Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。   2. Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)   C51工具包的整體結(jié)構(gòu),其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 (3)仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。安裝好了Keil軟件以后,我們打開它。Project…”菜單。在彈出的對話框中選擇 CPU 廠商及型號。新建一個 C51 文件, 單擊左上角的 New File,(),再單擊“保存”。 選擇要加入的文件, 找到 , 單擊 Add, 然后單擊 Close。生成 .hex 燒寫文件,先單擊Options for Target。以上是Keil軟件的基本應(yīng)用[17] [M].北京:北京航空航天大學(xué)出版社,2004。在設(shè)計中,主要是以AT89S52單片機(jī)為核心的,對溫度和濕度的檢測與控制智能化進(jìn)行了簡單的設(shè)計與闡述。本次設(shè)計可以說是軟硬結(jié)合,又以硬件為主,軟件程序?yàn)檩o。采用模塊化、層次化設(shè)計。報警系統(tǒng)根據(jù)設(shè)定報警的上下限值實(shí)現(xiàn)報警功能,顯示部分采用字符型TC1602液晶顯示所測溫濕度值。 參考文獻(xiàn) 附錄A 電路圖 附錄B 程序includeincludeinclude include include include define uchar unsigned chardefine uint unsigned intdefine KEY_CANCEL 0x08define KEY_UP 0x04define KEY_DOWN 0x02define KEY_ENTER 0x01//uchar xdata key_lcd_val_tmp[12]。//記錄當(dāng)前正在顯示的頁面,初始狀態(tài)顯示第一頁uchar is_setting_system = 0。 //鍵值為零uchar key_value_valid = 0。sbit heater =P1^0。sbit weter=P1^2。sbit Beep =P3^6。sbit LED_GREEN=P1^4。sbit KEY02=P2^1。sbit KEY04=P2^3。void Init()。 //LCD延時子程序void initLCM( void)。 //LCD檢測忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC)。 //寫數(shù)據(jù)到LCM子函數(shù)void DisplayOneChar(uchar X,uchar Y,uchar DData)。 //顯示指定坐標(biāo)的一串字符子函數(shù)void weishu1(float m)。 void alarm(void)。//處理按鍵與lcd1602顯示,while循環(huán)中直接使用 /**********main funcation************/ void main(void){ /*********************************/ uint temp,humi。// float humi_val,humi_val1,humi_val2,humi_val3,humi_val4。 //定義兩個共同體,一個用于濕度,一個用于溫度// float dew_point。 //用于檢驗(yàn)是否出現(xiàn)錯誤 uchar checksum。 unsigned char HUMI,TEMP。 TEMP=0X02。// uchar wendu[4]。//用于記錄濕度/**********************************///delay(500)。 //采樣值存儲單元初始化為0initLCM( )。LED_GREEN=0。delay(1000)。WriteCommandLCM(0x01,1)。DisplayListChar(0,1,str2)。//s_connectionreset()。if( is_setting_system == 0 ){error=0。,amp。 //溫度測量error+=s_measure((unsigned char*)amp。checksum,HUMI)。,amp。error+=s_measure((unsigned char*)amp。checksum,TEMP)。,amp。error+=s_measure((unsigned char*)amp。checksum,TEMP)。,amp。error+=s_measure((unsigned char*)amp。checksum,TEMP)。 ////如果發(fā)生錯誤,系統(tǒng)復(fù)位else{ =(float)。 //轉(zhuǎn)換為浮點(diǎn)數(shù)=(float)。=(float)。=(float)。calc_sth10(amp。)。,amp。calc_sth10(amp。)。,amp。=(+++)/4。 //計算e dew_pointtemp=*10。Temp_bai=temp/1000。 //溫度十位 Temp_ge =temp%100/10。 //溫度小數(shù)點(diǎn)后第一位 Humi_bai=humi/1000。 //濕度十位 Humi_ge =humi%100/10。 //濕度小數(shù)點(diǎn)后第一位 alarm()。amp。Temp_shi=temp%1000/100。 //溫度個位Temp_fen=temp%10。Temp_CHA=。 //溫度十位 Temp_ge =Temp_CHA%100/10。 //溫度小數(shù)點(diǎn)后第一位 */display0()。 } display2()。 }}/***********************/void Init(){//TMOD=0x11。//TH1=0xB0。// ET1=1。EX1=1。 //定時器1運(yùn)行}/*********延時K*1ms,**********/void delay(uint k){ uint i,j。ik。j100。} /*****************報警子函數(shù)*******************/void alarm(void){ uint sht_temp1。 uint sht_humi1。 uint sht_temp。 sht_temp1=sht_10[0]*100+sht_10[1]*10+sht_10[2]。 sht_humi1=sht_10[6]*100+sht_10[7]*10+sht_10[8]。 sht_temp =Temp_bai*100+Temp_shi*10+Temp_ge。 if(sht_temp=sht_temp1) { Beep =1。 LED_GREEN=1。 delay(500)。 LED_RED =1。 Cooler=0 。 LED_RED =0。 Heater=1。 } else { Beep =0。 LED_GREEN=0。 } if(sht_humi=sht_humi1) { Beep =1。 LED_GREEN=1。 delay(500)。 LED_RED =1。 Dryer=0。 LED_RED =0。 Weter=1。 } else { Beep =0。 LED_GREEN=0。 } /* if(sht_temp=124 || sht_temp=40 || sht_humi=101 || sht_humi0) { Beep =1。 LED_GREEN=1。 } else { Beep =0。 LED_GREEN=0。//臨時循環(huán)變量 //static uchar xdata save_data[12]={0,0,0,0,0,0,0,0,0,0,0,0}。 //static uchar key_up_down_value = 0。//下一次進(jìn)入系統(tǒng)設(shè)置頁面 //inner_page_offset = 1。 display4()。if(sht_10[j]=9)sht_10[j]=9。display4()。 /*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/ case KEY_DOWN://按下的是向下鍵↓{sht_10[j]。 display3()。 }break。if(j12)j=0。/*CANCEL CANCEL CANCEL CANCEL CANCEL */case KEY_CANCEL:is_setting_system = 0。default:break。//鍵值無效,為下一次按鍵做準(zhǔn)備EX1=1。uchar key_mand = 0。uchar i。//置端口為輸入狀態(tài)KEY01 = 1。KEY03 = 1。 EX1=0。//延時片刻,待信號穩(wěn)定key_tmep_value[0] = ~KEY01。key_tmep_value[2] = ~KEY03。for(i=0。i++) { key_mand |= (key_tmep_value[i] i)。//獲取鍵值key_value_valid = 1。case KEY_DOWN:key_value = key_mand。//鍵值有效 break。//獲取鍵值key_value_valid = 1。 case KEY_CANCEL:key_value = key_mand。//鍵值有效 break。//testbreak。 //外部中斷1允許 }/* void timer1() interrupt 3 using 3{ //uchar temp。 TH1=0xB0。// P2=0xfe。0xf0。對于自己的成果,首先應(yīng)該感謝的是四年來所有交教授過我的老師們,在他們傳授的知識的基礎(chǔ)上才能有現(xiàn)在的畢業(yè)設(shè)計;同時,我的指導(dǎo)老師張紅蓮老師也給與了我巨大的幫助,從總體方案的確定到具體硬件的選擇,再到軟件的設(shè)計,無一不得到老師的巨大幫助,在此向老師致以誠摯的感謝。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1