请大家给我写一个用单片机c语言变的程序,要求:用定时器实现灯的闪烁

请大家给我写一个用单片机c语言变的程序,要求:用定时器实现灯的闪烁,第1张

我看楼上写的程序不怎么好,而且不容易懂,不是单片机c语言吧,于是自作主张的自己又写了一个,是51单片机的,12MHz晶振。我猜你现在用的是51吧?

#include

#define

uchar

unsigned

char

sbit

Led=P1^0;

uchar

counter;

void

timer1()

interrupt

3

using

1

{

TH1=-50000/256;

TL1=-50000%256;

counter=counter+1;

}

void

main()

{

counter=0;

TMOD=0x50;

TH1=-50000/256;

TL1=-50000%256;

//定时50ms,16位定时器

EA=1;

TR1=1;

while(1)

{

if(counter==20)

{

counter=0;

Led=~Led;

//led灯闪烁

}

}

}

楼主觉得可以的话,一定要给满意噢,若有什么不满意的地方,请继续追问。对啊,中断里面的程序一定要短,中断嘛,本来就是要告诉单片机该做什么的了。

#include <STC12C52H>

#define uchar unsigned char

#define uint unsigned int

sbit key=P1^2;

sbit p1_6=P1^6;

void delay(uchar delay_time)

{

uchar n;

uint m;

for (n=0;n<delay_time;n++)

{

for(m=0;m<10000;m++);

}

}

void keyscan()

{

if(key==0)

{

delay(5);

if(key==0)

while(!key)

{

p1_6 = 0;

delay(20);

p1_6 = 1;

delay(20);

}

}

}

void main()

{

WDT_CONTR = 0x3C;

while(1)

{

keyscan();

WDT_CONTR = 0x3C;

}

}

这个功能可以用中断来实现,当然,现在我写的这个也可以实现。由于你用的晶振频率不知道,所以你自己修改一下延时时间,再把头文件改一下,就可以了,我试验了,可以实现改功能。

程序如下:

#include <reg52h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3。

让电子信息技术与单片机技术相融合,有效提高了单片机应用效果。作为计算机技术中的一个分支,单片机技术在电子产品领域的应用,丰富了电子产品的功能,也为智能化电子设备的开发和应用提供了新的出路,实现了智能化电子设备的创新与发展。

从二十世纪九十年代开始,单片机技术就已经发展起来,随着时代的进步与科技的发展,目前该技术的实践应用日渐成熟,单片机被广泛应用于各个领域。现如今,人们越来越重视单片机在智能电子技术方面的开发和应用,单片机的发展进入到新的时期。

无论是自动测量还是智能仪表的实践,都能看到单片机技术的身影。当前工业发展进程中,电子行业属于新兴产业,工业生产中人们将电子信息技术成功运用。

#include<reg51h>

sbit s1=P1^0;

sbit s2=P1^1;

sbit led1=P0^0;

sbit led2=P0^1;

void delay(int a)

{

unsigned char i;

while(a--)for(i=0;i<120;i++);

}

main()

{

while(1)

{

while(s1==0)

{

led1=0;led2=1;delay(100);

led1=1;led2=0;delay(100);

}

while(s2==0)

{

led1=0;led2=0;delay(50);

led1=1;led2=1;delay(50);

}

}

}

以下是一个单片机间隔点亮一LED灯的C语言程序,以8051单片机为例:

c

Copy code

#include

//包含了AT89C51的寄存器定义

void delay(unsigned int xms) //延时函数,xms为要延时的毫秒数

{

unsigned int i,j;

for(i=xms;i>0;i--)

for(j=112;j>0;j--);

}

void main()

{

P1=0x00; //将P1口全部置为0,防止其它引脚影响

while(1)

{

P1=0xff; //点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111

delay(1000); //延时1秒

P1=0x00; //将P1口全部置为0,熄灭LED灯

delay(1000); //延时1秒

}

}

上述程序的作用是在单片机的P1口上间隔点亮一盏LED灯,每隔1秒钟灯的状态会发生一次变化,即由点亮状态变为熄灭状态,再由熄灭状态变为点亮状态。

以上就是关于请大家给我写一个用单片机c语言变的程序,要求:用定时器实现灯的闪烁全部的内容,包括:请大家给我写一个用单片机c语言变的程序,要求:用定时器实现灯的闪烁、用单片机C语言怎么写用状态机实现按键控制LED灯闪烁这个程序、单片机流水灯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10070291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存