導航:首頁 > 編程知識 > 單片機弄39個燈泡怎麼編程

單片機弄39個燈泡怎麼編程

發布時間:2023-09-05 13:54:51

Ⅰ 單片機C語言編程點亮LED燈

可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。 具體實現方法可以參考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循環點亮LED for(i=0; i<7; i++) { P1=_crol_(P1,1); // 左移一位,點亮下一位LED delay(55); } // 向右循環點亮LED for(i=0; i/ 右移一位,,點亮上一位LED delay(55); } }}// 延時函數,延時a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}

Ⅱ 單片機流水燈程序

用的什麼單片機?
--------------------
看了電路圖,就知道了。
既不是32個串口,也根本不使用串口。

;32個LED顯示初版始化:
MOV P0, #3FH
MOV P1, #3CH
MOV P2, #2AH
MOV P3, #47H

;循環移位權:
_LOOP:
MOV A, P0
RRC A

MOV A, P1
RRC A
MOV P1, A

MOV A, P2
RRC A
MOV P2, A

MOV A, P3
RRC A
MOV P3, A

MOV A, P0
RRC A
MOV P0, A

LCALL _DELAY1S
SJMP _LOOP

;延時子程序:
_DELAY1S:
…………
RET

Ⅲ c51單片機中如何用匯編語言編寫流水燈

51單片機用匯編語言編寫流水燈程序,就是控制多個LED ,使其在特定時間間隔內,只有一個LED 發光,其他熄滅,用這種方式順序移動點亮LED的位置,就形成了流水燈的效果。以下是程序:
;假設晶振12MHZ,P1控制8個LED低電平亮
;啟動入口========================
ORG 0000H ;復位啟動
AJMP START ;
ORG 001BH ;T1中斷
AJMP T1INT ;
;定義變數========================
YSJS EQU 30H;延時計數器
LED EQU 31H;LED控制緩沖器
;主程序==========================
START: MOV LED,#0FEH ;初始化數據
MOV YSJS,#0 ;
;
MOV TMOD,#10H ;定時器1工作於方式1,16位定時器
MOV TL1,#0B0H ;設置定時初值
MOV TH1,#3CH ;定時時間=50mS
SETB ET1 ;使能定時器1中斷
SETB TR1 ;啟動定時器1
SETB EA ;開總中斷
MOV P1,LED ;初始化流水燈
;
LOOP: JMP LOOP ;循環等待中斷
;
;
T1INT: PUSH PSW ;定時器1中斷程序
PUSH ACC ;保護現場
;
MOV TH1,#3CH ;定時時間=50mS
MOV TL1,#0B0H ;
INC YSJS ;
PUSH ACC ;保護ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循環左移1位
MOV LED,A ;
MOV YSJS,#0 ;
;
QT1: POP ACC ;恢復現場
POP PSW ;
RETI ;返回主程序
END ;匯編程序結束

Ⅳ 單片機製作呼吸燈的C語言程序怎樣編寫

#include<reg51.h>
sbit LED0=P0^0;
sbit wei=P1^1;
sbit an=P1^0;
sbit lcden=P1^7;
sbit dianzhen=P1^3;
sbit leden=P1^2;
void Delay(unsigned int t);
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;//定義周期並賦值
lcden=0;
P0=0x00;
dianzhen=0;
P0=0xff;
wei=0;
an=0;
while (1) //主循環
{
LED0=1;
Delay(150000); //特意加延時,可以看到熄滅的過程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{
LED0=0;

Delay(PWM_LOW);

LED0=1;

Delay(CYCLE-PWM_LOW);
}
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
{
LED0=0;

Delay(PWM_LOW);

LED0=1;

Delay(CYCLE-PWM_LOW);
}
}
}
void Delay(unsigned int t)
{
while(t--);
}

Ⅳ 單片機流水燈的C語言編程

#include <reg52.h> //52系列單片機頭文件
#include <intrins.h>
#define uint unsigned int //宏定義
#define uchar unsigned char
void delayms(uint); //聲明子函數
uchar aa;
void main() //主函數
{
aa=0xfe; //賦初值11111110
while(1) //大循環
{
P1=aa;
delayms(500); //延時500毫秒
aa=_crol_(aa,1); //將aa循環左內移1位後再賦容給aa
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=110;j>0;j--);
}
查表就是在表頭加個code table[]={......}

Ⅵ 51單片機32個流水燈編程如何實現指定其中某一個燈亮,如何實現多種花樣亮燈

要51單片機控制32個流水燈,關鍵是要解決電路設計,只要能設計出電路來,編程實現控制指定其中某一個燈亮,並實現多種花樣亮燈,就容易了。如果只做32個流水燈,就用單片機的四個並行口,共32個IO引腳全部用上,正好控制32個流水燈。如果引腳還有其他應用,可用四片鎖存器,也可以控制32個流水燈了。

Ⅶ 請位高手幫我寫個89C51單片機控制流水燈C語言源程序。謝謝

用P2=0xFF&(0x01+2*i)用for循環,之後是P2=0xFF&(0x81+2*i)用for循環,之後類推P2=P2=0xFF&(0xC1+2*i),P2=0xFF&(0xE1+2*i),P2=0xFF&(0xF1+2*i),P2=0xFF&(0xF9+2*i),P2=0xFF&(0xFD+2*i),P2=0xFF;每次循環都比前一次少一次循環就可以了。

閱讀全文

與單片機弄39個燈泡怎麼編程相關的資料

熱點內容
論文怎麼設置目錄word 瀏覽:609
廣電網路dlna是什麼意思 瀏覽:12
js變數加下劃線 瀏覽:18
app開發工作是吃青春飯嗎 瀏覽:117
蘋果手機國家查詢 瀏覽:765
蘋果6照片刪了怎麼找回 瀏覽:399
文件夾控制面板 瀏覽:536
人工神經網路人臉識別 瀏覽:531
打開cad提示參照文件 瀏覽:521
如何計算數軸上三點abc對應的數據 瀏覽:985
文件夾到u盤變成多少kb 瀏覽:351
sfs文件怎麼解壓 瀏覽:39
為什麼app隱私政策總是變更 瀏覽:490
ai文件轉換器軟體 瀏覽:217
判斷java數組裡面的個數 瀏覽:214
老版本三國殺10 瀏覽:949
為什麼有些人不能學習編程 瀏覽:955
火山編程和易安卓哪個好學 瀏覽:695
java代理ip工具類 瀏覽:171
全選多個文件名復制路徑不顯示呢 瀏覽:957

友情鏈接