基于Atmega64单片机的波形发生器程序Word文档下载推荐.docx
- 文档编号:18914693
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:13
- 大小:16.16KB
基于Atmega64单片机的波形发生器程序Word文档下载推荐.docx
《基于Atmega64单片机的波形发生器程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Atmega64单片机的波形发生器程序Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
voidjuchibo(void);
voidsanjiaobo(void);
voidRead_Key(void);
voiddelay(uint);
voiddelay1(uint);
voiddelay2(uint);
intmain(void)//GCC中main文件必须为返回整形值的函数,没有参数
{
DDRA=0xFF;
DDRC=0xFF;
DDRG=0xFF;
PORTC=0x00;
PORTG=0x00;
TCNT0=0;
num=0;
DDRF=0x1C;
while
(1)
{
Read_Key();
switch(num)
{
case1:
fangbo();
break;
case2:
zhengxianbo();
case3:
juchibo();
case4:
sanjiaobo();
}
}
}
voidfangbo(void)
uinti,j=0;
uintys=30;
ucharb=0xFF;
TCCR0=_BV(CS0);
while(num==1)
for(i=0;
i<
ys+1;
i++)
{
loop_until_bit_is_set(TIFR,TOV0);
TIFR|=_BV(TOV0);
}
if(j)
PORTA=b,j=0;
else
CLR_WAVE,j=1;
case5:
{ys=ys-30;
num=1;
case8:
{ys=ys+30;
case6:
{b=0xFF;
case9:
{b=0x7F;
}//方波
voidzhengxianbo(void)
{
TCCR0=_BV(CS00);
uintys=700;
if(num==2)
{
//j=0;
//DDRA=0xFF;
//PORTA=tosin[j];
//正弦波
for(j=0;
j<
=367;
j++)
PORTA=tosin[j];
loop_until_bit_is_set(TIFR,TOV0);
delay2(ys);
{ys=ys-100;
num=2;
{ys=ys+100;
//case6:
{b=tosin[j];
//break;
//case9:
{b=tosin[j]/2;
}
voidjuchibo(void)
uchara=0x00,i=0;
ucharb=128;
PORTA=0x00;
TCCR0=_BV(CS01);
uintys=10;
while(num==3)
PORTA=a;
a++;
for(i=0;
ys;
{
TIFR|=_BV(TOV0);
}//锯齿波
delay1(ys);
if(a==(b-1))
a=0;
Read_Key();
switch(num)
{
case5:
{ys=ys-2;
num=3;
break;
case8:
{ys=ys+2;
case6:
{b=128;
case9:
{b=64;
voidsanjiaobo(void)
uintys=500;
while(num==4)
//三角波
if(a>
=b)
a=0;
if(a<
b/2)
PORTA=a;
delay1(ys);
}
else
PORTA=b-1-a;
}
num=4;
voiddelay(uintz)
uintx;
uchary;
for(x=z;
x>
0;
x--)
for(y=200;
y>
y--);
voiddelay1(uinty)
uinti;
for(i=y;
i>
i--);
voiddelay2(uintz)
x--);
voidRead_Key(void)
PORTF=0xE0;
temp=PINF;
temp=temp&
0xE0;
if(temp!
=0xE0)//若有键按下,则表达式为1
delay(200);
temp=PINF;
temp=temp&
//按键消抖
if(temp!
=0xE0)//再次判断是否有按键动作
//DDRF=0x1C;
//PORTF=0xfc;
PORTF=0xec;
delay(10);
temp=PINF;
temp&
=0xe0;
if(temp!
=0xe0)
{
switch(temp)
{
case0x60:
num=7;
break;
case0xa0:
case0xc0:
//default:
}
while(temp!
=0XE0)
temp=PINF;
temp=temp&
}
else
{
//DDRF=0x1C;
//PORTF=0xfc;
PORTF=0xf4;
temp=PINF;
temp&
{
switch(temp)
{
case0x60:
num=8;
case0xa0:
num=5;
case0xc0:
//default:
}
while(temp!
temp=PINF;
temp=temp&
}
else
//DDRF=0x1C;
//PORTF=0xfc;
PORTF=0xf8;
if(temp!
num=9;
num=6;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Atmega64 单片机 波形 发生器 程序