微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机LED流水灯闪烁灯程序大集合

单片机LED流水灯闪烁灯程序大集合

时间:08-15 来源:互联网 点击:
/*点亮LED灯:方1  位操作方式   sbit D1=P1^0;方2  总线方工     P1=0x??;让LED灯闪烁*//*//方1:位操作方式点亮LED#includereg52.h>sbit  D1=P1^0;      //P1^0的P必须是大写void main(){D1=0;        //使用P1^0必须先经过sbit定义,而不能直接用P1^0=0;否则编译过不了}*///-------------------------------------------------
:总线方式点亮LED#includereg52.h>void main(){P1=0xfd;         //1111 1100 LED是共阳的,低电平时点亮,
所以就是LED1和2灯被点亮}*///-------------------------------------------------------------/* 让LED灯闪烁    采用位点亮+内部循环进行延时#include reg52.h>sbit D1=P1^3;              //随便一个你也可改为P1^0,注意P要大写的才可以unsigned int a;void main(){D1=0;for (a=0;a=20000;a++) {};       //for循环 {}空操作即可形成延时效果D1=1;for (a=0;a=20000;a++) {};}*///--------------------------------------------------------------/*//让LED灯闪烁    采用位方式+delay延时函数方式#include reg52.h>sbit D1=P1^0;    //位操作方式unsigned int a;void delay(int x)         //延时{int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void  main(){D1=0;delay(50);           //调用延时D1=1;delay(50);/}*///-----------------------------------------------/*//让3个灯一起闪烁  ,采用总线方式#includereg52.h>unsigned int a;void delay(int x)          //延时{int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void main(){P1=0xf8;             //1111 1000,点亮前3个灯,3个灯一起闪烁delay(500);P1=0xff;delay(500);}*///----------------------------------------------------/*//让LED灯闪烁   采用wlile方式#include reg52.h>sbit P10=P1^0;int a;void main(){while(1){a=51000;P10=0;         //点亮灯while(a--);    //程序停在这里,一直执行减法,直到a从51000减到0后退出循环,
这就形成延时a=5100;      //前面a已经减成0了,这里再给它个初值P10=1;while(a--);    //又从初值51000减到0为止,形成延时效果}}*///-----------------------------------------------------------/*//流水灯 ,在PIC单片机里流水灯只要设整个端的0x??
值然后采用端口值=端口值1左移1位即可形成流水灯//而在52单片机里却不行,得用_crol关皱字,
而这个关键字又是在另一头文件intrins.h里,所以在开头就得先包含它_#include reg52.h>#include intrins.h>     //因为要用到corol这一关键字#define uchar unsigned charsbit P23=P2^3 ;sbit D1=P1^0;void delay(int x){int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void main(){uchar a,temp;temp=0xfe;for (a=8;a>0;a--)   //循环8次,即流水灯8个循环8次即可点亮8个{P1=temp;temp=_crol_(temp,1); //移动delay(100);}}*///--------------------------------------------------------------//流水灯 :正流+倒流;在PIC里流水灯只要设整个端的0x??
值然后采用端口值=端口值1左移1位即可形成流水灯//而在52单片机里却不行,得用_crol关皱字,
而这个关键字又是在另一头文件intrins.h里,所以在开头就得先包含它#include reg52.h>#include intrins.h>     //因为要用到corol这一关键字#define uchar unsigned charsbit P23=P2^3 ;sbit D1=P1^0;void delay(int x){int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void main(){uchar a,temp;temp=0xfe;for (a=8;a>0;a--)   //循环8次,即流水灯8个循环8次即可点亮8个{P1=temp;temp=_crol_(temp,1); //移动delay(100);}temp=0x7f;              //注意这一句,
如果没有这一句,下面的语句循环是循环了,却没东西出来for (a=8;a>0;a--)   //循环8次,即流水灯8个循环8次即可点亮8个{P1=temp;temp=_crol_(temp,-1); //移动delay(100);}} 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top