本帖最后由 ddllxxrr 于 2014-10-14 20:47 编辑
这个电路是用一个开关控制一个蜂鸣器的发音。就是按高低高低的不同来发音,当改变周期时,就改变了音频。
以下是仿真截图:
以下是Studio6.2编译通过截图:
以下是程序:
/*
* GccApplication17.c
*
* Created: 2014-10-13 20:34:34
* Author: Administrator
*/
#define __DELAY_BACKWARD_COMPATIBLE__
#define F_CPU 0x8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
#define S1_ON() ((PIND & _BV(PD7))== 0x80)
#define SPK() (PORTD ^= _BV(PD0))
void Alarm(uint8_t mytime )
{
uint8_t i;
for(i=0;i<200;i++)
{
SPK();_delay_us(mytime);
}
}
int main(void)
{
DDRD = 0x7F;
PORTD = 0xFF;
while(1)
{
//TODO:: Please write your application code
if(S1_ON())
{
Alarm(3);
Alarm(50);
}
}
}
|