導航:首頁 > 編程語言 > 51單片機led循環閃爍匯編程序

51單片機led循環閃爍匯編程序

發布時間:2022-09-08 16:13:00

1. 求一段用51單片機來實現60個led燈循環點亮的程序,沒過一秒點亮一盞(就是模擬時鍾的秒針)

51單片機來實現60個led燈循環點亮的程序://************************************匯編程序:
#include<at89x51.h>
#define uchar unsigned char
#define uint unsigned int
uchar data count=0;
bit flag=0;
//*********主函數*****************
void main(void)
{
uchar i=0,k=0xfe;
TMOD=0x01;
TH0=0x4c;TL0=0x00;//定時50ms
EA=1;ET0=1;TR0=1;
while(1)
{
if(flag==1){k=k<<1|0x01;flag=0;i++;}
if(i==8){i=0;k=0xfe;}
P1=k;
}
}
//*********中斷函數*****************//0111 1111
void dy1s(void) interrupt 1 using 1
{
TH0=0x4c;TL0=0x00;//定時50ms
count++;
if(count==20){flag=1;count=0;} //1s到了
}。C語言程序編寫。
void main() { P1=0XFF; /*定義初始狀態為全滅*/while(1) { delay(2000); P1=0X7e; delay(2000); P1=0Xbd; delay(2000);P1=0Xdb;delay(2000); P1=0Xe7; delay(2000); P1=0Xdb;delay(2000); P1=0Xbd;delay(2000); P1=0X7e; delay(2000); P1=0XFF; /********此循環使得發光二極體按照07,16,25,34,43,52,61,70的順序循環交替兩兩點亮*******/} /*end while*/}/*end main*/

2. 基於51單片機16個彩燈從左到右再從右左循環閃爍的匯編程序

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int //16位
#define uchar unsigned char//8位

sbit led=P2^0;
sbit k0=P1^0;
sbit k1=P1^1;

void delay(uint z);
void youyi();
void zuoyi();
uchar i;
uchar temp1=0x01;//0000 0001
uchar temp2=0x80;//1000 0000

uchar flag0=0;
uchar flag1=0;

void main()
{
while(1)
{
if(k0==0)//左移
{
flag0=1;
}
if(k1==0)//右移
{
flag1=1;
}

if(flag0==1)
{
zuoyi();
temp2=0x80;
}

if(flag1==1)
{
youyi();
temp1=0x01;
}
}
}

void zuoyi()
{
for(i=0;i<7;i++)//i++ i=i+1
{

P2=temp1;
temp1=_crol_(temp1,1);//0000 0010
delay(500);

}
}
void youyi()
{
for(i=0;i<7;i++)//i++ i=i+1
{
P2=temp2;
temp2=_cror_(temp2,1);//1000 0000
delay(500);
}
}

void delay(uint z)
{
uint x , y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);

3. 用c51單片機控制一個閃光燈循環閃光5次以後熄滅不再閃光,用C語言編程,求程序……

用C語言編程,求程序的方法:

#include//包含單片機寄存器的頭文件

/****************************************函數功能:延遲一段時間

*****************************************/

Voiddelay(Void)//Void表示沒有返回值,也沒有傳遞參數。

Unsignedint我;定義一個最大值為65535的無符號整數。

For (I = 0;我< 20000;i++) //執行20000個空循環。

;//什麼也不做,等待一個機器周期。

/*******************************************************

函數函數:主函數(C語言規則必須有且只能有一個主函數)。

********************************************************/空白主要(空白)

而(1)//無限循環。

P0=0xfe;//P1=11111110B,P0.0輸出低電平。

延遲();//推遲一段時間。

P0=0XFF;//P1=11111111B,P0.0輸出高電平。

延遲();//推遲一段時間。

單片機驅動LED光源程序:

#include//頭文件。

定義uint無符號int

#定義uchar無符號字元

SbitLED1=P1^7;//定義。

空白delay_ms(單位);//帶參數的ms級延時函數。

Voidmain()

而(1)

LED1=0;

Delay_ms(1000);

LED1=1;

Delay_ms(1000);

Voiddelay_ms(uintz)//delay子常式

使用Uintx,y;

For (x = z;X > 0;X -)

For (y = 110;Y > 0;Y -);

(3)51單片機led循環閃爍匯編程序擴展閱讀:

單片機應用分類:

一般類型:

這是關於微控制器的。例如80C51通用型單片機,它並不是為特定的目的而設計的;專用單片機是為某一類產品甚至某一種產品而設計生產的。例如,為了滿足電子體溫計的要求,晶元中集成了具有ADC介面的溫度測量控制電路等功能。

主線:

這是由微控制器是否提供並行匯流排來區分的。匯流排微控制器一般安裝有並行地址匯流排、數據匯流排、控制匯流排,這些引腳擴展並行外圍設備可以通過串口與單片機連接。

另外,很多單片機都需要將外圍設備和外圍設備的介面集成在一塊,所以在很多情況下不能並行擴展匯流排,大大降低了封裝成本和晶元體積,這種單片機被稱為非匯流排單片機。

控制類型:

這是關於微控制器的一般應用。一般來說,工業控制定址范圍大,計算能力強。家用電器的單片機大多是專用的。

