完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 nickychung 于 2014-1-17 22:34 编辑
给它发送1,可以返回1,但是蜂鸣器却响了一会。 是不是我的无限大循环函数出现了问题 #include #define uint unsigned int #define uchar unsigned char ***it Beep = P1^5 ; uint z,flag,a; uchar b; void delay(uint i); void init(); void wuyuanbeep(uint z); void main() { init(); while(1) { if(flag==1) { EA=0; flag=0; SBUF=a; //返回1. switch(a) //蜂鸣器先响了一会。是不是无限循环出现了问题。 { case ‘1’:wuyuanbeep(400);break; case ‘2’:wuyuanbeep(200);break; case ‘3’:wuyuanbeep(100);break; case ‘4’: ;break; } while(ti==0); TI=0; EA=1; } } } void wuyuanbeep(uint z) { Beep= 1; delay(z); Beep= 0; delay(z); } void ser() interrupt 4 { if(RI==1) { RI=0; a=SBUF; //给它发送1. flag=1; } } void init() { REN=1; SM0=0; SM1=1; TMOD=0x20;//设置定时器1为工作方式2 PCON=0x80; TH1=0xf3; TL1=0xf3; TR1=1; EA=1; ES=1; } void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 110; j > 0; j--); } |
|
相关推荐
6个回答
|
|
蜂鸣器发声是靠震动的 就是高低电平的不停跳变 一直是一肯定不行的
|
|
|
|
我已经申明了一个wuyuanbeep()里面已经有一个起振。发送的1是赋给a的,a的值只决定我的延迟时间。 |
|
|
|
void wuyuanbeep(uint z)有问题。既然是无源的,就必须不断给变化的电平才会响。注意是不断给,你的程序只变化一次就结束,能听到一声都不错了
|
|
|
|
改程序太麻烦,直接用一个有源的蜂鸣器就行,数字量控制。你用无源的要一直给他加脉冲才行
|
|
|
|
|
|
|
|
不断学习~~~~~~~~~~~~~~~~~
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
stm32f407+ksz8863rlli概率性ping不通
478 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之NFS服务搭建
320 浏览 0 评论
求助:辉芒微芯片 FDM B11GBMH 的信息及开发环境安装
245 浏览 0 评论
867 浏览 0 评论
嵌入式 学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之输入输出重定向
740 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11300 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-28 15:45 , Processed in 0.738627 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号