欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
avr單片機流水燈和 按鍵抗干擾,左右按鍵要松開才行 帶仿真和程序
[打印本頁]
作者:
chrees
時間:
2017-2-23 22:28
標題:
avr單片機流水燈和 按鍵抗干擾,左右按鍵要松開才行 帶仿真和程序
第一次做。都是用的avr單片機ATMEGA16仿真。。有3個按鍵控制流水燈程序 和1個單片機按鍵抗干擾,左右按鍵要松開才行.
0.png
(29.46 KB, 下載次數: 67)
下載附件
2017-2-24 00:45 上傳
單片機源碼:
#include <iom16v.h>
void delay(unsigned int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<1141;j++);
}
void button(int i)
{
if((PINC&(1<<PC0))==0)
{
delay(20);
if((PINC&(1<<PC0))==0)
{
up(i);
}
while((PINC&(1<<PC0))==0);
}
if((PINC&(1<<PC1))==0)
{
delay(20);
if((PINC&(1<<PC1))==0)
{
down(i);
}
while((PINC&(1<<PC1))==0);
}if((PINC&(1<<PC2))==0)
{
delay(20);
if((PINC&(1<<PC2))==0)
{
left(i);
}
while((PINC&(1<<PC2))==0);
}
if((PINC&(1<<PC3))==0)
{
delay(20);
if((PINC&(1<<PC3))==0)
{
right(i);
}
while((PINC&(1<<PC3))==0);
}
}
void down(int i)
{
while(i<4)
{
int k = i;
for(i+=4;i<8;i+=4)
{
PORTA = 1<<i;
delay(50);
PORTA = 0x00;
button(i);
}
i-=4;
for(i+=4;i<16;i+=4)
{
PORTB = 1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
i-=4;
i=k;
PORTA = 1<<i;
delay(50);
button(i);
}
while(i>3&&i<8)
{
for(i+=4;i<16;i+=4)
{
PORTB = 1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
i-=4;
for(i-=12;i<8;i+=4)
{
PORTA=1<<i;
delay(50);
PORTA=0x00;
button(i);
}
i-=4;
}
while(i>7&&i<12)
{
for(i+=4;i<16;i=+4)
{
PORTB=1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
i-=4;
for(i-=12;i<8;i+=4)
{
PORTA=1<<i;
delay(50);
PORTA=0x00;
button(i);
}
PORTB=1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
while(i<16&&i>11)
{
for(i-=12;i<8;i+=4)
{
PORTA=1<<i;
delay(50);
PORTA=0x00;
button(i);
}
for( ;i<16;i+=4)
{
PORTB=1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
i-=4;
}
}
void up(int i)
{
while(i<4)
{
PORTA=0x00;
for(i+=12;i<16&&i>7;i-=4)
{
PORTB = 1<<(i-8);
delay(50);
button(i);
}
PORTB=0x00;
i+=4;
for(i-=4;i>=0&&i<8;i-=4)
{
PORTA=1<<i;
delay(50);
PORTA=0x00;
button(i);
}
i+=4;
}
while(i>3&&i<8)
{
for(i-=4;i>=0;i-=4)
{
PORTA = 1<<i;
delay(50);
PORTA=0x00;
button(i);
}
i=+4;
for(i+=12;i<16&&i>7;i-=4)
{
PORTB=1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
PORTA=1<<i;
delay(50);
button(i);
}
while(i>7&&i<12)
{
for(i-=4;i<8&&i>=0;i=-4)
{
PORTA=1<<i;
delay(50);
PORTA=0x00;
button(i);
}
i+=4;
for(i+=12;i<16&&i>7;i-=4)
{
PORTB=1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
i+=4;
}
while(i>11&&i<16)
{
for(i-=4;i<16&&i>7;i=-4)
{
PORTB=1<<(i-8);
delay(50);
PORTB=0x00;
button(i);
}
for( ;i<8&&i>=0;i-=4)
{
PORTA=1<<i;
delay(50);
PORTA=0x00;
button(i);
}
i+=16;
PORTB=1<<(i-8);
delay(50);
button(i);
}
}
void right(int i)
{
while(i<4)
{
i-=1;
for(i+=1;i>=0&&i<4;i+=1)
{
PORTA = 1<<i;
delay(50);
button(i);
}
i-=4;
}
while(i>3&&i<8)
{
i-=1;
for(i+=1;i>3&&i<8;i+=1)
{
PORTA = 1<<i;
delay(50);
button(i);
}
i-=4;
}
while(i>7&&i<12)
{
i-=1;
for(i+=1;i>7&&i<12;i+=1)
{
PORTA = 1<<(i-8);
delay(50);
button(i);
}
i-=4;
}
while(i>11&&i<16)
{
i-=1;
for(i+=1;i>11&&i<16;i+=1)
{
PORTA = 1<<(i-8);
delay(50);
button(i);
}
i-=4;
}
}
void left(int i)
{
while(i<4)
{
i+=1;
for(i-=1;i>=0&&i<4;i-=1)
{
PORTA = 1<<i;
delay(50);
button(i);
}
i+=4;
}
while(i>3&&i<8)
{
i+=1;
for(i-=1;i>3&&i<8;i-=1)
{
PORTA = 1<<i;
delay(50);
button(i);
}
i+=4;
}
while(i>7&&i<12)
{
i+=1;
for(i-=1;i>7&&i<12;i-=1)
{
PORTA = 1<<(i-8);
delay(50);
button(i);
}
i+=4;
}
while(i>11&&i<16)
{
i+=1;
for(i-=1;i>11&&i<16;i-=1)
{
PORTA = 1<<(i-8);
delay(50);
button(i);
}
i+=4;
}
}
void main()
{
int i;
DDRA = 0xFF;
DDRB = 0xFF;
PORTC|=(1<<PC0);
PORTC|=(1<<PC1);
PORTC|=(1<<PC2);
PORTC|=(1<<PC3);
while(1)
{
for(i=0;i<4;i++)
{
PORTA = 1<<i;
delay(50);
button(i);
}
}
}
復制代碼
0.png
(62.09 KB, 下載次數: 65)
下載附件
2017-2-24 00:47 上傳
下載地址:
流水燈和按鍵.zip
(60.58 KB, 下載次數: 11)
2017-2-23 22:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
青蘋果
時間:
2017-2-24 08:40
表示支持一下
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1