基于STC89C52R单片机实现的蔬菜大棚温度控制系统设计.. 下载本文

学出版社

[2] 胡学林 主编《可编程控制器应用技术》高等教育出版社 [3] 廖常初 主编 《PLC基础应用》 机械工业出版社 [4] 徐 晋 赵二唯 PLC技术及其在公路交通系统巾的应用 [5] 郭燕萍 李晓波 基于PLC技术的多车道交通灯实验监控装置 [6] 管声启 师红宇、基于可编程控制器城市交通灯智能控制 [7] 张力胜、PLC控制十字交通灯的设计[J] 、矿业科学技术。 [8] 李建忠、单片机原理与应用[M]、西安电子科技大学出版社。 [9] 张进秋 陈永利、可编程控制器原理与应用实例[M]、机械工程出版社。

[10] 江秀汉 汤 楠、可编程序控制器原理及应用

注:部分参考百度文库、百度知道

附录

*-----------------------------------------------

名称:基本单片机STC89C52R的大棚温度自控系统 ------------------------------------------------*/ #include #include\#include #include #include\

#define uchar unsigned char #define uint unsigned int;

/******************************************************************/ /* 定义端口 */ /******************************************************************/ sbit DQ=P1^3;//ds18b20 端口 sbit Fan=P1^5; //风扇端口 sbit Tru=P1^7;//喇叭的端口 sfr dataled=0x80;//显示数据端口

/******************************************************************/ /* 全局变量 */ /******************************************************************/ uint temp,i,TempH;

uchar flag_get,count,num,minute,second,x; long str[6];

/******************************************************************/ /* 函数声明 */ /******************************************************************/ void delay1(uchar MS);

unsigned int ReadTemperature(void);

void Init_DS18B20(void); unsigned char ReadOneChar(void); void WriteOneChar(unsigned char dat); void delay(unsigned int i);

/******************************************************************/ /* 延时函数声明 */

/******************************************************************/ void mDelay(unsigned char j) {

unsigned int i; for(;j>0;j--) {

/******************************************************************/ /* 主函数 */ /******************************************************************/ main() {

unsigned char TempH,TempL; TMOD|=0x01;//定时器设置 TH0=0xef; TL0=0xf0; IE=0x82; TR0=1; P2=0x00; count=0;

InitLcd();

for(i=0;i<125;i++) {;} }

}

mDelay(20); while(1) { Fan=1; mDelay(10); Tru=1; mDelay(10);

if((TempH>20)&&(TempH<=25)) { Fan=0; mDelay(10);

}

if((TempH>25)&&(TempH<=30))

{ Fan=0; mDelay(30);

}

if((TempH>30)&&(TempH<=35)) { Fan=0; mDelay(70);

}

if(TempH>35) //产生报警信号

{ Tru=0; mDelay(10); Fan=0; mDelay(150);

for(i=1;i<5;i++)

Tem[i]=str[i]; disp(); }