当前位置:首页 » 编程语言 » 16个心形流水灯c语言程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

16个心形流水灯c语言程序

发布时间: 2022-06-17 23:50:01

A. 设计心形LED流水灯电路,编写程序控制16个LED灯按规律闪烁。设计要求16个LED灯

可以做,我们这边软硬件都有配套。

B. 用89C52单片机控制IO口接16个LED流水灯的C语言程序

#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
voiddelay(uinta)
{
uchari;
whlie(a--)for(i=0;i<120;i++);
}
main()
{
uintled=0xfffe;
while(1)
{
P0=led;
P2=led>>8;
led=_irol_(led,1);
delay(200);
}
}

C. 51单片机16个灯的心形流水灯编程

利用51单片机的p0,p1,p2口,分别驱动一个LED灯。然后,首先让它们都输出低电平0x00,再然后,按顺序位移输出高电平。

D. 心型流水灯的程序是怎样的啊我想做一个,但是不懂那个程序,请各位帮帮忙(适合大一刚学C语言做的)

我做出来了!有两种程序 有一种花样比较多的暂时没C文件 另一个有所有文件 要的话 QQ343515245

E. 51单片机16路流水灯怎么用C语言写,并求每个步骤的讲解

我给你个简单的例子:

#include<AT89X51.H>//预处理文件里面定义了特殊寄存器的名称如P1口定义为P1

voidmain(void)

{

//定义花样数据

constunsignedchardesign[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,

0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,

0xE7,0xDB,0xBD,0x7E,0xFF};

unsignedinta;//定义循环用的变量

unsignedcharb;//在C51编程中因内存有限尽可能注意变量类型的使用

//尽可能使用少字节的类型,在大型的程序中很

受用

do{

for(b=0;b<32;b++)

{

for(a=0;a<30000;a++);//延时一段时间

P1=design[b];//读已定义的花样数据并写花样数据到P1口

}

}while(1);

}

程序中的花样数据可以自以去定义,因这里我们的LED要AT89C51的P1引脚为低电平才

会点亮,所以我们要向P1口的各引脚写数据O对应连接的LED才会被点亮,P1口的八个引

脚刚好对应P1口特殊寄存器的八个二进位,如向P1口定数据0xFE,转成二进制就是

11111110,最低位D0为0这里P1.0引脚输出低电平,LED1被点亮。如此类推,大家不难算

出自己想要做的效果了。

留个邮箱给你发个入门文档

F. 51单片机16个灯流水循环,C语言

代码已修改,并仿真通过。

#include<reg51.h>//包含单片机寄存器的头文件
#include"intrins.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitCLK=P1^0;
sbitIN=P1^1;
//ucharcodea[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uintcodew[]={0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f,0xfeff,0xfdff,0xfbff,0xf7ff,0xefff,0xdfff,0xbfff,0x7fff};//【新建了一个流水表】
voiddelay(uinti)
{
uintj;
uchark;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
//【发送1字节给74LS164】
voidsend_byte(uchartemp)
{
uchari;
for(i=0;i<8;i++)
{
if(temp&0x80)
{
IN=1;
}
else
{
IN=0;
}
CLK=0;
_nop_();//ifKeil,requireuseintrins.h
CLK=1;

temp=temp<<1;//temp左移1位
}
}
//【发送2字节给74LS164】
voidsend_word(uinttemp)
{

send_byte((uchar)(temp>>8));//先发送高字节
send_byte((uchar)(temp&0x00FF));//再发送低字节
}
voidmain(void)
{
uinti;

while(1)
{
for(i=0;i<16;i++)
{
//send_byte(a[i]);
send_word(w[i]);//【发送2字节】
delay(4000);


}
}
}