導航:首頁 > 操作系統 > 單片機流水燈三個模式

單片機流水燈三個模式

發布時間:2022-10-22 04:26:21

『壹』 單片機中怎樣定義一個按鍵控制轉換三個模式

參考如下: 假設按鍵按下為低電平; if(key1==0) { while(key1==0);//彈起後執行 { 按鍵1需要執行的功能; } } if(key2==0) { while(key2==0);//彈起後執行 { 按鍵2需要執行的功能; } }

『貳』 單片機用外部中斷0改變流水燈的方式(0~3共4種模式)。

外部中斷一次給temp變數加一if(temp>=4){temp=0;}顯示程序里就根據temp的值來確定流水燈的移動次數就可以實現了。

『叄』 單片機如何控制流水燈每三秒循環一次

for循環三次後,執行while(1); ,這是一條死循環語句,相當於暫停指令,停止在此處。因單片機沒有暫停指令,只好用這行語句代替了。
如果3次後,需要保持亮或滅,可以換一下:
led=1;
led=0;這兩行就行了。
在實現流水燈之前,我們有必要提一點,C51代碼在寫之前,要參考電路圖來寫。拿流水燈來說,我們來看圖二,LED燈,也就是二極體,八隻LED的正極通過一根匯流排接在+5V的電壓上,再看圖一,可知八隻LED燈的負極接在LED、P2的8個I/O口上。根據二極體的導通條件可知,在單片機的IO口輸出低電平時,才能點亮LED燈。

『肆』 c51單片機獨立按鍵控制三種流水燈

#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharkeyval,led,led1;
sbitkey=P3^2;
voidext0()interrupt0
{
while(key==0);
keyval++;
keyval%=3;
}
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
main()
{
led=0xfe;
led1=0x55;
while(1)
{
switch(keyval)
{
case0:P1=led;led=_crol_(led,1);delay(200);break;
case1:P1=led;led=_cror_(led,1),delay(200);break;
case2:P1=led1;led1=~led1;delay(200);brek;
default:break;
}
}
}

『伍』 單片機按鍵控制3個流水燈樣式

把按鍵程序源代碼發上來,別發圖片,而且做的是長圖,那程序根本沒法看,發了也沒用。這樣,才方便復制並幫你改。可現在的圖片,誰看都會頭痛,還哪有心情幫你改,躲還來不及呢,誰願意自找麻煩。

『陸』 如何用單片機實現流水燈,從一依次亮到八,再從八依次亮回一,一直循環

用GPIO寄存器比如PA、PB、PC這類的整段寄存器。配合循環、移位和延時(軟硬都可以)操作,就能很優雅地實現。

單片機(Single-Chip Microcomputer)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。

單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。

『柒』 51單片機中怎樣用一個按鍵控制三種模式的流水燈,如控制流水燈流水速率(每按一下加速,到三後返回和第一次

#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit anjian = P1^0; //按鍵位
void delay(uint16 h) //延時程序
{
while(h--);
}
main()
{ uint8 k = 0 , i = 0;
P0 = 0xff;
anjian = 1;
while(1)
{
P0 = ~(1<<k++);
if(anjian == 0)
{
delay(200);
if(anjina == 0) i++;
if(i == 3)
i = 0;
}
switch(i)
{
case 0: delay(10000);break;
case 1: delay(20000);break;
case 2: delay(20000); break;
}
if(k==8) k=0;
}

}
//頭一次回答問題,多多支持,全部知識都是自學的,但是我試驗過可以符合你的要求運行,謝謝

『捌』 51單片機1按鍵切換3種不同狀態的c程序

主程序大致是這樣的
flag=0;//記錄按鍵次數
While(1)
{
if(key==0){delayms(20);if(key==0)flag++;}//按鍵檢測
if(flag==3)flag=0;
if(flag==0){正向流水}
else if(flag==1){反向流水}
else {間隔流水}
}存在問題,由於流水燈執行時間較長,因此對按鍵響應緩慢,可以在流水燈之間加入按鍵檢測語句,當檢測到按鍵按下時,用break語句退出當前循環

『玖』 51單片機C程序:如何實現一個按鍵長按3秒進入程序,再長按3秒關機,短一次卻換流水燈切換模式,共3種模式

長按3秒進入程序可以這樣
while(1)
{
if(key==0)//按鍵按下
{
cnt++;

if(cnt>300)
{
cnt=0;//到3秒,退出本循環進入下一段程序
break;
}
dely(10);//延時10毫秒
}
}

while(1)
{
...//此為主程序段
}

『拾』 單片機流水燈

P0口控制,先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動三次;再從中間往兩邊流動三次;不過這個程序實現的應該是這樣的
先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動;再從中間往兩邊流動(延時0.1s)
#include< reg52.h>
#include< intrins.h>//頭文件
#define uint unsigned int
#define uchar unsigned char//聲明用unit代替unsigned int,下個同理
void delay();
void main()
{ uchar temp,temp1,temp2,a,b;
while(1)
{ for(b=3;b>0;b--)
{ temp=0xaa;
P0=temp;
delay();
temp=0x55;
P0=temp;
delay();//調用延時函數
}
for(a=3;a>0;a--)
{ temp=0xfe;
for(b=7;b>0;b--)
{ P0=temp;
temp=_crol_(temp,1);
delay();
P0=temp;
delay();
}
}
temp1=0xfe;
temp2=0x7f;
for(a=8;a>0;a--)
{
temp=temp1&temp2;
P0=temp;
delay();
temp1=_crol_(temp1,1);
temp2=_cror_(temp2,1);
}
}
}
void delay()
{ uint a,b;
for(a=100;a>0;a--)
for(b=100;b>0;b--);
} //延時函數
希望可以幫助到您

謝謝

閱讀全文

與單片機流水燈三個模式相關的資料

熱點內容
單片機充電電路原理圖 瀏覽:998
android軟體雲伺服器地址 瀏覽:213
如何用伺服器做內網穿透服務 瀏覽:401
oracle加密表空間重置密碼 瀏覽:302
mdk編譯後目標文件 瀏覽:615
老人動手解壓 瀏覽:720
小米sd卡解壓 瀏覽:996
程序員那麼可愛陸漓替老袁說情 瀏覽:28
當女程序員遇見問題 瀏覽:746
32位編譯器什麼意思 瀏覽:355
php多參數函數 瀏覽:17
通達信板塊動作源碼 瀏覽:751
matlab完全自學一本通pdf 瀏覽:251
php源碼本地安裝 瀏覽:961
伺服器怎麼用不會斷電 瀏覽:301
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:15
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:47