它通常是小包裝、低價格、高集成的外圍設備和外圍介面。顯然,上述分類並不獨特和嚴格。例如,80C51類單片機既是通用的,又是匯流排的,還可以用於工業控制。

4. 51單片機用匯編實現LED1亮1秒,滅3秒循環執行

ORG 0000H START: MOV P0,#0FEH LCALL DELAY1 MOV P0,#01H LCALL DELAY1 LCALL DELAY SJMP START DELAY1: push 03h push 04h push 05h mov r3,#100 d1: mov r4,#20 d2: mov r5,#248 d3: djnz r5,d3 nop djnz r4,d2 djnz r3,d1 pop 05h pop 04h pop 03h ret delay: push 03h push 04h push 05h mov r3,#50 d1: mov r4,#20 d2: mov r5,#248 d3: djnz r5,d3 nop djnz r4,d2 djnz r3,d1 pop 05h pop 04h pop 03h ret end

5. 用匯編語言編寫51單片機程序讓LED燈亮0.5秒,滅2秒無限循環

ORG 0000H
MOV SP,#60H
E: CLR P1.0 ; P1.0 LED亮
ACALL DEL_1S ; 0.5 秒
SETB P1.0 ; P1.0 LED滅
ACALL DEL_2S ;2秒
SJMP E ; 循環
DEL_1S: MOV R2,#10 ; 0.5秒

JMP DEL_2S+2
DEL_2S: MOV R2,#40 ; 2秒
SETB TR1
LOOP: JNB TF1,$
MOV TL1,#0B0H
MOV TH1,#3CH
CLR TF1
DJNZ R2,LOOP
CLR TR1
RET
END

6. 匯編51單片機三個LED交替閃爍

ORG 0000H
AJMP MAIN
ORG 000BH ;TO Time interrupt
lJMP T0INT
ORG 001BH ;T1 Count interrupt
LJMP T1CNT

ORG 030H
MAIN: MOV TMOD,#61H ;T1 count at MOD 2,T0 time int at MOD 1
MOV TL0,#0B0H ;66536-50000=3CB0H 50000us=50ms=0.05s
MOV TH0,#3CH
SETB ET0 ;T0 interrupt enable
SETB TR0 ;T0 work
;MOV TL1,#0FDH ;count num = 2
;MOV TH1,#0FDH ;auto load 0FDH
;SETB ET1
;SETB TR1
SETB EA ;Enable all interrupt
MOV A,#28H ;0.05s*40=2s
MOV P0,#0FEH
JMP $

ORG 060H
T0INT: CLR ET0 ;Disable T0 interrupt
CLR TF0 ;clr tf0
;CPL P1.7
DEC A ;A--
JNZ T0RET ;A!=0 jmp

;;;;;;;;;;;;;;;;;;更改這里改燈閃爍
MOV A,P1
RR A
MOV P1,A
;;;;;;;;;;;;;;;;;;

MOV A,#28H ;A==0;A=40,
T0RET: SETB ET0 ;Enable interrupt
RETI

ORG 080H

7. 求51單片機定時LED閃爍程序代碼

#include<reg52.h>//包括一個52標准內核的頭文件

#defineucharunsignedchar

/******************************主函數*****************************/

voidtimer0();

voidmain()//主程序

{

TMOD=0x01;//定時器0工作方式1

EA=1;

ET0=1;//定時器0中斷

TR0=1;//啟動定時器0

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

while(1);//程序循環

}

/*****************************定時器0中斷*************************/

voidtimer0()interrupt1

{

uchart;//定義變數

TF0=0;//定時器清0

t++;//中斷一次累加1

if(t==20)//預置值,溢出20次就是1秒鍾,晶振12MHZ

{

t=0;

P3=~P3;//反轉LED燈的亮滅

}

}

/*****************************************************************/

8. 如何用匯編語言控制led燈閃爍

用AT89C2051單片機(可以換成任意的51單片機)模擬,控制一個LED燈閃爍,LED燈接在P1.7腳上。程序如下

LED1 BIT P1.7

MAIN:CPL LED1

ACALL DELAY

SJMP MAIN

DELAY:MOV R7,#0;延時子程序

MOV R6,#0

LOP:DJNZ R6,$

DJNZ R7,LOP

RET

模擬圖如下

閱讀全文

與51單片機led循環閃爍匯編程序相關的資料

熱點內容
androidm3u8緩存 瀏覽:234
imphp開源知乎 瀏覽:706
清除網路通配符dos命令 瀏覽:837
鴻蒙系統怎麼快速換回安卓 瀏覽:712
pdf綠色虛擬列印機 瀏覽:213
androidtab框架 瀏覽:147
java轉php的時間戳 瀏覽:638
編譯libstdc依賴 瀏覽:657
清演算法人與原法人的區別 瀏覽:410
家庭裝修下載什麼app軟體 瀏覽:575
美食博主用什麼app拍視頻 瀏覽:815
ipone手機如何加密微信 瀏覽:357
自來水加密閥閥帽 瀏覽:437
華為交換機dhcp配置命令 瀏覽:319
androidbitmap縮小 瀏覽:275
單片機串口控制燈 瀏覽:88
大訊雲伺服器安裝視頻 瀏覽:788
華為演算法領先世界 瀏覽:658
linux路由重啟 瀏覽:570
php的模板編程 瀏覽:324