论坛风格切换切换到宽版
  • 2535阅读
  • 3回复

单片机关于延时的问题 [复制链接]

上一主题 下一主题
离线lxy
 
发帖
1999
只看楼主 倒序阅读 0楼 发表于: 2010-03-16
初学单片机,延时控制无源蜂鸣器,其中控制鸣响时间有一个延时,控制鸣响频率有一个延时,但是在主程序调用这两个延时的时候,使用的方式却并不一样,入下图:
确定鸣响时间用的是:for(j=3000;j>0;j--)
                {
                beep=~beep;
beep=~beep;不知道是什么意思?

究竟是怎样控制鸣响频率的,还是搞不懂?
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bg4ifx
发帖
381
只看该作者 1楼 发表于: 2010-03-16
调用方式是一样的啊,都是直接引用,beep=~beep 意思是位取反,就是每一位的值和上次的值取反,在这里就是每延时500us后就把p3.6的值取反,1ms就是一个周期,要改变频率,修改delay(500)就行了,
离线bg4ifx
发帖
381
只看该作者 2楼 发表于: 2010-03-16
楼主真用功这么早就起来学习,一上手就用c,真厉害.
离线Apple
发帖
759
只看该作者 3楼 发表于: 2010-03-16
for(。。。。。。) //响的次数
{
beep=~beep; //响
dslayst(2);   //响的间隔
}
beep=1;     //不响,这句貌似不要也行
delay(500);//不响的间隔