當前位置:首頁 » 編程語言 » 蜂鳴器c語言

蜂鳴器c語言

發布時間: 2022-09-02 22:19:53

⑴ 我用c語言程序實現了模擬,但是還要再加個蜂鳴器,請問怎麼編程

你定義字元
char
a=7;//這個輸出就可以發聲。。這是系統的發生。。
#include

#include

#include

#include
#define N 10
void fun()
{
printf("OK,now fun() start!!");
printf("%c",7);//這里發聲
}
void main()
{
clock_t start,end;
int i=0;
Sleep(1000); //這里定時
fun();
}

⑵ STC51單片機C語言開啟蜂鳴器

#include<reg52.h>
sbitbeep=P0^4;

voidmain()
{

beep=0;
while(1);
}

試試這個怎樣,單片機在執行完程序之後會回到初始狀態,然後再重新執行程序,所以蜂鳴器就會反復的開和關,聽起來聲音會小很多;加個while(1)死循環,讓程序一直保持在beep=0的狀態。

⑶ 51單片機蜂鳴器開關C語言程序

#include <REG52.H>
#include <INTRINS.H>
//本例採用89C52, 晶振為11.0592MHZ
//關於如何編制音樂代碼, 其實十分簡單,各位可以看以下代碼.
//頻率常數即音樂術語中的音調,而節拍常數即音樂術語中的多少拍;
//所以拿出譜子, 試探編吧!
sbit Beep = P1^5 ;

unsigned char n=0; //n為節拍常數變數
unsigned char code music_tab[] ={
0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數, 節拍常數, 頻率常數, 節拍常數,
0x20, 0x40, 0x1C , 0x10,
0x18, 0x10, 0x20 , 0x10,
0x1C, 0x10, 0x18 , 0x40,
0x1C, 0x20, 0x20 , 0x20,
0x1C, 0x20, 0x18 , 0x20,
0x20, 0x80, 0xFF , 0x20,
0x30, 0x1C, 0x10 , 0x18,
0x20, 0x15, 0x20 , 0x1C,
0x20, 0x20, 0x20 , 0x26,
0x40, 0x20, 0x20 , 0x2B,
0x20, 0x26, 0x20 , 0x20,
0x20, 0x30, 0x80 , 0xFF,
0x20, 0x20, 0x1C , 0x10,
0x18, 0x10, 0x20 , 0x20,
0x26, 0x20, 0x2B , 0x20,
0x30, 0x20, 0x2B , 0x40,
0x20, 0x20, 0x1C , 0x10,
0x18, 0x10, 0x20 , 0x20,
0x26, 0x20, 0x2B , 0x20,
0x30, 0x20, 0x2B , 0x40,
0x20, 0x30, 0x1C , 0x10,
0x18, 0x20, 0x15 , 0x20,
0x1C, 0x20, 0x20 , 0x20,
0x26, 0x40, 0x20 , 0x20,
0x2B, 0x20, 0x26 , 0x20,
0x20, 0x20, 0x30 , 0x80,
0x20, 0x30, 0x1C , 0x10,
0x20, 0x10, 0x1C , 0x10,
0x20, 0x20, 0x26 , 0x20,
0x2B, 0x20, 0x30 , 0x20,
0x2B, 0x40, 0x20 , 0x15,
0x1F, 0x05, 0x20 , 0x10,
0x1C, 0x10, 0x20 , 0x20,
0x26, 0x20, 0x2B , 0x20,
0x30, 0x20, 0x2B , 0x40,
0x20, 0x30, 0x1C , 0x10,
0x18, 0x20, 0x15 , 0x20,
0x1C, 0x20, 0x20 , 0x20,
0x26, 0x40, 0x20 , 0x20,
0x2B, 0x20, 0x26 , 0x20,
0x20, 0x20, 0x30 , 0x30,
0x20, 0x30, 0x1C , 0x10,
0x18, 0x40, 0x1C , 0x20,
0x20, 0x20, 0x26 , 0x40,
0x13, 0x60, 0x18 , 0x20,
0x15, 0x40, 0x13 , 0x40,
0x18, 0x80, 0x00
};

void int0() interrupt 1 //採用中斷0 控制節拍
{ TH0=0xd8;
TL0=0xef;
n--;
}

void delay (unsigned char m) //控制頻率延時
{
unsigned i=3*m;
while(--i);
}

void delayms(unsigned char a) //豪秒延時子程序
{
while(--a); //採用while(--a) 不要採用while(a--); 各位可編譯一下看看匯編結果就知道了!
}

void main()
{ unsigned char p,m; //m為頻率常數變數
unsigned char i=0;
TMOD&=0x0f;
TMOD|=0x01;
TH0=0xd8;TL0=0xef;
IE=0x82;
play:
while(1)
{
a: p=music_tab[i];
if(p==0x00) { i=0, delayms(1000); goto play;} //如果碰到結束符,延時1秒,回到開始再來一遍
else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //若碰到休止符,延時100ms,繼續取下一音符
else {m=music_tab[i++], n=music_tab[i++];} //取頻率常數 和 節拍常數
TR0=1; //開定時器1
while(n!=0) Beep=~Beep,delay(m); //等待節拍完成, 通過P1口輸出音頻(可多聲道哦!)
TR0=0; //關定時器1
}
}

