温室大棚控制系统设计(6)

2019-08-30 20:26

大连交通大学2010届本科生毕业设计(论文)

附 录

#include #include

#define LCD_DB P2

sbit DQ = P1^0; sbit BUZZER = P1^1; sbit PWM = P1^2; sbit LCD_RS = P1^4; sbit LCD_RW = P1^5; sbit LCD_E = P1^6; sbit HEAT = P1^7;

void initial(void); void read_DHT11(void);

void LCD_write_command(unsigned char com);

void LCD_display_char(unsigned char x, unsigned char y, unsigned char dat); unsigned char read_DHT11_char(void); void control_temperature_humidity(void); void delay_xms(unsigned int time_xms); void delay_x10us(unsigned int time_x10us);

unsigned char stop_system = 0;

unsigned char lineOne[] = \ C%unsigned char lineTwo[] = \ %RH%unsigned int T0_number = 0, T1_number, PWM_width_H;

unsigned char temperature_ten, temperature_one, humidity_ten, humidity_one; unsigned char temperature_H, temperature_L, humidity_H, humidity_L, checkData;

void initial(void) {

unsigned char i, j;

23

大连交通大学2010届本科生毕业设计(论文)

}

TMOD = 0x11; //定时器0工作方式1,16位计数器;定时器1工作方式1,16位TH1 = 0xFC; TH1 = 0x66; TH0 = 0xFC; EA = 1; ET1 = 1; ET0 = 1; EX0 = 1; IT1 = 1; TR0 = 1;

LCD_write_command(0x38); //设置8位格式,2行,5x7

LCD_write_command(0x0c); //设置整体显示,关闭光标,且不闪烁 LCD_write_command(0x06); //设置输入方式,增量不移位 LCD_write_command(0x01); //清屏 for (i = 0; i < 16; i++) { }

for (j = 0; j < 16; j++) { }

LCD_display_char(14, 1, 0xDF);

//显示

LCD_display_char(j, 2, lineTwo[j]); LCD_display_char(i, 1, lineOne[i]);

//定时器1溢出周期1ms,延时

//定时器0中断周期1ms,PWM

计数器

TL0 = 0x66;

void read_DHT11(void) {

DQ = 0; delay_xms(18);

24

大连交通大学2010届本科生毕业设计(论文)

}

DQ = 1; delay_x10us(2);

if (DQ == 0) {

while (DQ == 0); }

while (DQ == 1);

humidity_H = read_DHT11_char(); humidity_L = read_DHT11_char(); temperature_H = read_DHT11_char(); temperature_L = read_DHT11_char();

unsigned char read_DHT11_char(void) {

unsigned char i, temp_one, temp_two; for (i = 0; i < 8; i++) { }

return temp_two;

25

while (DQ == 0); delay_x10us(3);

if (DQ == 0) { } else { }

temp_two <<= 1; temp_two |= temp_one; while(DQ == 1);

temp_one = 1; temp_one = 0;

大连交通大学2010届本科生毕业设计(论文)

}

void LCD_write_command(unsigned char com) { }

void LCD_display_char(unsigned char x, unsigned char y, unsigned char dat) { }

void LCD_display_DHT11(void) {

26

LCD_DB = com; LCD_RS = 0; LCD_RW = 0; LCD_E = 1; delay_xms(1); LCD_E = 0; delay_xms(5);

if (y == 1) { } else { }

LCD_DB = dat; LCD_RS = 1; LCD_RW = 0; LCD_E = 1; delay_xms(1); LCD_E = 0; delay_xms(5);

LCD_write_command(0xc0 + x); LCD_write_command(0x80 + x);

大连交通大学2010届本科生毕业设计(论文)

}

temperature_ten = temperature_H / 10 + 0x30; temperature_one = temperature_H % 10 + 0x30; humidity_ten = humidity_H / 10 + 0x30; humidity_one = humidity_H % 10 + 0x30;

LCD_display_char(12, 1, temperature_ten); LCD_display_char(13, 1, temperature_one); LCD_display_char(11, 2, humidity_ten); LCD_display_char(12, 2, humidity_one);

void control_temperature_humidity(void) {

if (temperature_H > 28) { }

else if (temperature_H < 18) { } else { }

if (temperature_H >= 23) { }

HEAT = 0; PWM_width_H = 0; HEAT = 1;

PWM_width_H = 100;

//温度→转速

PWM_width_H = (temperature_H - 18) * 10;

if (humidity_H > 65 || humidity_H < 45) { }

BUZZER = 1;

//湿度→蜂鸣

27


温室大棚控制系统设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:煤炭业会计分录大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: