求图 求程序。。。彩灯控制实验 !!
题目:正常情况下,8个LED常亮。按下按钮K1时,第1个和第8个LED闪烁,闪烁间隔时间为1秒.按下K2时,8个LED闪烁,间隔为1秒.二极管有P1控制.求图 求程序!! 求助求助。。。 本帖最后由 沉思的牛 于 2014-4-2 20:53 编辑#include <reg52.h>
#define UINT unsigned int
#define UCHAR unsigned char
sbit K1=P3^4;//按钮1
sbit K2=P3^5;//按钮2
//12M晶振
//这个延时不是很准确
//要准确用定时器
void Delay(UINT z)
{
UCHAR x,y;
for(x=1000;x>0;x--)
for(y=z;y>0;y--);
}
void Key_Scan()
{
//按楼主所说按下的时候闪烁
//松手全部灯亮
while(!K1) //按下K1
{
Delay(20); //延时消抖
while(!K1) //再次判断是否按下
{
P1=0X81; //第一个和第八个关1000 0001
Delay(1000);//延时1秒
P1=0x00; //全部亮;
Delay(1000);//延时1秒
}
}
while(!K2)//按下K2和K1相同
{
Delay(20);
while(!K2)
{
P1=0X0; //全部亮
Delay(1000);//延时1秒
P1=0xff; //全部灭;
Delay(1000);//延时1秒
}
}
}
void main()
{
//首先我不知道你的LED的电路怎么接的
//认为是阳极接VCC利用灌电流驱动
P1=0; //8个LED点亮
while(1)
{
P1=0;//不按键时全部亮
Key_Scan();
}
}楼主我写的这个程序给你参考学单片机一定要多写多练多动手
不懂的再问我
单片机的程序么..............
for(;;)
{
switch(i)
case 1:
case 2:
default:
} 按下按钮K1时,第1个和第8个LED闪烁,闪烁间隔时间为1秒.按下K2时,8个LED闪烁,间隔为1秒.
是只按下的时候闪吗 wangyexin 发表于 2012-6-11 11:40 static/image/common/back.gif
按下按钮K1时,第1个和第8个LED闪烁,闪烁间隔时间为1秒.按下K2时,8个LED闪烁,间隔为1秒.
是只按下的时候闪 ...
对啊。。。。 yk94215 发表于 2012-6-11 02:24 static/image/common/back.gif
单片机的程序么..............
for(;;)
{
c语言。。。 ▂谋ァMou﹎ 发表于 2012-6-17 10:58 static/image/common/back.gif
c语言。。。
单片机可以用C语言来编的啊!keil.就行的...而且效率相当高.!
{:1_1:}{:1_1:}{:1_1:}呼呼 基于什么单片机的》???
页:
[1]