① 8pin的應急燈用的單片機
如果是單片機的話那麼PIC12F675和你描述的很像,這是一塊擁有10位解析度AD轉換和128位元組EEPROM的1KFlash8bITMCU,
各引腳功能見下圖:
② 利用單片機控制8個發光二極體,設計8個燈同時閃爍的控製程序
方法:
1:設定一個變數i,可以從0到3循環的變化
2:檢測一個經過消抖處理的按鍵,按一下,i+1
3:當i值為各個值時,執行相應的花樣。
流水燈參考程序
#include
#include
#define uchar unsigned char
uchar j,temp;
void delay(unsigned int ms)
{
uchar t;
while(ms--)
for(t=0;t<123;t++);
}
void main()
{
P1=0xff;
delay(500);
temp=0xfe; //有點怪,led接在P2.3~P2.6
for(j=0;j<4;j++)
{
P1=temp;
delay(500);
temp=_crol_(temp,1);
}
P1=0xff;
while(1);
}
③ 怎麼利用單片機控制八個led燈
1:首先設定一個變數i,可以是從0到3循環的變化,
2:再檢測一個經過消抖處理的按鍵,按一下,即i+1
3:當i值為各個值時,執行相應的變換花樣。
流水燈參考程序
#include
#include
#define uchar unsigned char
uchar j,tmp;
void deay(unsigned int ms)
{
uchar t;
while(ms--)
for(t=0;t<12;t++);
}
void main()
{
P1=0xff;
delay(50);
temp=0xfe; //(led接在P2.3~P2.6)
for(j=0;j<4;j++)
{
P1=temp;
delay(50);
temp=_crol_(tmp,1);
}
P1=0xff;
while(1);
}
④ 單片機 8個LED燈隨機閃爍怎麼做
1、首先在電腦中新建項目:Keil uVision4 51單片機LED閃爍編程,如下圖所示。
⑤ 單片機AT89C51,八個按鍵控制八個LED燈.求電路圖和C程序!急急急急!在線等!!!!!
電路(圖)不合適
1、P0口應該用於輸出,你可以接LED,且負極接管腳,正極接VCC.
2、按鍵任意接P1~P3
僅告訴這些!!
⑥ 單片機的8位流水燈的問題,
哥們。你知道0xfe代表什麼意思嗎?51單片機的P1口有8個埠。0xfe表示最後一位為低電平也就是11111110.小燈當然會亮。然後a變數左移一位就是11111101,表示第二個燈亮其他滅。以此類推,不就是流水燈嗎?還有,你的蜂鳴器和燈設置延遲50毫秒?那就相當於一直在響一直再亮。多延遲一會
⑦ 單片機八個流水燈左右依次點亮
首先,打開proteus,可以看到界面上方有"庫",點開,在庫里選擇做實驗需要的元件。
如圖所示,我們做流水燈實驗所需要的元件,就是紅色方框裡面的元件,一定都要添加進來,要不然實驗就做不成功。
接著,我們按照電路原理圖,排布好元件,連好線,最後的電路如圖所示。
我們把實驗代碼插入單片機,然後點擊界面左下角的開始按鈕,就可以運行電路。
如圖所示,八個流水燈依次點亮。
⑧ 要求用51單片機控制8個LED亮滅的原理圖+程序+解說
本來以為這個程序很簡單的,沒想到寫了快三個小時。哎學藝不精啊。貼出來給你研究吧。我不想做過多的解釋了,我是按我理解的你出的題目做的,可能和你的本意不是很一樣,
1、依次亮,依次滅:從一個燈亮到全亮,再到全滅,每次改變一個燈亮滅
2、奇偶號燈間隔亮滅:隔一個燈亮一個燈亮燈時間為1s,沒有燈全滅的時候
3、依次閃爍、切換時間為3秒,閃爍時間為2秒,我理解的是,沒三秒鍾有一個燈在閃爍,其中有一秒鍾是滅燈狀態
程序中使用了P1口與8個發光二極體相連,具體電路圖你網路一下吧,還有使用了一個按鍵,該按鍵與P3.7相連,低電平為按下狀態。
程序如下:
#include <reg52.h>
#include <intrins.h>
/*變數聲明:
i、j、k都是記錄計時器溢出次數的變數,
stat是記錄當前顯示狀態的變數,由按鍵key控制
temp是狀態2中保護P1口狀態的變數*/
unsigned char i=0,j=0,k=0,stat=0,temp;
bit flag=1; //狀態1處於滅燈還是亮燈狀態的變數,1為依次亮燈,0為依次亮燈
sbit key=P3^7; //按鍵控制
void init(); //初始化函數
void delay(unsigned int N); //延時函數
void keyscan(); //鍵盤掃描函數
void main()
{
init();
while (1)
{
switch (stat)
{
case 0: //0方案
if(i==20&&flag)
{
i=0;
P1=P1<<1; //依次亮燈
temp=P1;
if(temp==0)
{
flag=0;
}
}
if(i==20&&!flag)
{
i=0;
if(P1==0xff)
{
flag=1;
P1=0xfe;
}
if(!flag)
{
P1=P1<<1; //依次滅燈
temp=P1;
P1=temp+1;
}
}
break;
case 1: //2方案
if(i==20)
{
i=0;
P1=~P1; //去反後亮燈狀態為滅燈,P1初值取0x55或0xaa,奇偶交替亮燈
}
break;
case 2: //3方案
if(j==60)
{
P1=temp;
P1=_crol_(P1,1);
temp=P1; //保護P1口亮燈狀態
k=0;
j=0;
}
//閃爍部分,應該可以優化
if(k<5)
{
P1=0xff;
}
else if(k>=5&&k<10)
{
P1=temp;
}
else if(k>=10&&k<15)
{
P1=0xff;
}
else if(k>=15&&k<20)
{
P1=temp;
}
else if(k>=20&&k<25)
{
P1=0xff;
}
else if(k>=30&&k<35)
{
P1=temp;
}
else if(k>=35&&k<40)
{
P1=0xff;
}
//-----------------------------------
break;
}
keyscan();
}
}
void init()
{
TH0=0x3c; //定時器賦初值定時時間50ms
TL0=0xB0;
TMOD=0x01; //設置定時器工作方式為方式1
EA=1; //開總中斷
ET0=1; //開中斷允許位
TR0=1; //定時器計數
P1=0xfe; //這里假設led燈與P1口相連並且
//低電平有效
}
void delay(unsigned int N)
{
int i,j;
for (i=0;i<N;i++);
for (j=0;j<110;j++);
}
void keyscan()
{
if(!key)
{
delay(10); //消抖
if(!key); //確認有鍵按下
stat++;
if(stat==3)
{
stat=0;
}
//右鍵按下復位
i=0;
j=0;
k=0;
TH0=0x3c;
TL0=0xB0;
switch (stat)
{
case 0:
P1=0xfe;
flag=1;
stat=0;
break;
case 1:
P1=0x55;
break;
case 2:
P1=0xfe;
temp=P1;
break;
}
//-----------------------------------
while(!key) //此循環中的函數和主函數中的顯示函數是同一個
//用於長按鍵的顯示,可以去掉,去掉長按鍵不會正常顯示,松開按鍵後正常
{
switch (stat)
{
case 0:
if(i==20&&flag)
{
i=0;
P1=P1<<1;
temp=P1;
if(temp==0)
{
flag=0;
}
}
if(i==20&&!flag)
{
i=0;
if(P1==0xff)
{
flag=1;
P1=0xfe;
}
if(!flag)
{
P1=P1<<1;
temp=P1;
P1=temp+1;
}
}
break;
case 1:
if(i==20)
{
i=0;
P1=~P1;
}
break;
case 2:
if(j==60)
{
P1=temp;
P1=_crol_(P1,1);
temp=P1;
k=0;
j=0;
}
if(k<5)
{
P1=0xff;
}
else if(k>=5&&k<10)
{
P1=temp;
}
else if(k>=10&&k<15)
{
P1=0xff;
}
else if(k>=15&&k<20)
{
P1=temp;
}
else if(k>=20&&k<25)
{
P1=0xff;
}
else if(k>=30&&k<35)
{
P1=temp;
}
else if(k>=35&&k<40)
{
P1=0xff;
}
break;
}
}
}
}
void timer0() interrupt 1
{
TH0=0x3c;
TL0=0xB0; //溢出後重新賦初值
//定時器中斷時間為50ms
i++; //20次中斷時間為1s
j++; //40次中斷時間為2s
k++; //60次中斷時間為3s
}
有什麼不懂的可以網路Hi我
⑨ 單片機:設計一個8燈閃爍控制電路,系統晶振為12HMz,編程實現8燈輪流閃爍,每盞燈點亮時間為2秒 求大神!
LED負極接單片機IO口,本程序接P1,低電平點亮
#include<reg52.h> //52系列單片機頭文件
#include<intrins.h>
#defineuintunsignedint //宏定義
#defineucharunsignedchar
voiddelayms(uint); //聲明子函數
ucharaa;
voidmain() //主函數
{
aa=0xfe; //賦初值11111110
while(1) //大循環
{
P1=aa;
delayms(2000); //延時2秒
aa=_crol_(aa,1); //將aa循環左移1位後再賦給aa
}
}
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=110;j>0;j--);
}
⑩ 單片機編程: P1口8個燈從低位到高位依次點亮(流水燈),遇到外部中斷1,8個燈亮點 。求電路原理
ORG0000H
LJMPMAIN
ORG0013H
LJMPEXT1
ORG0030H
MAIN:
MOVA,#0FEH
LOOP:
MOVP1,A
RLA
LCALLDELAY
SJMPLOOP
EXT1:
MOVP1,#00H
MOVR7,#10
DD:
LCALLDELAY
DJNZR7,DD
RETI
DELAY:
MOVR2,#200
DLY:
MOVR3,#250
DJNZR3,$
DJNZR2,DLY
RET
END