當前位置:首頁 » 編程語言 » 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);


}
}
}