2019-07-16 17:49发布
ytmp;
//
void scan()
{
key=(~P3)&0x0f;
if(key!=0)
{while(((~P3)&0x0f)!=0);
keytmp=key;
}
void delay(int t)
int k,j;
for(k=0;k<t;k++)
for (j=0;j<100;j++)
scan();
fun0()
int i,s;
s=0xfe;
for(i=0;i<8;i++)
P1=s;
delay(100);
s=s<<1;
s=s|0x01;
return 0;}
fun1()
return 0;
fun2()
s=0x55;
for(i=0;i<2;i++)
s=~s;
main()
keytmp=1;
P3=0xff;
while(1)
switch(keytmp)
case 1:{fun0();break;}
case 2:{fun1();break;}
case 4:{fun2();break;}
case 8:{scan();P1=0xff;break;}
default:{break;}
wuzhenchuang 发表于 2015-5-21 11:29 按照这个思路 555+8位的移位寄存器件互锁的就可以了。
最多设置5个标签!
闪烁LED小灯设计,要求轮流点亮,逐个点亮,间隔点亮,可能我的电路有问题,只能运行在初始轮流点亮状态。
我试过按开关,还是不行,以下为c程序及电路图,请学长学姐帮忙指教
#include<reg51.h>//头文件
#define char unsigned char//宏定义
char key,ke
ytmp;
//
void scan()
{
key=(~P3)&0x0f;
if(key!=0)
{while(((~P3)&0x0f)!=0);
keytmp=key;
}
}
//
void delay(int t)
{
int k,j;
for(k=0;k<t;k++)
for (j=0;j<100;j++)
scan();
}
//
fun0()
{
int i,s;
s=0xfe;
for(i=0;i<8;i++)
{
P1=s;
delay(100);
s=s<<1;
s=s|0x01;
}
return 0;}
//
fun1()
{
int i,s;
s=0xfe;
for(i=0;i<8;i++)
{
P1=s;
delay(100);
s=s<<1;
}
return 0;
}
//
fun2()
{
int i,s;
s=0x55;
for(i=0;i<2;i++)
{
P1=s;
delay(100);
s=~s;
}
return 0;}
//
main()
{
keytmp=1;
P3=0xff;
while(1)
{
switch(keytmp)
{
case 1:{fun0();break;}
case 2:{fun1();break;}
case 4:{fun2();break;}
case 8:{scan();P1=0xff;break;}
default:{break;}
}
}
}
你在led外接端没加电源呀?P1口输出低电平就OK了,还有#include<reg51.h>包含P了,程序是不是写的有点啰里啰嗦呀?你在试试 ,这是最基础的!追问:
程序是北航出版的书上的程序,我写不好,就抄下来了。led没加电源也亮啊,加了电源反而出现错误运行不了,晕了
追答:
运行不了是程序的问题,你在仔细检查下,LED不加电源怎么导通?再者,要想使一个二极管导通的条件是反向压降小于正向压降!你看看郭天祥的视屏吧!
74LS194
芯片并接结构
的移位寄存器来实现,通过
555
定时电路组成多谐振荡电路。整个
电路主要由移位寄存器、
控制电路、
脉冲发生器构成
8
个彩灯的循环
控制,并且可以组成多种花型。本次主要为全亮全灭,及左右移动的
功能。
本设计用
8
路
led
设计出的彩灯控制电路具有:
低能耗、
花 {MOD}
多、性能忧、实用美观等特点,实为家居装饰之首选。而具体的课程
设计(包括电路图设计、安装与调试)
,既可以提高我们的动手能力
和实际分析问题能力,还有助于我们加深对数字电路的认识和了解,
进一步激发学习的兴趣,为后续学习打下坚实基础
不是全亮全灭,也不是左右循环,假如编号1到8的灯,要求是在脉冲电压的连续作用下,第一次脉冲1亮,第二次1,2亮,第三次1,2,3亮,第八次1,2,3,4,5,6,7,8全亮
不是全亮全灭,也不是左右循环,假如编号1到8的灯,要求是在脉冲电压的连续作用下,第一次脉冲1亮,第二次1,2亮,第三次1,2,3亮,第八次1,2,3,4,5,6,7,8全亮.
一周热门 更多>