////////////////////////////////////////////////////////
// MODEL:watherhighcheck //
// MCU:AT89C2051 //
// Ctystal:12MHz //
// Design by:huafeng //
// Date:2007.05.19 //
////////////////////////////////////////////////////////
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
#define SHOW1 P0 //定义数据输出端口
#define SHOW2 P2 //定义数据输出端口
#define DATAIN P1 //定义数据输出端口
uchar g_ucDataInStatus;
uchar g_ucShowStatus = 0;
uchar g_ucSoundStatus = 0;
uchar g_ucSoundStatus2 = 0; //定义时分秒变量
unsigned char i = 0; //定时器增量值,用以记数
unsigned char j = 0; //定时器跟踪变量,用以记数还原
uchar code disout1[8]= {0X46, 0X05, 0X05, 0X05, 0X03, 0X03, 0X03, 0X46}; //输出口1编码
uchar code disout2[8]= {0X01, 0X09, 0X31, 0X11, 0X21, 0X00, 0x01, 0X00}; //输出口2段
//--------------------延时子函数-------------------------
delay() //
{
uchar d2;
for(d2 = 0; d2 < 0xff; d2++);
}
//-------------------数据输出----------------------------
ShowOut()
{
SHOW1 = disout1[g_ucDataInStatus];
SHOW2 = disout2[g_ucDataInStatus];
}
//-------------------关闭实时显示函数-------------------------
void CloseLink()
{
g_ucShowStatus = 1; //关闭实时显示量
TR0 = 1; //启动计时器0
}
//-------------------打开实时显示函数-------------------------
void OpenLink()
{
g_ucShowStatus = 0; //打开实时显示量
TR0 = 0; //关闭计时器0
}
//-------------------声音状态恢复函数-------------------------
void SoundBack()
{
g_ucSoundStatus = 0;
g_ucSoundStatus2 = 0;
}
//-------------------获得输入信号-------------------------
void GetSuatusNo()
{
if( (DATAIN & 0x04) == 0x04 )
{
if(g_ucSoundStatus2 == 0)
{CloseLink();
g_ucDataInStatus = 0;}
else
{ g_ucDataInStatus = 0;}
g_ucSoundStatus = 0;
goto p;
}
if( (DATAIN & 0x08) == 0x08 )
{
g_ucDataInStatus = 1;
SoundBack();
goto p;
}
if( (DATAIN & 0x10) == 0x10 )
{
g_ucDataInStatus = 2;
SoundBack();
goto p;
}
if( (DATAIN & 0x20) == 0x20 )
{
g_ucDataInStatus = 3;
SoundBack();
goto p;
}
if( (DATAIN & 0x40) == 0x40 )
{
g_ucDataInStatus = 4;
SoundBack();
goto p;
}
if(g_ucSoundStatus == 0)
{
g_ucDataInStatus = 5;
}
else
{
g_ucDataInStatus = 6;
}
g_ucSoundStatus2 = 0;
p: delay();
}
//------------------------定时器-------------------------
void waterhign_check() interrupt 1 //time0_int waterhign_check
{
TH0 = 0x3c; //定时器0初值设置
TL0 = 0xb0; //
//GetSuatusNo();
// delay();
//TR0 = 1;
i++;
if(i==10)
{
i = 0;
j++;
if(g_ucDataInStatus == 0)
{g_ucDataInStatus = 7;}
else
g_ucDataInStatus = 0;
}
if(j == 6)
{
j = 0;
OpenLink();
g_ucSoundStatus2 = 1;
}
}
static void soundoff(void) interrupt 0
{
if( g_ucSoundStatus == 0)
{
g_ucSoundStatus = 1;
}
}
//---------------------主程序函数-------------------------
void main(void)
{
TMOD = 0X01; //设定时器工作在1模式
TH0 = 0x3c; //定时器0初值设置
TL0 = 0xb0; //
EA = 0;
EX0 = 1;
PX0 = 1;
EA = 1; //开总中断
ET0 = 1; //开定时0中断
//TR0 = 1; //启动计时器0
while(1) //无限循环
{
if(g_ucShowStatus == 0)
{
GetSuatusNo() ;
}
ShowOut();
}
}
shuiweichuanganqi.rar_水位传感器
版权申诉
112 浏览量
2022-09-14
15:14:42
上传
评论
收藏 2KB RAR 举报
JaniceLu
- 粉丝: 80
- 资源: 1万+
最新资源
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