单片机流水灯c语言代码(单片机流水灯c语言代码解释)

http://www.itjxue.com  2023-03-03 13:26  来源:未知  点击次数: 

单片机C语言编程:控制流水灯

T0 工作模式2 计时器中断,一次200us,1s流水灯左移或右移一次。

k3触发外部中断0,级别高于计时器中断,故暂停。

#include?reg52.h

#include?intrins.h?

#define uint?unsigned?int

#define uchar?unsigned?char

sbit?k1=P1^0;?//左循环按钮

sbit?k2=P1^1;?//右循环按钮

sbit?k4=P1^2;?//恢复暂停

sbit?k3=P3^2;//暂停

void?init();

void?showLED();

void?delay(uint?xms);

uint?delayTime;

uint?goLeft=1;

uint?goRight=0;

uint?sFlag=0;

void?main()

{

init();

while(1)

{

if(k1==0)

{

delay(10);

if(k1==0)

{

while(k1==0);

goLeft=1;

goRight=0;

}

}

if(k2==0)

{

delay(10);

if(k2==0)

{

while(k2==0);

goLeft=0;

goRight=1;

}

}

}

}

void?delay(uint?xms)

{

uint?i,j;

for(i=xms;i0;i--)

for(j=112;j0;j--);

}

void?init()

{

P0=0xfe;

TMOD=0x02;?//T0?工作模式2?自动装填8位 ?200us

????TH0=0x38;

????TL0=0x38;

????EA=1;

ET0=1;

????TR0=1;

EX0=1;

IT0=1;

}

void?showLED()

{

if(goLeft==1)

P0=_crol_(P0,1);

if(goRight==1)

P0=_cror_(P0,1);

}

void?moveDelay()?interrupt??1 //一次中断200us

{

if(delayTime==5000)

{

showLED();

delayTime=0;

}

else

delayTime++;

}

void?stopLED()?interrupt?0

{

while(1)

{

if(k4==0)

{

delay(10);

if(k4==0)

{

while(k4==0);

break;

}

}

}

}

用C51单片机控制12个LED流水灯的C语言程序怎么写?

#include "REG52.H"

//控制引脚定义

sbit LED1 = PX.X; //P0.0-P3.7任意引脚

.... .... .......

sbit LED12 = PX.X;

//宏定义灯亮灯灭

#define LED1_ON( ) LED1 =0 //阳极接电源

#define LED1_OFF( ) LED1 =1 //阳极接电源

....... ............. .............

#define LED12_ON( ) LED12 =0 //阳极接电源

#define LED12_OFF( ) LED12 =1 //阳极接电源

void Init_GPIO( )//端口引脚初始化,关闭所有指示灯

{

LED1_OFF( ) ;

..............

LED12_OFF( ) ;

}

void Delay_ms( u16 dat ) //延时函数

{

u16 i, j;

for(i = dat; i0; i--)

{

for (j=300; j0; j--);

}

}

int main( ) //主函数

{

Init_GPIO( );//引脚初始化

while(1) //大循环

{

LED1_ON( );//点亮第一个LED

LED2_OFF( );

.............

LED12_OFF( );

Delay_ms(1000);//延时 参数自己可以根据晶振频率自己调节

LED1_OFF( ); //点亮第二个LED

LED2_ON( );

LED3_OFF( );

.............

LED12_OFF( );

Delay_ms(1000);

............. //按照上面修改;

LED1_OFF( );//点亮第十二个LED

LED2_OFF );

LED3_OFF( );

.............

LED12_ON( );

Delay_ms(1000);

}

}

51单片机八个灯的流水灯代码

51单片机八个灯的流水灯代码:

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

3、#include "intrins.h"输入位移函数。

4、unsigned int count=0,led;定义函数。

5、输入主函数,定义单片机的端口,写入延时函数。

编辑推荐

对于刚接触单片机的学习者,似乎都很迷茫,C语言、汇编语言、电路、开发板,不知道从哪儿开始学起。其实在学习单片机原理与应用系统开发时,只有在学习一些理论知识的基础上,多阅读单片机应用系统开发案例,注重单片机应用系统开发实践训练,才能透彻地理解和掌握单片机结构与原理,才能更快更好地掌握单片机应用知识和单片机应用系统开发技能。

(责任编辑:IT教学网)

更多

推荐java认证文章