找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2575|回复: 1
收起左侧

简易水情监测系统的单片机源程序

[复制链接]
ID:353057 发表于 2018-8-25 09:31 | 显示全部楼层 |阅读模式
简易水情监测系统,多功能
0.png

单片机源程序如下:
  1. #include<intrins.h>
  2. #include "lcd12864.h"
  3. #include "uart.h"
  4. #include "chaoshengbo.h"
  5. #define BAUD  9600


  6. #define URMD 0

  7. #define ADC_POWER 0x80
  8. #define ADC_FLAG 0X10
  9. #define        ADC_START 0x08
  10. #define        ADC_SPEEDLL 0x00
  11. #define        ADC_SPEEDL        0x20
  12. #define        ADC_SPEEDH        0x40
  13. #define        ADC_SPEEDHH        0x60

  14. sbit key1 = P2^3;
  15. sbit key2 = P2^4;
  16. sbit key3 = P2^5;
  17. sbit key4 = P2^6;

  18. void InitADC();
  19. void SendData(unsigned char dat);
  20. unsigned int GetADCResult(unsigned int ch);
  21. void keybord();
  22. unsigned long beats = 1000000;
  23. unsigned int n = 0;
  24. unsigned int AD_Dat=0;


  25. void main()
  26. {       
  27.     signed int x,n,y,ph;
  28.         static unsigned char i,j,k;

  29.             

  30.     P0M1 = 0;        P0M0 = 0;        //设置为准双向口
  31.         P1M1 = 1;        P1M0 = 0;        //设置为准双向口
  32.         P2M1 = 0;        P2M0 = 0;        //设置为准双向口
  33.         P3M1 = 0;        P3M0 = 0;        //设置为准双向口
  34.         P4M1 = 0;        P4M0 = 0;        //设置为准双向口
  35.         P5M1 = 0;        P5M0 = 0;        //设置为准双向口
  36.         P6M1 = 0;        P6M0 = 0;        //设置为准双向口
  37.         P7M1 = 0;        P7M0 = 0;        //设置为准双向口

  38.         P02 = 0;

  39.    UartInit();
  40.    InitADC();

  41.    delay_ms(200);delay_ms(200);delay_ms(200);delay_ms(200);
  42.    InitLcd12864();

  43.    LcdShowString(0,0,"  温度:");
  44.    LcdShowString(0,16,"湿度:");
  45.    LcdShowString(0,32,"PH值:");
  46.    LcdShowString(0,48,"电压:");
  47.    LcdShowString(96,16,"mm");
  48.    LcdShowString(96,48,"V");


  49.    while(1)
  50.    {
  51.         keybord();
  52.     ShowResult(1);
  53.         GetADCResult(0);
  54.         ph = (8561.2-AD_Dat*10)/36;
  55.         Display10BitData(ph,48,32,1);
  56.         if(k==1)
  57.         {
  58.           if(j==1)
  59.           x = S3BUF/2;
  60.           else
  61.           x = S3BUF;

  62.           Display10BitData(x,48,16,0);
  63.           if(x>15)
  64.           {
  65.                   for(i=0;i<3;i++)
  66.                 {
  67.                   P32 = 0;P33 = 0;
  68.                   delay_ms(100);
  69.                   P32 = 1;P33 = 1;
  70.                   delay_ms(100);
  71.                 }
  72.           }
  73.         }
  74.         else
  75.         {
  76.           y =        detect(0xe8,0xb4);
  77.           Display10BitData(n-y,48,16,0);
  78.         }
  79.          if(key1==0)
  80.         {
  81.           delay_ms(5);
  82.         if(key1==0)
  83.           {
  84.             n=y;
  85.                 P55=0;
  86.                 while(!key1);
  87.        
  88.           }
  89.           P55=1;
  90.         }
  91.         if(key2==0)
  92.         {
  93.           delay_ms(5);
  94.     if(key2==0)
  95.           {
  96.                   k++;
  97.                 k=k%2;
  98.                 P55=0;
  99.        
  100.        
  101.                 while(!key2);
  102.           }
  103.           P55=1;
  104.         }
  105.         if(key3==0)
  106.         {
  107.           delay_ms(5);
  108.     if(key3==0)
  109.           {
  110.                   j++;
  111.                 j=j%2;
  112.                 P55=0;
  113.                 while(!key3);
  114.           }
  115.           P55=1;
  116.         }

  117.    }
  118.   
  119. }                 
  120. void keybord()
  121. {
  122.        
  123. }
  124. unsigned int GetADCResult(unsigned int ch)
  125. {
  126.    ADC_CONTR = ADC_POWER| ADC_SPEEDLL|ch| ADC_START;
  127.    _nop_();
  128. ……………………

  129. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
简易水情检测系统.zip (148.77 KB, 下载次数: 20)
回复

使用道具 举报

ID:1 发表于 2018-8-25 16:22 | 显示全部楼层
这是电赛题吗?能不能分享下原理图?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表