完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是简单的8路报警程序,但是来一路报警时,另一路报警再来时就输出不了。是不是就是里面while(1)惹得祸?
还有就是想请大神把帮忙指导有数组怎么输入8路报警信号(P1)口输入。谢谢 void alarm() { if(P1_0==0) { delayms(200); if(P1_0==0); { while(1) { P0_0=0; delayms(200); P0_0=1; delayms(200); } } } if(P1_1==0) { delayms(200); if(P1_1==0); { while(1) { P0_1=0; delayms(200); P0_1=1; delayms(200); } } } if(P1_2==0) { delayms(200); if(P1_2==0); { while(1) { P0_2=0; delayms(200); P0_2=1; delayms(200); } } } if(P1_3==0) { delayms(200); if(P1_3==0); { while(1) { P0_3=0; delayms(200); P0_3=1; delayms(200); } } } if(P1_4==0) { delayms(200); if(P1_4==0); { while(1) { P0_4=0; delayms(200); P0_4=1; delayms(200); } } } if(P1_5==0) { delayms(200); if(P1_5==0); { while(1) { P0_5=0; delayms(200); P0_5=1; delayms(200); } } } if(P1_6==0) { delayms(200); if(P1_6==0); { while(1) { P0_6=0; delayms(200); P0_6=1; delayms(200); } } } if(P1_7==0) { delayms(200); if(P1_7==0); { while(1) { P0_7=0; delayms(200); P0_7=1; delayms(200); } } } } void main { while(1) { alarm(); } } |
|
相关推荐
11个回答
|
|
你自己都已经发现了问题,不去改改试下。
|
|
|
|
当来第一次报警时,程序就在while里面死循环,就算有其他的信号来,也无法执行,一直在执行第一次报警while,将子程序里面的while去掉
|
|
|
|
我都试过了,将子程序里面的while去掉怎么让来报警的灯闪烁啊?还有就是我觉得这样写太麻烦,能不能用数组的方法写。我试过但是都行不通,初学这个东西,自己独立编还是有挑战的。希望能帮忙一下。谢谢 |
|
|
|
|
|
|
|
用一个定时器,定时器里面判断,定时器中断里面进行判断引脚,然后取反
|
|
|
|
|
|
|
|
void Init_Timer0(void)
{ TMOD |= 0x01; //TH0=0x00; //TL0=0x00; EA=1; ET0=1; TR0=1; } main() { Init_Timer0(); while(1); } void Timer0_isr(void) interrupt 1 using 1 { static unsigned char i; TH0=(65536-10000)/256; //定时10ms TL0=(65536-10000)%256; i++; if(i==20)//时间200ms { i=0; if(P1_1==0) { P0_1=~P0_1; } } } 评分 |
|
|
|
首先谢谢你的回复。你的方法我试了一下。它只会常亮不能闪烁。 |
|
|
|
不会的,定时器里面的 P0_1=~P0_1;,就是单个引脚取反的,你把if(i==20)//时间200ms时间,调大一些,20改成200试试,如果还是不行,把你下载的程序粘贴出来看看
|
|
|
|
本帖最后由 gfadmsfm 于 2016-8-20 08:54 编辑
我试过可行,不知道是不是你需要的。 #include unsigned char X; void delayms1(unsigned int x) { unsigned char i; while(x--)for(i=0;i<=120;i++); } void main() { while(1) { X=P0; if(X<255) { P1=P0; delayms1(1000); P1=0XFF; delayms1(1000); P1=P0; } else { P1=0XFF; } } } |
|
|
|
一卷空白qw 发表于 2016-8-19 19:48 我看错了,可以不好意思。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
182 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1207 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
493 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之开发板测试
420 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之网络socket程序编程
957 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11732 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 12:35 , Processed in 0.836184 second(s), Total 98, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号