❶ 單片機實現門鈴 這個程序中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。叮聲要短,咚聲稍長些,可邊聽邊調試。