完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
做了个SOS的声光求救告警程序,蜂鸣器响SOS声音,数码管显示SOS字符。下载进单片机后,按K3,按键,中断没反应,
编译时:提示警告: void Int0Configuration() 没有调用? Build target 'Target 1' compiling beep+key1.c... linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?INT0CONFIGURATION?BEEP_KEY1 Program Size: data=15.0 xdata=0 code=383 creating hex file from "SOS"... "SOS" - 0 Error(s), 1 Warning(s). 下面是我的程序,请大家给看看呗。 /* 说明:蜂鸣器占用P1^5。数码管占用P0口。 */ #include ***it Beep=P1^5; //蜂鸣器占用P1^5。 ***it K3=P3^2; //独立按键 ***it LSA=P2^2; //位选信号 ***it LSB=P2^3; ***it LSC=P2^4; unsigned char SOS[]={0x6d,0x3f,0x6d}; //SOS的显示码 unsigned int i; unsigned char e=0x01; void delay(unsigned int a) // { unsigned char b; for(a;a>0;a--) for(b=155;b>0;b--); } void SOSdigital() { unsigned char d,j; for(d=0;d<3;d++) { switch(d) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 } P0=SOS[d];//发送段码 j=10; //扫描间隔时间设定 while(j--); P0=0x00;//消隐 } } void Beepf() { Beep=0; SOSdigital(); // delay(1); // Beep=1; SOSdigital(); delay(1); } void Beep1() { i=150; while(i--) { Beepf(); } } void Beep2() { i=450; while(i--) { Beepf(); } } void SOSaudio() // { unsigned char c; for(c=0;c<3;c++) { Beep1(); delay(200); } delay(400); for(c=0;c<3;c++) { Beep2(); delay(600); } for(c=0;c<3;c++) { Beep1(); delay(200); } delay(2400); } void Int0Configuration() { //设置INT0 IT0=1;//跳变沿出发方式(下降沿) EX0=1;//打开INT0的中断允许。 EA=1;//打开总中断 } /******************************************************************************* * 函数名 : Int0() * 函数功能 : 外部中断0 中断函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void Int0() interrupt 0 { if(K3==0) { e=~e; } } void main() { while(e) { SOSaudio(); } } |
|
相关推荐
2 个讨论
|
|
//把以下部分语句修改试试
//***it K3=P3^2; //多余 /* void Int0Configuration()//多余 { //设置INT0 IT0=1;//跳变沿出发方式(下降沿) EX0=1;//打开INT0的中断允许。 EA=1;//打开总中断 }*/ void Int0() interrupt 0 { // if(K3==0) //赘句,外部中断0请求源默认P3.2 e=~e; //e=0x01,取反e=0xfe } void main() { IT0=1;//跳变沿出发方式(下降沿) 放在这里 EX0=1;//打开INT0的中断允许。 EA=1;//打开总中断 while(e) //e用在这里似乎没有实际意义,是否要定义为bit e=1? { SOSaudio(); } } |
|
|
|
|
|
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
952 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
469 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之开发板测试
400 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之网络socket程序编程
933 浏览 0 评论
飞凌嵌入式-ELFBOARD-RGB LCD屏接口的PCB设计要点
920 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11732 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 10:22 , Processed in 0.647744 second(s), Total 63, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号