new to arduino~~

I begin to play with arduino, which can be developped with arduino c ( it resembles c or cpp ).

my first program is to drive the 7-segment led.

it is simpler than verilog HDL because it is not the sucky hardware describtion language~~(*^__^*) ~~

so many sensors can be utilized , it's a cool stuff~

 

ps arduino is a open source product~

here is my code:

 

代码
//设置控制各段的数字IO脚
int _A=1;
int _B=2;
int _C=3;
int _D=4;
int _E=5;
int _F=6;
int _G=7;
int _DP=8;
/*

_B
▕▔▏ _C _A
▕▔▏ ====》 _D
▔▫ _E _G
_F _DP
*/

int NUM_SEG [ 16 ][ 7 ] = {
{
1,1,1,0,1,1,1 }, //0
{ 1,0,0,0,0,0,1 }, //1
{ 1,1,0,1,1,1,0 }, //2
{ 1,1,0,1,0,1,1 }, //3
{ 1,0,1,1,0,0,1 }, //4
{ 0,1,1,1,0,1,1 }, //5
{ 0,1,1,1,1,1,1 }, //6
{ 1,1,0,0,0,0,1 }, //7
{ 1,1,1,1,1,1,1 }, //8
{ 1,1,1,1,0,1,1 }, //9
{ 1,1,1,1,1,0,1 }, //a
{ 0,0,1,1,1,1,1 }, //b
{ 0,1,1,0,1,1,0 }, //c
{ 1,0,0,1,1,1,1 }, //d
{ 0,1,1,1,1,1,0 }, //e
{ 0,1,1,1,1,0,0 } //f
};



void lit( int segment )
{
digitalWrite (segment,LOW);
}

void quench ( int segment )
{
digitalWrite ( segment,HIGH );
}

void set_segment ( int segment , int sta )
{
if ( sta == 1 )
{
lit ( segment );
}
else
{
quench ( segment );
}
}


void NumDisplay ( int num , int dp , int time)
{
for ( int t = 0 ; t < time ; t++ )
{
for ( int i = 0 ; i < 7 ; i++ )
{
set_segment ( i
+1 , NUM_SEG [ num % 16 ][ i ] );
set_segment ( _DP , dp );
}

delay (
1 );
}

}


void setup()
{
int i;//定义变量
for(i=1;i<=8;i++)
pinMode(i,OUTPUT);
//设置4~11引脚为输出模式
}

void loop()
{
while(1)
{
for ( int i = 0 ; i < 16 ; i++ )
NumDisplay ( i ,
0 , 500 );
}
}

 

 

 

posted on 2010-10-16 01:55  坑王  阅读(216)  评论(0编辑  收藏  举报

导航