我想让第一和第八个先同时亮,延时一会再让第二和第七同时亮...然后交替回到第八和第一同时亮,请问这个C语言程序该怎么写,如果是闪烁的亮最好(追加分),这里给出灯亮、闪烁的例子和例图。
一、灯亮例程
#include<reg51.h>
/*
让任意一盏灯亮起来 这里暂时让第一盏灯亮起来
*/
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
sbit p13=P1^3;//只是先声明4个位
//注意:上述 P1为 大写的P 输出低电平(0)点亮灯 高电平(1)熄灭灯
//另外 变量要先声明再使用 不要在下面随便使用没有声明的变量
void main()
{
//======点亮一盏灯===========================================================
//方法一: 用特殊位变量 (sbit)指定特定灯亮
p10=0;//第一盏灯亮
//方法二: 用P10口整体来整体指定
P1=0XFE;//第一盏灯亮
//======点亮两盏灯===========================================================
//方法一: 用特殊位变量 (sbit)指定特定灯亮
p10=0;//第一盏灯亮
p11=0;//第二盏灯亮
//方法二: 用P10口整体来整体指定
P1=0XFC;//第一盏 第二盏 灯 同时亮 (1111 1100)
//点亮多盏灯 只要让相应位等于0即可
while(1);//暂停
}
二、灯闪例程
#include<reg51.h>
/*
让任意一盏灯闪烁起来 现在让第一盏灯闪烁起来 让其他等或者让多盏灯闪烁 原理是一样的
*/
sbit p10=P1^0;
//注意:上述 P1为 大写的P 输出低电平(0)点亮灯 高电平(1)熄灭
//另外 变量要先声明再使用 不要在下面随便使用没有声明的变量
void main()
{
int i=0;
while(1)//使用 while(1) 是让灭与亮不停的切换 否则亮了一下灭一下 就没了
{
p10=0;
for(i=0;i<40000;i++);//亮一会
//===============================================
p10=1;
for(i=0;i<40000;i++);//灭一会
//亮一会 灭一会就会造成闪烁的效果
}
}
三、单片机仿真板图
如下:5号灯亮