单片机—LED灯(一)

2019-04-15 19:26发布

单片机LED灯学习(一)

点亮第一个灯

#include //头文件 sbit LED0=P2^0; //命名P2^0为LED0 void main() { P2=0x00; //所有灯都熄灭 while(1) { LED0=1; //LED0点亮 } } 第一个灯

间隔灯

#include void main() { while(1) { P2=0xaa; //16进制数aa代表10101010,代表亮灯方式 } } 间隔灯

点亮任意灯

#include void main() { P2=0x8b; while(1); } 任意灯

延时灯

#include #define unit unsigned int //宏定义 sbit led1= P2^3; unit i,j; void main() { P2=0x00; //让所有灯熄灭 while(1) { led1=0; for(i=1000;i>0;i--) //双循环获得更长的延长时间 for(j=100;j>0;j--); led1=1; for(i=1000;i>0;i--) for(j=100;j>0;j--); } } 这里写图片描述
加入延时函数 #define unit unsigned int //宏定义 sbit led1= P2^3; unit i,j; void delayms(xms) //延时函数 { unit i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void main() { P2=0x00; //让所有灯熄灭 while(1) { led1=0; delayms(500); //熄灭和点亮时间不同,可以控制延时间隔 led1=1; delayms(5000); } }

跑马灯

熄灭的灯逐渐左移 #include #include //包含_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uchar aa; void delayms(xms); void main() { aa=0xfe; //1111 1110 只有一个灯熄灭 // aa=0x01; 亮着的等左移 while(1) { P2=aa; delayms(500); //延时 aa=_crol_(aa,1); //将aa左移,熄灭的灯逐渐向左 // aa=_crol_(aa,-1) 右移一个单位 } } void delayms(xms) //延时函数 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } 熄灭的等左移
这里写图片描述