STC15W4K32S4单片机
指示灯系列
任务一
控制1只发光二极管闪烁,即发光二极管一亮一灭,循环运行。
参考程序
#include<STC15.h>
void delay(unsigned int i)//延时函数
{
while(i--);
}
void main()//主函数
{
P0M1 = 0;
P0M0 = 0;//p0口设置为准双向口
P2M1 = 0;
P2M0 = 0;//p2口设置为准双向口
P27=0;
while(1)
{
P00=0;
delay(50000);
P00=1;
delay(50000);
}
}
拓展训练1:控制2只发光二极管,同时闪烁10次,再轮流亮灭10次。
#include<STC15.h>
void delay(unsigned int i)//延时函数
{
while(i--);
}
void main()//主函数
{
int a;
int b;
P0M1 = 0; P0M0 = 0;
P2M1 = 0; P2M0 = 0;//准双向口
P27=0;
while(1)
{
for(a=0;a<11;a++)//同时闪烁10次
{
P00=0;P01=0;
delay(50000);
P00=1;P01=1;
delay(50000);
}
for(b=0;b<11;b++)//轮流亮灭10次
{
P00=0;P01=1;
delay(50000);
P00=1;P01=0;
delay(50000);
}
}
}
拓展训练2:控制8只发光二极管依次点亮,再依次熄灭,循环执行。
#include<STC15.h>
void delay(unsigned int i)//延时函数
{
while(i--);
}
void main()//主函数
{
P0M1 = 0; P0M0 = 0;
P2M1 = 0; P2M0 = 0;//准双向口
P27=0;
while(1)
{
P00=0;
delay(50000);
P01=0;
delay(50000);
P02=0;
delay(50000);
P03=0;
delay(50000);
P04=0;
delay(50000);
P05=0;
delay(50000);
P06=0;
delay(50000);
P07=0;
delay(50000);
P07=1;
delay(50000);
P06=1;
delay(50000);
P05=1;
delay(50000);
P04=1;
delay(50000);
P03=1;
delay(50000);
P02=1;
delay(50000);
P01=1;
delay(50000);
P00=1;
delay(50000);
}
}
如果发现程序存在问题,欢迎留言指正。