51单片机 先后顺序判断 程序编写问题

比如三个水位电极,接到三个单片机1O口,有水单片机口为0,没有水为1.
现在必须是低水位,低水位然后中水位,低水位然后中水位再然后高水位,这三种才是正确的。
如果先是中再是低,蜂鸣器报警。
如果先是低再是高,蜂鸣器报警。
反正水位必须按照顺序低中高这样才正确。

请问这样的编程思路该如何实现呢?求大神讲解!

两个状态寄存器,一个保存上一状态StatusLast,一个记录当前状态StatusCurrent;
if((StatusLast==Middle&&StatusCurrent==Low)||(StatusLast==Low&&StatusCurrent==High))
{报警}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-15
先画出程序流程图,再编程序。

三个检测端,把它们的状态组合起来,建立一个表格,分别对应不同的系统状态,然后判断这个状态,再处理报警或不报警。

51单片机 先后顺序判断 程序编写问题
两个状态寄存器,一个保存上一状态StatusLast,一个记录当前状态StatusCurrent;if((StatusLast==Middle&&StatusCurrent==Low)||(StatusLast==Low&&StatusCurrent==High)){报警}

51单片机汇编 排序问题 请各位赐教
题目:从片内RAM的20H单元开始,有30个数据,试编写程序将其中的正数,负数分别送51H和71H开始的存储单元,并将正数,负数的个数送往50H和70H单元。;题目要求有三个地址,需要使用三个地址指针,比较麻烦。程序如下:MOV 50H, #51H ;两个个数计数器 MOV 70H, #71H ;兼当地...

51单片机的优先级怎么用C语言怎么写?
有些单片机的中断优先级在默认的情况下是确定的,不需要设置,例如51单片机,其优先级从高到低以及向量地址是:00H 复位中断 优先级0(最高)03H 外部中断0 10BH 定时器0 213H 外部中断1 31BH

51单片机有几个中断优先级?
MCS-51单片机有两个中断优先级。在51单片机中,有2个可编程定时\/计数器·5个中断源,2个优先级,21个专用寄存器。另有8位CPU的4kbytes程序存储器(ROM) ,128bytes的数据存储器(RAM),32条I\/O口线·111条指令,大部分为单字节指令。优先级设定方法:1、IP的状态由软件设定,某位设定为“1”,...

51单片机的题目
JB指令判断出1,则跳转,判断出0,则不跳转,而是顺序执行。第一条指令上面已说作用。第二条指令判断P3.0状态,当K打开时,第二条指令判断得P3.0为1,转到L1执行。L1处是让P1.0置1,输出高,由于灯正极接了高电平,因此灯的负极(已经接到P1.0)此时也为1(P1.0=1),因此,灯不能被...

51单片机 EEPROM 的 一些顺序问题,求大神
原来的程序,用tmp<<=1空出低位,在通过条件判断决定低位是否用tmp|=0x0置1。你改动的程序,先通过条件判断决定低位是否用tmp|=0x0置1,如果条件成立会覆盖低位,然后用tmp<<=1左移1位,相当于乘2,当收的1位没收到,到这你再给乘2,当然不行了。

使用汇编语言进行51单片机程序编写时,为什么在开头不从ORG 0000H开始...
汇编语言编写时, 开头都是从ORG 0000H开始的, 由于中断向量也在0000H后面排列, 所以一般在 0000H这里放一条长转移指令, 如下面所示:ORG 0000H LJMP MAIN ; 转到主程序中去 ORG 0003H LJMP INT0 ; 转到外部中断0处理程序 ...

在51单片机中主函数放在前面和放在后面有什么区别?
程序执行的时候都是直接找到main函数开始执行的,不管主函数的位置在哪都是这么执行的。主函数放在子函数后面的话,子函数被编译器先编译,对于主函数是已知的(可以看做定义后的变量),可以省略掉函数声明,在主函数中直接引用即可。主函数在子函数前面,如果主函数要调用子函数,应该在主函数前面加上...

51单片机数码管倒计时程序,从999999开始倒计时,用定时器T1的中断完成...
这个和代码顺序有关系:while (1) { if (flag1s == 1) \/\/判断1秒定时标志 { flag1s = 0; \/\/1秒定时标志清零 sec--; \/\/秒计数自减1【这里是先减一,后面再送显示】 \/\/将sec按十进制位从低到高依次提取到buf数组中 buf[0] = sec%10; buf[1] = ...

本人新手求大神有关51单片机的问题
首先,51单片机I\/O口的直接驱动能力很弱,所以LED不要用共阴的方式接,最好用共阳的,就是所有的正极都接到电源上,而把负极分别接到相应的I\/O口上,用灌电流的方式驱动,还有记得LED需要串联限流电阻,1K的就可以,否则LED导通之后会被烧掉 程序我就不写了,给你说说思路 1 把八个LED的阴极分别接到一组...

相似回答