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

正文內(nèi)容

基于at89s52單片機(jī)大棚溫度控制系統(tǒng)-資料下載頁

2024-12-03 17:01本頁面

【導(dǎo)讀】二〇一一年十一月十三日

  

【正文】 附錄 A:程序 /* 名稱:基本單片機(jī) AT89C52 的大棚溫度自控系統(tǒng) */ /******************************************************************* 智能溫控器 程序 描述 :當(dāng)溫控開關(guān)打開時,若測得環(huán)境溫度大于設(shè)定溫度,則繼電器吸合 ,啟動壓縮機(jī)工作;若測得環(huán)境溫度小于設(shè)定溫度,則繼電器釋放, 壓縮機(jī)停止工作。 該實(shí)驗(yàn)可以應(yīng)用于對溫度控制精度要求不是很高的場合,例如,糧倉, 電冰箱,空調(diào),電飯鍋等。如果配以通訊接口,可以做成多點(diǎn)溫度檢 測監(jiān)控系統(tǒng)。具有極強(qiáng)的擴(kuò)展性。 *******************************************************************/ include include include 27 define uchar unsigned char define uint unsigned int define BUSY 0x80 //lcd 忙檢測標(biāo)志 define DATAPORT P0 //定義 P0 口為 LCD 通訊端口 define PLAYE_ADDR XBYTE[0XBFFF] //語音報警地址 sbit RED_ALARM=P1^0。 //紅色指示燈 sbit WRITE_ALARM=P1^1。 //白色指示燈 sbit GREEN_ALARM=P1^2。 //綠色指示燈 sbit BLUE_ALARM=P1^3。 //藍(lán)色指示燈 sbit P1_4=P1^4。 //時鐘調(diào)整 sbit P1_5=P1^5。 //時鐘加 sbit P1_6=P1^6。 //時鐘減 sbit DQ = P1^7。 //定義 ds18b20 通信端口 sbit LCM_RS=P2^0。 //數(shù)據(jù) /命令端 sbit LCM_RW=P2^1。 //讀 /寫選擇端 sbit LCM_EN=P2^2。 sbit sda=P2^3。 //IO 口定義 sbit scl=P2^4。 //LCD 使能信號 sbit ad_busy=P3^2。 //adc 中斷方式接口 sbit RECLED_EOC=P3^5。 //ISD1420 放音結(jié)束查詢標(biāo)志 sbit OUT=P3^7。 uchar ad_data。 //ad 采樣值存儲 uchar seconde。 //定義并初始化時鐘變量 uchar minite。 uchar hour。 uchar mstt=0。 uchar temp1,temp2,temp。 //溫度顯示變量 uchar t,set。 uchar K。 bit ON_OFF=0。 bit outflag。 bit write=0。 uchar code str0[]={ : : }。 uchar code str1[]={SET: C SA: . C}。 void delay_LCM(uint)。 //LCD延時子程序 void initLCM( void)。 28 //LCD 初始化子程序 void lcd_wait(void)。 //LCD檢測忙子程序 void WriteCommandLCM(uchar WCLCM,uchar BusyC)。 //寫指令到 ICM 子函數(shù) void WriteDataLCM(uchar WDLCM)。 //寫數(shù)據(jù)到 LCM 子函數(shù) void DisplayOneChar(uchar X,uchar Y,uchar DData)。 //顯示指定坐標(biāo)的一個字符子函數(shù) void DisplayListChar(uchar X,uchar Y,uchar code *DData)。 //顯示指定坐標(biāo)的一串字符子函數(shù) void init_timer0(void)。 //定時器初始化 void displayfun1(void)。 void displayfun2(void)。 void displayfun3(void)。 void displayfun4(void)。 void keyscan(void )。 //鍵盤掃描子程序 void set_adj(void)。 void inc_key(void)。 void dec_key(void)。 void delay_18B20(unsigned int i)。 void Init_DS18B20(void) 。 uchar ReadOneChar(void)。 void WriteOneChar(unsigned char dat)。 void ReadTemperature(void)。 void ad0809(void)。 void playalarm(void)。 /*********延時 K*1ms,**********/ void delay_LCM(uint k) { uint i,j。 for(i=0。ik。i++) { for(j=0。j60。j++) {。} } } /**********寫指令到 LCM 子函數(shù) ************/ 29 void WriteCommandLCM(uchar WCLCM,uchar BusyC) { if(BusyC)lcd_wait()。 DATAPORT=WCLCM。 LCM_RS=0。 // 選中指令寄存器 LCM_RW=0。 // 寫模式 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=0。 } /**********寫數(shù)據(jù)到 LCM 子函數(shù) ************/ void WriteDataLCM(uchar WDLCM) { lcd_wait( )。 //檢測忙信號 DATAPORT=WDLCM。 LCM_RS=1。 // 選中數(shù)據(jù)寄存器 LCM_RW=0。 // 寫模式 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=0。 } /***********lcm 內(nèi)部等待函數(shù) *************/ void lcd_wait(void) { DATAPORT=0xff。 LCM_EN=1。 LCM_RS=0。 LCM_RW=1。 _nop_()。 while(DATAPORTamp。BUSY) { LCM_EN=0。 _nop_()。 _nop_()。 LCM_EN=1。 _nop_()。 30 _nop_()。 } LCM_EN=0。 } /**********LCM 初始化子函數(shù) ***********/ void initLCM( ) { DATAPORT=0。 delay_LCM(15)。 WriteCommandLCM(0x38,0)。 //三次顯示模式設(shè)置,不檢測忙信號 delay_LCM(5)。 WriteCommandLCM(0x38,0)。 delay_LCM(5)。 WriteCommandLCM(0x38,0)。 delay_LCM(5)。 WriteCommandLCM(0x38,1)。 //8bit 數(shù)據(jù)傳送, 2 行顯示, 5*7 字型,檢測忙信號 WriteCommandLCM(0x08,1)。 //關(guān)閉顯示,檢測忙信號 WriteCommandLCM(0x01,1)。 //清屏,檢測忙信號 WriteCommandLCM(0x06,1)。 //顯示光標(biāo)右移設(shè)置,檢測忙信號 WriteCommandLCM(0x0c,1)。 //顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號 } /****************顯示指定坐標(biāo)的一個字符子函數(shù) *************/ void DisplayOneChar(uchar X,uchar Y,uchar DData) { Yamp。=1。 Xamp。=15。 if(Y)X|=0x40。 //若 y 為 1(顯示第二行),地址碼 +0X40 X|=0x80。 //指令碼為地址碼 +0X80 WriteCommandLCM(X,0)。 WriteDataLCM(DData)。 } /***********顯示指定坐標(biāo)的一串字符子函數(shù) ***********/ void DisplayListChar(uchar X,uchar Y,uchar code *DData) { uchar ListLength=0。 31 Yamp。=0x01。 Xamp。=0x0f。 while(X16) { DisplayOneChar(X,Y,DData[ListLength])。 ListLength++。 X++。 } } /***********ds18b20 延遲子函數(shù)(晶振 12MHz ) *******/ void delay_18B20(unsigned int i) { while(i)。 } /**********ds18b20 初始化函數(shù) **********************/ void Init_DS18B20(void) { unsigned char x=0。 DQ = 1。 //DQ 復(fù)位 delay_18B20(8)。 //稍做延時 DQ = 0。 //單片機(jī)將 DQ 拉低 delay_18B20(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 delay_18B20(14)。 x=DQ。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。 } /***********ds18b20 讀一個字節(jié) **************/ unsigned char ReadOneChar(void) { uchar i=0。 uchar dat = 0。 for (i=8。i0。i) { DQ = 0。 // 給脈沖信 號
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1