AVR單片機(jī)驅(qū)動(dòng)無(wú)源蜂鳴器
內(nèi)部1 M晶振。
定時(shí)器實(shí)險(xiǎn),周期信號(hào)驅(qū)動(dòng)無(wú)源蜂鳴器,些實(shí)驗(yàn)基于定時(shí)器的CTC模式,由硬件產(chǎn)生頻率信號(hào)。
程序中實(shí)現(xiàn)單一頻率的周期性提示音。
程序采用單任務(wù)方式,軟件延時(shí)。
*/
#include "iom16v.h"
定時(shí)器實(shí)險(xiǎn),周期信號(hào)驅(qū)動(dòng)無(wú)源蜂鳴器,些實(shí)驗(yàn)基于定時(shí)器的CTC模式,由硬件產(chǎn)生頻率信號(hào)。
程序中實(shí)現(xiàn)單一頻率的周期性提示音。
程序采用單任務(wù)方式,軟件延時(shí)。
*/
#include "iom16v.h"
/*延時(shí)函數(shù)*/
void delay_ms(unsigned char i) {
void delay_ms(unsigned char i) {
unsigned char a, b;
for (a = 1; a i; a++) {
for (b = 1; b; b++) {
;
}
}
}
for (a = 1; a i; a++) {
for (b = 1; b; b++) {
;
}
}
}
void main(void) {
unsigned char i;
DDRA = 0x00; /*方向輸入*/
PORTA = 0xFF; /*打開上拉*/
DDRB = 0xFF; /*方向輸出*/
PORTB = 0xFF; /*高電平*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0xFF;
PORTD = 0xFF;
while (1) {PORTA = 0xFF; /*打開上拉*/
DDRB = 0xFF; /*方向輸出*/
PORTB = 0xFF; /*高電平*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0xFF;
PORTD = 0xFF;
for (i = 0; i 8; i ++) {
PORTB = ~(1 i);
delay_ms(100);
}
TCCR1A = 0x40;
TCCR1B = 0x09;
OCR1A = 1000;
delay_ms(200);
TCCR1A = 0x00;
PORTD = ~(1 5);
}
} 蜂鳴器相關(guān)文章:蜂鳴器原理
評(píng)論