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);
}
}
}