范文无忧网范文学习范文大全

单片机控制的跑马灯课程设计汇编版和c

02月10日 编辑 fanwen51.com

#include

#define int8 unsigned char

#define int16 unsigned int

#define Ledout P0

int8 Led[]={0xff,0x7e,0x3c,0x18,0x00};

int8 i;

/*延时程序微妙*/

void Delay_us(int8 t)

{

while(--t);

}

/*延时程序毫秒*/

void Delay_ms(int16 t)

{

while(t--)

{

Delay_us(245);

Delay_us(245);

}

}

/*左循环*/

void Led_light()

{

int8 value=0xff;

for(i=0;i<=8;i++)

{

Ledout=value;

value<<=1;

Delay_ms(200);

}

}

/*右循环*/

void Led_right()

{

int8 value=0xff;

for(i=0;i<=8;i++)

{

Ledout=value;

value>>=1;

Delay_ms(200);

}

}

/*向内*/

void Led_inside()

{

for(i=0;i<5;i++)

{

Ledout=Led[i];

Delay_ms(200);

}

}

/*向外*/

void Led_outside()

{

for(i=0;i<4;i++)

{

Ledout=~Led[3-i];

Delay_ms(200);

}

}

/*中断初始化*/

void Inter_Inital()

{

EA=1; //打开总中断

IT0=1; //下降沿有效

EX0=1; //中断0允许

}

/*中断服务程序*/

void Inter0() interrupt 0

{

int8 port;

EA=0; //关闭总中断

port=(P1&0x0f);

if(port==0x0e)

{

Led_light();

}

if(port==0x0d)

{

Led_right();

}

if(port==0x0b)

{

Led_inside();

}

if(port==0x07)

{

Led_outside();

}

EA=1;//开启总中断

}

/*主函数*/

void main()

{

Inter_Inital();

while(1);

}

推荐阅读
图文推荐
栏目列表