如图所示,我们做流水灯实验所需要的元件,就是红色方框里面的元件,一定都要添加进来,要不然实验就做不成功。
接着,我们按照电路原理图,排布好元件,连好线,最后的电路如图所示。
我们把实验代码插入单片机,然后点击界面左下角的开始按钮,就可以运行电路。
如图所示,八个流水灯依次点亮。J-K触发器的逻辑功能: JK触发器再有时钟脉冲作用时(CP=1)当J=0 K=0时状态保持不变当J= 0 K=1时次态为0态当J=1 K=0时次态为1态当J=1 K=1时次态与现态相反 D触发器(由与非门构成):当D=1时,Q=0;当D=0时,Q=1; D触发器的逻辑功能贴片旋转流水灯实验目的是为了让学生了解基本的电子元件和电路图,同时通过自己动手实践,提高学生的实验技能。根据查询相关公开信息显示,贴片旋转流水灯实验通过使用集成电路、电容、电阻等元件,构建出一个动态变化的流水灯电路,旋转的效果增加了电路的观赏性和实验趣味性。通过实验和调试这个电路,学生可以了解到电子元件的特性和使用方法,掌握基本的电路布局和焊接技巧,同时也可以锻炼学生的动手能力、观察能力和分析能力。单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口, 对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用r1或rra实现位的转换。
电路图注意:1、P0口里应加上排阻,图里我没画出来。
2、单片机最小系统所需的晶振、复位电路我也没画。
临时帮你做的图,写的程序,细节就不是很完善啦,凑合着看吧!!
下面是程序,_crol_()函数是让temp的值左移一位的即执行一次该函数,temp的值由11111110到11111101,再执行一次是11111011……
_cror_()是右移。
#include<reg51h>
#include<intrinsh>//包含对_crol_(),_cror_()函数的说明的头文件
unsigned char temp,i;
void delay(unsigned int z)//延时子程序,晶振110592M时延时大概1毫秒
{
unsigned int x ,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
temp=0xfe;
for(i=0;i<8;i++)//流水灯从P0^0口到P0^7口
{
P0=temp;
temp=_crol_(temp,1);
delay(5);
}
i=0;
temp=0xfe;
for(i=0;i<8;i++)//流水灯从P1^0口到P1^7口
{
P1=temp;
temp=_crol_(temp,1);
delay(5);
}
i=0;
temp=0x7f;
for(i=0;i<8;i++)//流水灯从P1^7口到P1^0口
{
P1=temp;
temp=_cror_(temp,1);
delay(5);
}
i=0;
temp=0x7f;
for(i=0;i<8;i++)//流水灯从P0^7口到P0^0口
{
P0=temp;
temp=_cror_(temp,1);
delay(5);
}
i=0;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)