想用AVR单片机Atmega16做个程序,控制三个LED工作,
答案:2 悬赏:10 手机版
解决时间 2021-11-18 14:32
- 提问者网友:活着好累
- 2021-11-18 00:32
想用AVR单片机Atmega16做个程序,控制三个LED工作,
最佳答案
- 五星知识达人网友:鱼忧
- 2021-11-18 01:18
随便给你编一个
#include //灯和按键的另一端都接地 CVAVR
#include
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延时更长时间,那么按键检测等待时间就更长,能不能实现单片机多任务运行追答你说的这个应该需要使用中断编写了,意思相当于你在写作业中途上了一个厕所回来继续写作业。具体程序加两句代码随便改改就行,我建议你买本书仔细学学就行,或者我这有些最小系统的程序和材料,想要我发给你吧。
#include
#include
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延时更长时间,那么按键检测等待时间就更长,能不能实现单片机多任务运行追答你说的这个应该需要使用中断编写了,意思相当于你在写作业中途上了一个厕所回来继续写作业。具体程序加两句代码随便改改就行,我建议你买本书仔细学学就行,或者我这有些最小系统的程序和材料,想要我发给你吧。
全部回答
- 1楼网友:佘樂
- 2021-11-18 01:38
需要给你写一份吗追问万分感谢QQ:576361469追答需要定做可以丘上说
我id
我id
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