标题:51单片机流水灯C语言源程序
2014-04-26 23:34
113 查看
**************************************************************
文件名称:flash_led.c
文件说明:流水灯C程序
编写日期:2006年10月5日
程序说明:MCU采用AT89S51,外接12M晶振,P1口输出
*************************************************************/
#include
//51系列单片机定义文件
#define uchar
unsigned char //定义无符号字符
#define uint
unsigned int //定义无符号整数
void
delay(uint); //声明延时函数
void
main(void)
{
uint
i;
uchar
temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100);
//调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100);
//调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(100);
//调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100);
//调用延时函数
temp>>=1;
}
}
}
void
delay(uint t) //定义延时函数
{
register uint
bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
#include
#include
#include
#define uchar
unsigned char
#define uint
unsigned int
#define
TimeDelay 60000
void
delay(uint n);
void
Flash0a(void);
void
Flash0b(void);
void
Flash1a(void);
void
Flash1b(void);
void
Flash2a(void);
void
Flash2b(void);
void
Flash3a(void);
void
Flash3b(void);
void
main(void)
{
while(1)
{
Flash1b();
Flash1a();
delay(TimeDelay);
delay(TimeDelay);
Flash0b();
Flash0a();
Flash2b();
Flash2a();
Flash1b();
Flash1a();
Flash3b();
Flash3a();
}
}
void
delay(uint n)
{
while(n!=0)
{
n--;
}
}
void
Flash0a(void)
{
uchar
i;
uchar
Temp;
Temp =
0x80;
for(i=0;i<8;i++)
{
P0 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P0 =
0xff;
}
void
Flash0b(void)
{
uchar
i;
uchar
Temp;
Temp =
0x80;
for(i=0;i<8;i++)
{
P0 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P0 =
0;
}
void
Flash1a(void)
{
uchar
i;
uchar
Temp;
P1 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P1 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P1 =
0xff;
}
void
Flash1b(void)
{
uchar
i;
uchar
Temp;
P1 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P1 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P1 =
0;
}
void
Flash2a(void)
{
uchar
i;
uchar
Temp;
P2 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P2 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P2 =
0xff;
}
void
Flash2b(void)
{
uchar
i;
uchar
Temp;
P2 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P2 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P2 =
0;
}
void
Flash3a(void)
{
uchar
i;
uchar
Temp;
P3 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P3 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P3 =
0xff;
}
void
Flash3b(void)
{
uchar
i;
uchar
Temp;
P3 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P3 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P3 =
0;
}
===========
;P1口八个LED灯做三路流水灯实验
;***************************************************************
;* Date :
2004.4.20 *
;***************************************************************
ORG
0000H
LJMP
MAIN
ORG
030H
MAIN:MOV
P1,#0DBH ;11011011--0为亮,1为灭
ACALL
DELAY
MOV P1,#06DH
;01101101
ACALL
DELAY
MOV P1,#0B6H
;10110110
ACALL
DELAY
AJMP
MAIN
DELAY:MOV
R7,#255 ;延时子程序
D1: MOV
R6,#255
D2: DJNZ
R6,D2
DJNZ
R7,D1
RET
END
本文引用通告地址:http://tvb2058.spaces.eepw.com.cn/articles/trackback/item/37543
文件名称:flash_led.c
文件说明:流水灯C程序
编写日期:2006年10月5日
程序说明:MCU采用AT89S51,外接12M晶振,P1口输出
*************************************************************/
#include
//51系列单片机定义文件
#define uchar
unsigned char //定义无符号字符
#define uint
unsigned int //定义无符号整数
void
delay(uint); //声明延时函数
void
main(void)
{
uint
i;
uchar
temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100);
//调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100);
//调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(100);
//调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100);
//调用延时函数
temp>>=1;
}
}
}
void
delay(uint t) //定义延时函数
{
register uint
bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
#include
#include
#include
#define uchar
unsigned char
#define uint
unsigned int
#define
TimeDelay 60000
void
delay(uint n);
void
Flash0a(void);
void
Flash0b(void);
void
Flash1a(void);
void
Flash1b(void);
void
Flash2a(void);
void
Flash2b(void);
void
Flash3a(void);
void
Flash3b(void);
void
main(void)
{
while(1)
{
Flash1b();
Flash1a();
delay(TimeDelay);
delay(TimeDelay);
Flash0b();
Flash0a();
Flash2b();
Flash2a();
Flash1b();
Flash1a();
Flash3b();
Flash3a();
}
}
void
delay(uint n)
{
while(n!=0)
{
n--;
}
}
void
Flash0a(void)
{
uchar
i;
uchar
Temp;
Temp =
0x80;
for(i=0;i<8;i++)
{
P0 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P0 =
0xff;
}
void
Flash0b(void)
{
uchar
i;
uchar
Temp;
Temp =
0x80;
for(i=0;i<8;i++)
{
P0 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P0 =
0;
}
void
Flash1a(void)
{
uchar
i;
uchar
Temp;
P1 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P1 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P1 =
0xff;
}
void
Flash1b(void)
{
uchar
i;
uchar
Temp;
P1 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P1 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P1 =
0;
}
void
Flash2a(void)
{
uchar
i;
uchar
Temp;
P2 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P2 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P2 =
0xff;
}
void
Flash2b(void)
{
uchar
i;
uchar
Temp;
P2 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P2 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P2 =
0;
}
void
Flash3a(void)
{
uchar
i;
uchar
Temp;
P3 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P3 =
~Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P3 =
0xff;
}
void
Flash3b(void)
{
uchar
i;
uchar
Temp;
P3 =
1;
Temp =
0x80;
for(i=0;i<8;i++)
{
P3 =
Temp;
delay(TimeDelay);
Temp = Temp
>> 1;
}
P3 =
0;
}
===========
;P1口八个LED灯做三路流水灯实验
;***************************************************************
;* Date :
2004.4.20 *
;***************************************************************
ORG
0000H
LJMP
MAIN
ORG
030H
MAIN:MOV
P1,#0DBH ;11011011--0为亮,1为灭
ACALL
DELAY
MOV P1,#06DH
;01101101
ACALL
DELAY
MOV P1,#0B6H
;10110110
ACALL
DELAY
AJMP
MAIN
DELAY:MOV
R7,#255 ;延时子程序
D1: MOV
R6,#255
D2: DJNZ
R6,D2
DJNZ
R7,D1
RET
END
本文引用通告地址:http://tvb2058.spaces.eepw.com.cn/articles/trackback/item/37543
相关文章推荐
- 【转】matlab标题,给figure加标题,subplot的部分用法
- 标题:一次失败的产品开发承包经历
- 文章标题
- Java中使窗口无标题栏并全屏幕显示
- 文章标题
- 文章标题
- vb.net实现无标题栏窗体可拖动
- 文章标题
- netbeans rcp中如何编程设置主窗口标题
- VS2005 单文档中修改标题和图标
- 文章标题
- 文章标题
- DesToon如何去掉后台页面以及登陆页面标题的版权
- 文章标题
- 文章标题
- 修改dedecms标题长度的3种办法(cn_substr方法加省略号)
- iOS知识----获取HTML5 的 标题(title)
- 文章标题
- [转]不要告诉我你懂margin(标题好嚣张啊)
- 文章标题