- 主要程序代码
- #include <reg52.h>
- #include <stdio.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar flag,wei;
- sbit D=P2^0;
- sbit C=P2^1;
- sbit b=P2^2;
- sbit A=P2^3;
- sbit led1=P1^0; //低水位指示灯
- sbit led2=P1^1; //正常水位指示灯
- sbit led3=P1^2; //高水位指示灯
- sbit led4=P1^3;
- sbit led5=P1^4;
- sbit jdq=P3^5; //继电器
- sbit beep=P1^5; //蜂鸣器
- sbit key1=P3^2;
- sbit key2=P3^3;
- sbit key3=P3^4;
- bit key1_flag=0;
- bit key2_flag=0;
- bit key3_flag=0;
- bit A_M=0;
- uchar code table[]=
- {
- 0xc0,0xf9,0xa4,0xb0,0x99,
- 0x92,0x82,0xf8,0x80,0x90,
- }; //共阳数码管段码表 没有小数点 0~9
- void didi() //声音
- {
- beep=0; //蜂鸣器响
- delay(100); //延时
- beep=1; //蜂鸣器关
- delay(100); //延时
- }
- void shuiwei() //水位检测部分
- {
- if(A==1&&b==1&&C==1&&D==1) //ABCD都为高电平 水位为4
- {
- wei=4;
- }
- if(A==0&&b==1&&C==1&&D==1)
- {
- wei=3;
- }
- if(A==0&&b==0&&C==1&&D==1)
- {
- wei=2;
- }
- if(A==0&&b==0&&C==0&&D==1)
- {
- wei=1;
- }
- if(A==0&&b==0&&C==0&&D==0)
- {
- wei=0;
- }
- }
- void main()
- {
-
- while(1)
- {
- shuiwei();
- kongzhi();
- if(A_M)
- {
-
- led5=0;
- led4=1;
- }
- else
- {
- led4=0;
- led5=1;
- beep=1;
- }
- P0=table[wei]; //对应数码管显示
- key_scan();
- }
- }
复制代码
|