找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3022|回复: 1
打印 上一主题 下一主题
收起左侧

[求助]菜鸟求助

[复制链接]
跳转到指定楼层
楼主
ID:40138 发表于 2012-5-12 21:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我做的是一个水箱监控,现在在消声的问题上出现了困难。
要求也很简单,当水位上限到的时候就报警,按下消声按钮后就消声,完了然后下次水位又到上限的时候再报警,按下消声后再消声,如此循环,水位下限也是一样的。
看下程序吧
#include<reg52.h>
sbit FH=P1^6; //上限报警信号
sbit XSH=P3^3; //消声按钮
sbit BJ=P3^7; //报警
sbit EL=P1^7; //下限报警信号
unsigned int i;
bit BJ_flags=0;
bit BJ_flagx=0;
void init_T0(void)
{
TMOD=0x01;
TH0=0;
TL0=0;
ET0=1;
}
void int_T0(void) interrupt 1
{
TH0=0xf1;
TL0=0xf1;
if(BJ_flags==0&&FH==0) //
BJ=!BJ;
if(BJ_flagx==0&&EL==0)
BJ=!BJ;
}
void main(void)
{
init_T0();
EA=1;
TR0=1;
while(1)
{
if(XSH==0) //消声
BJ_flags=1;
BJ_flagx=1;
}
}
我这个程序就是 报警-消声后 再次到水位上限它就不会报警了,这该怎么解决呢。
我是新手,希望大侠帮帮忙。
因为工作原因确实没时间系统的学习单片机,这个问题已经有2个星期了,靠自己零碎的学习真的抓不到突破口了,希望朋友们帮下忙 谢了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:34178 发表于 2012-5-13 21:13 | 只看该作者

ORG 00H;刚刚写的,试ok了!!
START:

   JB P1.6,QQ; 触控0电位上位

   AJMP QQ1;
 QQ:
   JB P1.7,START; 触控0电位下位
 AJMP QQ1;
 QQ1:
   JB P3.3,QQ2;  消按键!0电位有效

   SETB P3.7;  报警关!!!
   JNB P1.7,$; 等待水位正常!!
   JNB P1.6,$; 等待水位正常!!
   AJMP START
 QQ2:

   LCALL DELAY;
   CLR P3.7;  报警0电位有效
   AJMP START;
DELAY:
   MOV R3,#200;
   D1:MOV R4,#256;
   D2:DJNZ R4,D2;
      DJNZ R3,D1;
   RET


   END

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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