简易水情监测系统,多功能
单片机源程序如下:
- #include<intrins.h>
- #include "lcd12864.h"
- #include "uart.h"
- #include "chaoshengbo.h"
- #define BAUD 9600
- #define URMD 0
- #define ADC_POWER 0x80
- #define ADC_FLAG 0X10
- #define ADC_START 0x08
- #define ADC_SPEEDLL 0x00
- #define ADC_SPEEDL 0x20
- #define ADC_SPEEDH 0x40
- #define ADC_SPEEDHH 0x60
- sbit key1 = P2^3;
- sbit key2 = P2^4;
- sbit key3 = P2^5;
- sbit key4 = P2^6;
- void InitADC();
- void SendData(unsigned char dat);
- unsigned int GetADCResult(unsigned int ch);
- void keybord();
- unsigned long beats = 1000000;
- unsigned int n = 0;
- unsigned int AD_Dat=0;
- void main()
- {
- signed int x,n,y,ph;
- static unsigned char i,j,k;
-
- P0M1 = 0; P0M0 = 0; //设置为准双向口
- P1M1 = 1; P1M0 = 0; //设置为准双向口
- P2M1 = 0; P2M0 = 0; //设置为准双向口
- P3M1 = 0; P3M0 = 0; //设置为准双向口
- P4M1 = 0; P4M0 = 0; //设置为准双向口
- P5M1 = 0; P5M0 = 0; //设置为准双向口
- P6M1 = 0; P6M0 = 0; //设置为准双向口
- P7M1 = 0; P7M0 = 0; //设置为准双向口
- P02 = 0;
- UartInit();
- InitADC();
- delay_ms(200);delay_ms(200);delay_ms(200);delay_ms(200);
- InitLcd12864();
- LcdShowString(0,0," 温度:");
- LcdShowString(0,16,"湿度:");
- LcdShowString(0,32,"PH值:");
- LcdShowString(0,48,"电压:");
- LcdShowString(96,16,"mm");
- LcdShowString(96,48,"V");
- while(1)
- {
- keybord();
- ShowResult(1);
- GetADCResult(0);
- ph = (8561.2-AD_Dat*10)/36;
- Display10BitData(ph,48,32,1);
- if(k==1)
- {
- if(j==1)
- x = S3BUF/2;
- else
- x = S3BUF;
- Display10BitData(x,48,16,0);
- if(x>15)
- {
- for(i=0;i<3;i++)
- {
- P32 = 0;P33 = 0;
- delay_ms(100);
- P32 = 1;P33 = 1;
- delay_ms(100);
- }
- }
- }
- else
- {
- y = detect(0xe8,0xb4);
- Display10BitData(n-y,48,16,0);
- }
- if(key1==0)
- {
- delay_ms(5);
- if(key1==0)
- {
- n=y;
- P55=0;
- while(!key1);
-
- }
- P55=1;
- }
- if(key2==0)
- {
- delay_ms(5);
- if(key2==0)
- {
- k++;
- k=k%2;
- P55=0;
-
-
- while(!key2);
- }
- P55=1;
- }
- if(key3==0)
- {
- delay_ms(5);
- if(key3==0)
- {
- j++;
- j=j%2;
- P55=0;
- while(!key3);
- }
- P55=1;
- }
- }
-
- }
- void keybord()
- {
-
- }
- unsigned int GetADCResult(unsigned int ch)
- {
- ADC_CONTR = ADC_POWER| ADC_SPEEDLL|ch| ADC_START;
- _nop_();
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
简易水情检测系统.zip
(148.77 KB, 下载次数: 20)
|