stc89c51单片机流水灯程序

2018-11-21 21:16

51单片机流水灯程序

程序一(用C语言编的最基础的程序) #include #include

sbit D0=P1^0;//位定义,把P1口的第一个管脚定义为D0 sbit D1=P1^1;// 位定义,把P1口的第二个管脚定义为D1 sbit D2=P1^2;// 位定义,把P1口的第3个管脚定义为D2 sbit D3=P1^3;// 位定义,把P1口的第4个管脚定义为D3 sbit D4=P1^4;// 位定义,把P1口的第5个管脚定义为D4 sbit D5=P1^5;// 位定义,把P1口的第6个管脚定义为D5 sbit D6=P1^6;// 位定义,把P1口的第7个管脚定义为D6 sbit D7=P1^7;// 位定义,把P1口的第8个管脚定义为D7 void main() {

while(1)//建立大的死循环。 {

unsigned int i,j;

D0=0,D7=1;//亮灯1,关灯8 for(i=50;i>0;i--)

for(j=200;j>0;j--);//两个FOR组成的延时

D0=1,D1=0;// 亮灯2,关灯1 for(i=50;i>0;i--) for(j=200;j>0;j--); D1=1,D2=0;

for(i=50;i>0;i--) for(j=200;j>0;j--); D2=1,D3=0; for(i=50;i>0;i--) for(j=200;j>0;j--); D3=1,D4=0; for(i=50;i>0;i--) for(j=200;j>0;j--); D4=1,D5=0; for(i=50;i>0;i--) for(j=200;j>0;j--); D5=1,D6=0; for(i=50;i>0;i--) for(j=200;j>0;j--); D6=1,D7=0; for(i=50;i>0;i--) for(j=200;j>0;j--); }

}

程序二(用swich case语句编的)

#include//51单片机的头文件。 sbit d1=P1^0;// sbit d2=P1^1; sbit d3=P1^2; sbit d4=P1^3; sbit d5=P1^4; sbit d6=P1^5; sbit d7=P1^6; sbit d8=P1^7; void main() {

unsigned int i=1,a,b; while(1)//大循环 {

for(i=1;i<15;i++) {

for(a=0;a<80;a++)//延时。 for(b=0;b<200;b++); switch(i) {

case 1:

d2=1,d1=0,d8=1; break; case 2: d1=1,d2=0; break; case 3: d2=1,d3=0; break; case 4: d3=1,d4=0; break; case 5: d4=1,d5=0; break; case 6: d5=1,d6=0; break;

case 7: d6=1,d7=0; break; case 8: d7=1,d8=0; break; case 9: d8=1,d7=0; break; case 10: d7=1,d6=0; break; case 11: d6=1,d5=0; break; case 12: d5=1,d4=0; break; case 13: d4=1,d3=0; break; case 14: d3=1,d2=0; break; } }; } }

程序三(最简洁的): #include

#include//_crol_和_cror_的头文件。 void delay(unsigned int z)//建立延时子函数。 {

unsigned int i,j; for(i=0;i

void main() {

unsigned char d; d=0xfe; while(1)// {

for(;d>0x7f;) {

P1=d;

delay(100);//调用延时子函数延时。 d=_crol_(d,1);//循环左移。 }

for(;d<0xfe;) {

P1=d;

delay(100);

d=_cror_(d,1);//循环右移,让灯倒回去。 } } }

数码管流水灯:

#include #include

void delay(unsigned int a) {

unsigned int b; b=a;

while(b>0) b--; }

void main() {

unsigned int i,j;

unsigned code A[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0x3f:为0,即数码管亮“0”。 P2=0;//打开数码管的第一个, P0=j;//对数码管进行赋值 while(1) {

i=0;

for(j=0;j<16;j++) {

P2=i; P0=A[j];

delay(50000); i++; }

} }

数码管程序二:

#include

void delay(unsigned int a) {

unsigned int b; b=a;

while(b>0) b--; }

void main() {

int i,j;

unsigned code A[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; P2=0; P0=j; while(1) {

j=0;

for(i=0;i<8;i++) {

P2=i; P0=A[j];

delay(50000); j++; }

for(i=7;i>=0;i--) {

P2=i; P0=A[j];

delay(50000); j++; } } }


stc89c51单片机流水灯程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:C语言程序设计实验指导书.doc

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: