几种流水灯的闪亮程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流水灯闪亮程序
#include
#include
sbit led1=P1^0;
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms);
void main(void)
{
uchar a;
a=0xfe;
while(1)
{
P1=a;
delay(500);
a=_crol_(a,1); //_crol_(a,1);循环左移_cror_(a,1); ;循环右移}
}
void delay(uint ms) //500
{
uint i, j; // uchar时间短uint时间较长
for (i=ms;i>0;i--)
for(j=100;j>0;j--);
}
流水灯程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit key=P1^0;
sbit led9=P0^7;
uchar k;
//delay us
void Delay(uchar us) //5,7,9
{
while(--us);
}
//delay ms
void DelayMS(uint iMs)
{
uint i,j;
for(i=0;i for(j=0;j<65;j++) Delay(1); } main() { uchar i; i=0xff; led9=1; P2=i; while(1) { key=1; DelayMS(50); if(key==0) { led9=0; DelayMS(1000); led9=1; i=0x7f; for(k=0;k<8;k++) { P2=i; i=_cror_(i,1); DelayMS(500); } i=0xfe; for(k=0;k<8;k++) { P2=i; i=_crol_(i,1); DelayMS(500); } led9=0; DelayMS(500); P2=0; led9=0; DelayMS(3000); P2=0xff; led9=1; } } } 流水灯程序 #include void delay(void) { unsigned int i,j; //unsigned char 时间较短,值域0~255 unsigned int 时间较长,值域0~65535 for(i=0;i<500;i++) // i为灭灯时间,j为亮灯时间; for(j=0;j<500;j++) // i为灭灯时间,j为亮灯时间; ; } void main(void) { while(1) { P1=0xfe; //第一个灯亮 delay(); //调用延时函数 P1=0xfd; //第二个灯亮 delay(); //调用延时函数 P1=0xfb; //第三个灯亮 delay(); //调用延时函数 P1=0xf7; //第四个灯亮 delay(); //调用延时函数 P1=0xef; //第五个灯亮 delay(); //调用延时函数 P1=0xdf; //第六个灯亮 delay(); //调用延时函数 P1=0xbf; //第七个灯亮 delay(); //调用延时函数 P1=0x7f; //第八个灯亮 delay(); //调用延时函数 P1=0xff; //P1口全灭 delay(); //调用延时函数 P3=0xfe; //第一个灯亮 delay(); //调用延时函数 P3=0xfd; //第二个灯亮 delay(); //调用延时函数 P3=0xfb; //第三个灯亮 delay(); //调用延时函数 P3=0xf7; //第四个灯亮 delay(); //调用延时函数 P3=0xef; //第五个灯亮 delay(); //调用延时函数 P3=0xdf; //第六个灯亮 delay(); //调用延时函数 P3=0xbf; //第七个灯亮 delay(); //调用延时函数 P3=0x7f; //第八个灯亮 delay(); //调用延时函数 P3=0xff; //P1口全灭 delay(); //调用延时函数 } } 带开关控制16盏流水灯的程序 #include sbit key=P1^0; //P1.0端口为开关key表示开关 void delay(void) { unsigned int i,j; //unsigned char 时间较短,值域0~255 unsigned int 时间较长,值域0~65535 for(i=0;i<500;i++) // i为灭灯时间,j为亮灯时间; for(j=0;j<500;j++) // i为灭灯时间,j为亮灯时间; ; } void main(void) { while(1) { key=1; delay(); if(key==0) { P0=0xfe; //第一个灯亮 delay(); //调用延时函数 P0=0xfd; //第二个灯亮 delay(); //调用延时函数 P0=0xfb; //第三个灯亮 delay(); //调用延时函数 P0=0xf7; //第四个灯亮 delay(); //调用延时函数 P0=0xef; //第五个灯亮 delay(); //调用延时函数 P0=0xdf; //第六个灯亮 delay(); //调用延时函数 P0=0xbf; //第七个灯亮 delay(); //调用延时函数 P0=0x7f; //第八个灯亮 delay(); //调用延时函数 P0=0xff; //P1口全灭