完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用单片机用C语言编程闪光报警器消音总是消音键松开声音又响起是咋回事程序如下:望高手指点
#include ***it led1=P1^0; ***it led2=P1^1; ***it led3=P1^2; ***it led4=P1^3; ***it test=P2^0; ***it rest=P2^1; ***it s1=P3^4; ***it s2=P3^5; ***it s3=P3^6; ***it s4=P3^7; ***it beep=P2^3; void delay(unsigned int i) { unsigned int j; unsigned char k; for(j=i;j>0;j--) for(k=125;k>0;k--); } void flash(void) { while(!test) { P1=0xff; delay(200); P1=0xf0; delay(200); beep=~beep; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 } } void xiaoshan(void) { while(rest!=0xfe) { P1=0xff; if(s1==0) led1=0; beep=1; if(s2==0) led2=0; beep=1; if(s3==0) led3=0; beep=1; if(s4==0) led4=0; beep=1; } } void baojing(void) { P1=0xff; if(s1==0) beep=~beep; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(s2==0) beep=~beep; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(s3==0) beep=~beep; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(s4==0) beep=~beep; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(test==0) beep=~beep; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 } void main() { if(!test) //实验按钮 flash(); if(~rest) //消音 xiaoshan(); if(s1==1) led1=1; if(s1==0) led1=~led1; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔 if(s1==0) baojing(); if(s2==1) led2=1; if(s2==0) led2=~led2; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(s2==0) baojing(); if(s3==1) led3=1; if(s3==0) led3=~led3; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(s3==0) baojing(); if(s4==1) led4=1; if(s4==0) led4=~led4; //没隔一段时间即对输出取反。 delay(200); //闪烁间隔。 if(s4==0) baojing(); |
|
相关推荐
1个回答
|
|
帮你顶上去
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
820 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第十一章 KEY实验
388 浏览 0 评论
783 浏览 0 评论
801 浏览 2 评论
飞凌嵌入式-ELFBOARD-ELF 2硬件知识分享-最小系统原理
466 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11929 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 08:48 , Processed in 0.700521 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号