标题:
LED闪烁
[打印本页]
作者:
daniu
时间:
2014-12-27 14:48
标题:
LED闪烁
/************************************1*************************************
标题: LED闪烁
作者: aphi
日期: 2009.5.26 OK!
软件: Keil uVision3
芯片: STC89C51
说明:要实现led 闪烁,也就是一下亮一下熄,如此反复,但由于单片机执行指令时间是微
秒级,由于人眼视觉暂留,我们会看到LED一直在亮,所以要让亮和熄延时一段时间。
本程序采用while软件延时 .
***************************************************************************/
#include<reg52.h>
sbit d1=P1^0 ;
unsigned int a;
void main()
{
while(1) //无限循环
{
a=51000;
d1=0;
while(a--);
a=51000;
d1=1;
while(a--);
}
}
/*********************************2****************************************
标题: LED闪烁
作者: aphi
日期: 2009.5.26 OK!
软件: Keil uVision3
芯片: STC89C51
说明: 本程序采用for软件延时 .
***************************************************************************/
#include<reg52.h>
sbit d1=P1^0;
unsigned int a;
void main()
{
for(;;) //无限循环
{
d1=0;
for(a=51000;a>0;a--);
d1=1;
for(a=51000;a>0;a--);
}
}
/*********************************3****************************************
标题: LED闪烁
作者: aphi
日期: 2009.5.26 OK!
软件: Keil uVision3
芯片: STC89C51.
说明: 本程序采用定时器软件延时,判断溢出。
***************************************************************************/
#include<reg52.h>
sbit d1=P1^1;
void delay(unsigned int i)
{
TMOD=0X01;
IE=0X00;
TR0=1;
while(i!=0)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(TF0!=1); //判断溢出
TF0=0;
i--;
}
TR0=0;
}
void main()
{
while(1)
{
d1=0;
delay(10);
d1=1;
delay(10);
}
}
/*********************************4****************************************
标题: LED闪烁
作者: aphi
日期: 2009.5.26 OK!
软件: Keil uVision3
芯片: STC89C51
说明: 本程序采用定时器软件延时,等待中断。
***************************************************************************/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit P1_0=P1^0;
uchar a;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);//等待中断产生
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==10)
{
a=0;
P1_0=~P1_0;
}
}
作者:
12211221
时间:
2017-8-9 20:21
要是我想让所有的灯同时闪烁,或者几个特殊位置闪烁,而不去逐个定义sbit,怎么破/
作者:
YJ5815
时间:
2017-8-10 21:47
直接对一组IO口赋值
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1