BASIC4MCU | 질문게시판 | AVR 부저소스코드. 수정좀 도와주시면 감사하겠습니다.
페이지 정보
작성자 KKID 작성일2018-12-12 16:09 조회10,692회 댓글2건본문
스위치를 눌럿을때 밑의 행동을하면서 부조의 소리가 나느 프로그램을 작성할려고 하였으나 부저에 소리가 안들립니다.. 도와주시면 감사하겠습니다
(항상 고생하시는 master님에게 감사드립니다.)
#include<mega128.h>
#include<delay.h>
void main(void)
{
unsigned char temp;
DDRB = 0xff;
DDRD = 0x00;
DDRG = 0x10;
while(1)
{
temp = PIND;
if(PIND == 0xfe)
{
PORTG=0x10; delay_ms(500);
PORTG=0x00; delay_ms(500);
PORTB=0xfe; delay_ms(500);
PORTB=0xfd; delay_ms(500);
PORTB=0xfb; delay_ms(500);
PORTB=0xf7; delay_ms(500);
PORTB=0xef; delay_ms(500);
PORTB=0xdf; delay_ms(500);
PORTB=0xbf; delay_ms(500);
PORTB=0x7f; delay_ms(500);
}
if(PIND == 0xfd)
{
PORTG=0x00; delay_ms(500);
PORTG=0x10; delay_ms(500);
PORTB=0x7f; delay_ms(500);
PORTB=0xbf; delay_ms(500);
PORTB=0xdf; delay_ms(500);
PORTB=0xef; delay_ms(500);
PORTB=0xf7; delay_ms(500);
PORTB=0xfb; delay_ms(500);
PORTB=0xfd; delay_ms(500);
PORTB=0xfe; delay_ms(500);
}
if(PIND == 0xfb)
{
PORTG=0x00; delay_ms(500);
PORTG=0x10; delay_ms(500);
PORTB=0xfc; delay_ms(500);
PORTB=0xf3; delay_ms(500);
PORTB=0xcf; delay_ms(500);
PORTB=0x3f; delay_ms(500);
}
if(PIND == 0xf7)
{
PORTG=0x00; delay_ms(500);
PORTG=0x10; delay_ms(500);
PORTB=0x3f; delay_ms(500);
PORTB=0xcf; delay_ms(500);
PORTB=0xf3; delay_ms(500);
PORTB=0xfc; delay_ms(500);
}
}
}
댓글 2
조회수 10,692master님의 댓글
master 작성일
PORTG=0x00; delay_ms(500);
PORTG=0x10; delay_ms(500);
발진회로가 내장되지 않은 부저는 빠른 주파수로 구동해야 합니다.
1Hz는 가청주파수 대역이 아닙니다.20Hz~10KHz 정도가 가청주파수죠
그 뒤의 2초동안 LED를 키면 그 동안에는 부저가 소리를 내지 못합니다.
master님의 댓글
master 작성일
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo9&wr_id=135
이런 예제처럼 출력하면 되겠습니다.