❶ 单片机实现门铃 这个程序中ding dong怎样实现的。具体ding dong频率怎么计算
定时器0中断时,给定时器0的寄存器TH0和TL0赋的初始值,确定了定时中断时间为250us,进定时中断的频率就是1/0.000250=4000。因为进两次才算一个周期(beep置0一次,置1一次),所以ding 的频率应该是2000Hz,过0.5秒后,进入dong,它是进定时中断2次才翻转一次置位,所以dong的频率应该是1000Hz
❷ 急!求单片机之叮咚门铃,要求延时30秒的代码,不一定要详细代码,主要是如何控制响铃时间,c语言的,谢谢
正巧我最近在学写程序,其中有一段是单片机发声。希望对你有帮助。
PIC16f616 内部8MHz RA1配置成数字输出
void beepOK()
{
for(u=0;u<=200;u++)
{
RA1=0;
delayus(200); 400us一周期=5KHz 可以根据所需要的声音来调节频率。
RA1=1;
delayus(200);
}
for(w=0;w<=200;w++)
{
RA1=0; 600us一周期=1.7KHz 可以根据所需要的声音来调节频率。
delayus(300);
RA1=1;
delayus(300);
}
}
❸ 哪有NE555单片机拆高分悬赏!!!!!!!
给个内部电路,你说的拆是指拆解么,我现在只有光学显微镜,暂时没借到电子显微镜。要高清留邮箱这里发不了。
❹ 单片机定时器控制电子门铃c语言程序
图中那示波器的接法有什么用?应该是监测P2.0口和P2.3口吧。
编程如下:
#include <reg52.h> //52系列头文件
#define uchar unsigned char //变量类型宏定义
#define uint unsigned int
sbit Key = P2^0; //按键位声明
sbit Bell = P2^3; //门铃位声明
uint p; //中断次数变量
void main() //主程序
{
TMOD = 0x00; //设置T0工作于方式0
TH0 = (8192-700)/32; //T0计数器装入定时700us初值
TL0 = (8192-700)%32;
IE = 0x82; //开总中断,开T0中断
if(Key==0) //如果键被按下
{
TR0 = 1; //启动T0定时器计时
}
while(Key==0); //等待按键松开
}
void Timer0() interrupt 1 //T0中断服务子程序
{
Bell = ~Bell; //每次中断发生时,门铃状态取反
p++; //中断计次值加1
if(p<=400) //如果中断<=400次,
{
TH0 = (8192-700)/32; //重装700us定时初值
TL0 = (8192-700)%32;
}
if(p>400) //如果中断次数>400
{
TH0 = (8192-1000)/32; //则重装定时 1ms 初值
TL0 = (8192-1000)%32;
if(p==1000) //如果中断次数 =800次
{
P = 0; //中断计数值归0
TR0 = 0; //关闭T0定时器
}
}
}
操作说明:每当按下并保持,响铃一声。松开后再按,即重复上述状态。
❺ 单片机实现门铃 这个程序中ding dong怎样实现的。具体ding dong频率怎么计算
用单片机实现叮咚门铃声,用定时器定时,用一个引脚输出一定频率的方波信号,然后将方波信号放大再驱动扬声器发声即可。因用单片机模拟的声音,不会像专门的叮咚音乐门铃那样好听,做到接近叮咚声就行了。叮的声音频率大约为1230Hz,咚的频率为680Hz。叮声要短,咚声稍长些,可边听边调试。