我是华夏学院学生,如果是本校学生,请勿抄我的作业 |
xuyaqi 发表于 2020-6-20 21:19 谢谢你给的思路 |
hange_v 发表于 2020-6-20 21:50 老师,要求用单片机来实现 ![]() |
设置2个标志位记录霍尔和按键的状态。
|
这还需要单片机吗???传感器、蜂鸣器、开关三个器件串起来不就行啦??? |
这个还需要用单片机,传感器、蜂鸣器 |
#include<reg51.h> sbit sound=P1^7;//报警 sbit button=P1^0;//传感器 sbit k1=P2^0;//消铃 void delay(int i) {while(i--);} void main() { while(1) { if(button==0 && k1!=0)// { sound=~sound; delay(10); } } } |
我手头没有keil4软件 goto语句帮我验证一下,这里我写了两个程序 #include<reg51.h> sbit sound=P1^7; sbit button=P1^0; sbit k1=P2^0; void delay(int i) {while(i--);} loop: void main() { while(1) { if(button==0) { delay(100); sound=1; if(k1==0) { delay(100); if(k1==0) sound=0; } while(!k1); goto loop; } } } #include<reg51.h> sbit sound=P1^7; sbit button=P1^0; sbit k1=P2^0; void delay(int i) {while(i--);} void main() { sound=0; while(1) { if(button==0) { sound=~sound; // sound=0; while(!k1) //或者将下一条语句改为设立一个标志为例如flag=0;if(flag==0)sound=~sound; while(1) sound=~sound; delay(100); // sound=1; } goto loop; } } } |
你应该设置一个报警保持灯,当报警来时(P10低电平),P17发警报音,此时按P20报警保持灯亮,报警音停,直到报警消除(P10高电平),报警保持灯灭。 |
显然还是继续报警,没错,都用触点按键就不会出现没打开的开关。 |