|
|
发表于 2013-2-24 21:16:31
|
显示全部楼层
- #include "ST7920.h"
- #include "PIC.h"
- ST7920 lcd;
- int time;
- int liquid_level;
- int resistance;
- char text_liquid_level[2]={0};
- char text_resistance[4]={0};
- char *p;
- int ultrasonic=7;
- void setup()
- {
- lcd.LCD_Init();
- lcd.LCD_ClearRam();
- Serial.begin(9600);
- pinMode(8,OUTPUT);
- lcd.chsDisplay_16bit(0x80, 0xd2ba);//液
- lcd.chsDisplay_16bit(0x81, 0xcebb);//位
- lcd.chsDisplay_16bit(0x88, 0xb5e7);//电
- lcd.chsDisplay_16bit(0x89, 0xd7e8);//阻
- lcd.LCD_DisplayStrings_WithAddress(0x82,":");
- lcd.LCD_DisplayStrings_WithAddress(0x8a,":");
- }
- void loop()
- {
- pinMode(ultrasonic,OUTPUT);
- digitalWrite(ultrasonic,LOW);
- delay(1);
- digitalWrite(ultrasonic,HIGH);
- delayMicroseconds(12);
- digitalWrite(ultrasonic,LOW);
- pinMode(ultrasonic,INPUT);
- time=pulseIn(ultrasonic,HIGH);
- Serial.println(time);
- liquid_level=31.8-time*0.0001*340/2;
- sprintf(text_liquid_level,"%d",liquid_level);
- if (liquid_level<0){
- lcd.LCD_DisplayStrings_WithAddress(0x83,"OVER"); }
- else if(liquid_level<10){
- lcd.LCD_DisplayStrings_WithAddress(0x83," ");
- lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
- lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
- else{
- lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
- lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
- // lcd.LCD_DisplayStrings_WithAddress(0x83," Welcome to ");
-
- resistance=analogRead(0);
- sprintf(text_resistance,"%d",resistance);
- lcd.LCD_DisplayStrings_WithAddress(0x8b," ");
- lcd.LCD_DisplayStrings_WithAddress(0x8b,text_resistance);
- if (resistance>500 and liquid_level>10){ //---------------
- digitalWrite(8,HIGH);
- delay(2000);
- digitalWrite(8,LOW);
-
- pinMode(ultrasonic,OUTPUT);
- digitalWrite(ultrasonic,LOW);
- delay(1);
- digitalWrite(ultrasonic,HIGH);
- delayMicroseconds(12);
- digitalWrite(ultrasonic,LOW);
- pinMode(ultrasonic,INPUT);
- time=pulseIn(ultrasonic,HIGH);
- Serial.println(time);
- liquid_level=31.8-time*0.0001*340/2;
- sprintf(text_liquid_level,"%d",liquid_level);
- if (liquid_level<0){
- lcd.LCD_DisplayStrings_WithAddress(0x83,"OVER"); }
- else if(liquid_level<10){
- lcd.LCD_DisplayStrings_WithAddress(0x83," ");
- lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
- lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
- else{
- lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
- lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
- // lcd.LCD_DisplayStrings_WithAddress(0x83," Welcome to ");
-
- resistance=analogRead(0);
- sprintf(text_resistance,"%d",resistance);
- lcd.LCD_DisplayStrings_WithAddress(0x8b," ");
- lcd.LCD_DisplayStrings_WithAddress(0x8b,text_resistance);
- }
-
- delay(2000);
-
- }
复制代码
前几年编的自动浇水的程序
带LCD12864液晶显示,液位高于10cm,电阻大于500,启动水泵浇水。
视频明天回单位的电脑上找找!
|
评分
-
查看全部评分
|