Heim >Computer-Tutorials >Computerwissen >Tutorial zum Schreiben von Tasten zur Steuerung des Blinkzyklus der LED-Leuchte eines Mikrocontrollers

Tutorial zum Schreiben von Tasten zur Steuerung des Blinkzyklus der LED-Leuchte eines Mikrocontrollers

WBOY
WBOYnach vorne
2024-01-22 17:18:06775Durchsuche

Tutorial zum Schreiben von Tasten zur Steuerung des Blinkzyklus der LED-Leuchte eines Mikrocontrollers

Lernen Sie, wie man ein Programm schreibt, um den LED-Blinkzyklus eines Mikrocontrollers über Tasten zu steuern

Welchen Mikrocontroller verwenden Sie?

Ich glaube, Sie sprechen von einem Marquee. Ich gebe Ihnen das gebräuchlichste, einen 51-Mikrocontroller und ein Marquee-C-Programm.

Ich kann Ihnen bei Bedarf mehr geben, ich bin Hardware-Entwicklungsingenieur.

Ich hoffe, es zu übernehmen.

Beispielsweise handelt es sich hier um ein erstklassiges C-Programm für einen 51-Mikrocontroller, das mit der PROTEUS-Software simuliert wurde

#include

void-Verzögerung(int);

void main()

{

int i;

P0=0x01;

Verzögerung(500);

while(1)

{

for(i=0;i

{

P0

Verzögerung(500);

}

P0=0x01;

Verzögerung(500);

}

}

Void-Verzögerung(intx)

{

int i,j;

for(i=x;i>0l;i--)

for(j=110;j>0;j--);

}

:

#include

void-Verzögerung(int);

void main()

{

int i;

P0=0x01;

Verzögerung(500);

while(1)

{

for(i=0;i

{

P0

Verzögerung(500);

}

P0=0x01;

Verzögerung(500);

}

}

Void-Verzögerung(intx)

{

int i,j;

for(i=x;i>0l;i--)

for(j=110;j>0;j--);

}

MCU-Drehtürprogramm

//==============

#include

#Anzahl 11 definieren

char TAB[]={ 0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x83,0xf8,0x80,0x98,

0xff};

char disp[11][4]={ {10,10,10,10},

{1,10,10,10},{10,1,10,10},{10,10,1,10},{10,10,10,1},

{2,10,10,1},{10,2,10,1},{10,10,2,1},

{3,10,2,1},{10,3,2,1},

{4,3,2,1}};

void delay1ms(int);

void scanner(char);

//================

main()

{char i=0;

while(1)

{

if(i==0)

{ for(i=0;i

scanner(i);

}

sonst

{ for(i=10;i>=0;i--)

{

scanner(i);

if(i==0)break;}

}

}

}

//================

Void-Verzögerung1ms(int x)

{ int i,j;

for(i=0;i

for(j=0;j

}

//====================

Void-Scanner (char x)

{char i,j,scan,BCD;

for(i=0;i

{ scan=1;

for(j=0;j

{ P0=0xff;

P2=~scan;

BCD=disp[x][j];

P0=TAB[BCD];

Verzögerung1ms(4);

scan

}

}

}

Wie man mit einem Mikrocontroller ein Festzelt baut

#include

sbit LED1 = P1^0;

sbit LED2 = P1^1;

sbit LED3 = P1^2;

sbit LED4 = P1^3;

sbit LED5 = P1^4;

sbit LED6 = P1^5;

sbit LED7 = P1^6;

sbit LED8 = P1^7;

void Delay()

{

unsigned char i,j;

for(i=0;i

for(j=0;j

}

void main()

{

while(1)

{

P1 = 0xff;

LED1 = 0;

Verzögerung();

LED2 = 0;

LED1 = 1;

Verzögerung();

LED3 = 0;

LED2 = 1;

Verzögerung();

LED4 = 0;

LED3 = 1;

Verzögerung();

LED5 = 0;

LED4 = 1;

Verzögerung();

LED6 = 0;

LED5 = 1;

Verzögerung();

LED7 = 0;

LED6 = 1;

Verzögerung();

LED8 = 0;

LED7 = 1;

Verzögerung();

}

}

MCU-Festzeltprogramm

org 0000h

ajmp start

org 0030h

Start:

mov a,#0ffh ;

clr c ;

mov r2,#08h ; Schleife achtmal.

loop: rlc a ; nach links verschieben mit Carry.

mov p1,a ; Ausgabe an Port P1.

Anrufverzögerung; Verzögerung für einen bestimmten Zeitraum

djnz r2,loop; Schleife wiederholt

mov r2,#07h ; dann Schleife zurück.

loop1: rrc a ; nach rechts verschieben mit Carry

mov p1,a ; Ausgabe an Port P1.

Anrufverzögerung; Verzögerung für einen bestimmten Zeitraum

djnz r2,loop1; Schleife wiederholt

jmp start;nochmals beginnen

Verzögerung: mov r3,#20; Verzögerungsunterroutine

d1: mov r4,#20

d2: mov r5,#248

djnz r5,$

djnz r4,d2

djnz r3,d1

ret

Ende

Das obige ist der detaillierte Inhalt vonTutorial zum Schreiben von Tasten zur Steuerung des Blinkzyklus der LED-Leuchte eines Mikrocontrollers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen