想用AVR单片机Atmega16做个程序,控制三个LED工作,

LED1(PD0输出)间隔500ms闪烁LED2(PC0输出)间隔1000ms闪烁LED3(PB0输出)亮灭受(PA0输入)控制其中LED1和LED2是一直工作的,LED... LED1(PD0输出)间隔500ms闪烁
LED2(PC0输出)间隔1000ms闪烁
LED3(PB0输出)亮灭受(PA0输入)控制
其中LED1和LED2是一直工作的,LED3要PA0=0有输入才亮,没输入就灭
请写一个完整的代码,业余爱好非商业用
展开
 我来答
stillnova
2015-03-29
知道答主
回答量:1
采纳率:0%
帮助的人:2.1万
展开全部
随便给你编一个
#include<mega16.h> //灯和按键的另一端都接地 CVAVR
#include<delay.h>
main()
{
DDRA=0X00;DDRB=0XFF;DDRC=0XFF;DDRD=0XFF;
PORTA=0XFF;PORTB=0X00;PORTC=0X00;PORTD=0X00;
while(1)
{
PORTC=0X00;PORTD=0X00;delay(500);
PORTC=0X00;PORTD=0XFF;delay(500);
PORTC=0XFF;PORTD=0X00;delay(500);
PORTC=0XFF;PORTD=0XFF;delay(500);
if(PINA.0==0)
{
PORTB=0XFF;PORTC=0X00;PORTD=0X00;delay(500);
PORTB=0XFF;PORTC=0X00;PORTD=0XFF;delay(500);
PORTB=0XFF;PORTC=0XFF;PORTD=0X00;delay(500);
PORTB=0XFF;PORTC=0XFF;PORTD=0XFF;delay(500);
}

else
{
PORTC=0X00;PORTD=0X00;delay(500);
PORTC=0X00;PORTD=0XFF;delay(500);
PORTC=0XFF;PORTD=0X00;delay(500);
PORTC=0XFF;PORTD=0XFF;delay(500);
}

}
追问
这样好像按键输入要等PD输出完毕才能检测到,假如PD延时更长时间,那么按键检测等待时间就更长,能不能实现单片机多任务运行
追答
你说的这个应该需要使用中断编写了,意思相当于你在写作业中途上了一个厕所回来继续写作业。具体程序加两句代码随便改改就行,我建议你买本书仔细学学就行,或者我这有些最小系统的程序和材料,想要我发给你吧。
查晓筠0i5
2015-03-29 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4954万
展开全部
需要给你写一份吗
追问
万分感谢QQ:576361469
追答
需要定做可以丘上说
我id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式