⑷ 單片機蜂鳴器c語言《蘭花草》音樂代碼

程序名: MCS51U實驗板配套程序-歌曲:蘭花草
;電路介紹:蜂鳴器接P2.0;實驗前要連接J12

;***********************************************************************
OUT BIT P2.0

ORG 0
AJMP START
ORG 0BH
AJMP TIM0
START: MOV TMOD,#1
MOV IE,#10000010B
START0: MOV 30H,#0
NEXT: MOV A,30H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV R2,A
JZ END0
ANL A,#0FH
MOV R5,A
MOV A,R2
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
AJMP D1
SING: DEC A
MOV 22H,A
RL A
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 20H,A
SETB TR0
D1: CALL DELAY
INC 30H
AJMP NEXT
END0: CLR TR0
AJMP START0
TIM0: PUSH ACC
PUSH PSW
MOV TL0,20H
MOV TH0,21H
CPL OUT
POP PSW
POP ACC
RETI
DELAY: MOV R7,#2
D2: MOV R4,#125
D3: MOV R3,#248
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
DJNZ R5,DELAY
RET
;====================================
TABLE1: DW 64021,64103,64260,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 64934
TABLE: ;1
DB 42H,82H,82H,82H,84H,02H,72H
DB 62H,72H,62H,52H,48H
DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H
;2
DB 12H,0A2H,0D2H,92H,88H
DB 82H,0B2H,0B2H,0A2H,84H,02H,72H
DB 62H,72H,62H,52H,44H,02H,12H
;3
DB 12H,62H,62H,52H,44H,02H,82H
DB 72H,62H,52H,32H,48H
DB 00H

END

⑸ 51單片機蜂鳴器發出1KHz的信號的c語言程序

//假設晶振12MHZ,P1.7控制蜂鳴器
#include "reg51.h"
sbit FMQ=P1^7;
void main(void)
{
TMOD |= 0X10; //定時器1工作於方式1,16位定時器
TH1 = 0XFE; //定時器1定時時間=500uS
TL1 = 0X0C;
ET1 = 1; //使能定時器1中斷
EA =1; //開總中斷

while(1)
{
}
}

void TIMER1(void) interrupt 3 //定時器1中斷函數使用默認寄存器組
{
TH1 = 0XFE; //定時器1定時時間=500us
TL1 = 0X0C;
FMQ=!FMQ;
}

⑹ 單片機蜂鳴器C語言編程

沒有研究你的程序,但是Beep=~Beep;很好理解,就是將Beep的值
取反
,如果Beep原來是1(響),那麼將Beep的值取反後再給回它自已那不是變成0(不響)了嗎。

⑺ 怎麼用c語言編寫,使蜂鳴器發出不同頻率的聲音(51單片機).

1、無源蜂鳴器,需要外部提供脈沖信號才會發聲,且聲音會隨脈沖頻率變化而變化。而有源蜂鳴器內部有振盪器,所以只需要提供電壓(高電平)就能發聲,它們的原理不同。
2、例如定義 一個IO連接蜂鳴器。比如,sbit fmq=P1^0; 再來個500US延時函數。

voidbeep()//所以會產生1KHZ頻率聲音
{
fmq=0;
delay500us();
fmq=1;
delay500us();
}

⑻ 蜂鳴器每一秒響一次,響十秒後關閉,怎麼做,C語言

每隔一秒響一次, 響多久沒有說

一般都是響一秒 停一秒。 這樣就是20秒後關閉了。

可以寫作

intcnt=0;
while(cnt++<10)
{
BEEP=1;
delay_ms(1000);
BEEP=0;
delay_ms(1000);
}

⑼ 單片機用C語言讓蜂鳴器發出兩種聲調,怎麼編程

讓蜂鳴器發出兩種不同的聲調很容易,只要給蜂鳴器的控制信號發送不同頻率的脈沖就可以實現了,以下以延時方式來做。
#include<reg51.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
SPK=P1^0;
sbit
K1=P1^7;
//發聲函數
void
Alarm(uchar
t)
{
uchari,j;
for(i=0;i<200;i++)
{
SPK=~SPK;
for(j=0;j<t;j++);
//由參數t行成不同的頻率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}

熱點內容
安卓怎麼轉移數據華為 發布:2025-01-15 21:03:02 瀏覽:140
軟體列印反饋單腳本錯誤 發布:2025-01-15 21:01:24 瀏覽:177
如何進cs里的練槍伺服器 發布:2025-01-15 21:00:07 瀏覽:979
蘋果手機存儲晶元 發布:2025-01-15 20:52:02 瀏覽:162
盲人讀屏軟體安卓哪個好 發布:2025-01-15 20:47:13 瀏覽:728
炸圖腳本 發布:2025-01-15 19:56:07 瀏覽:429
八字源碼 發布:2025-01-15 19:54:47 瀏覽:372
伺服器可以變電腦使用嗎 發布:2025-01-15 19:40:29 瀏覽:202
傳奇手游免費腳本 發布:2025-01-15 19:30:21 瀏覽:300
我國當前資源配置存在哪些問題 發布:2025-01-15 19:25:03 瀏覽:514