找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3489|回復: 1
收起左側(cè)

[求助]菜鳥求助

[復制鏈接]
ID:40138 發(fā)表于 2012-5-12 21:09 | 顯示全部樓層 |閱讀模式

我做的是一個水箱監(jiān)控,現(xiàn)在在消聲的問題上出現(xiàn)了困難。
要求也很簡單,當水位上限到的時候就報警,按下消聲按鈕后就消聲,完了然后下次水位又到上限的時候再報警,按下消聲后再消聲,如此循環(huán),水位下限也是一樣的。
看下程序吧
#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;
}
}
我這個程序就是 報警-消聲后 再次到水位上限它就不會報警了,這該怎么解決呢。
我是新手,希望大俠幫幫忙。
因為工作原因確實沒時間系統(tǒng)的學習單片機,這個問題已經(jīng)有2個星期了,靠自己零碎的學習真的抓不到突破口了,希望朋友們幫下忙 謝了

回復

使用道具 舉報

ID:34178 發(fā)表于 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

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表