Tutoriel sur l'écriture de boutons pour contrôler le cycle de clignotement de la lumière LED d'un microcontrôleur

WBOY
Libérer: 2024-01-22 17:18:06
avant
692 Les gens l'ont consulté

Tutoriel sur lécriture de boutons pour contrôler le cycle de clignotement de la lumière LED dun microcontrôleur

Apprenez à écrire un programme pour contrôler le cycle de clignotement de la lumière LED d'un microcontrôleur via des boutons

Quel microcontrôleur utilisez-vous ?

Je pense que vous parlez d'un chapiteau, je vais vous donner le plus courant, un microcontrôleur 51 et un programme chapiteau C.

Je peux vous en donner plus si nécessaire, je suis ingénieur en développement matériel.

J'espère l'adopter.

Par exemple, il s'agit d'un programme C chapiteau pour un microcontrôleur 51, qui a été simulé sur le logiciel PROTEUS

#inclure

void delay(int);

void main()

{

int i;

P0=0x01;

délai(500);

pendant(1)

{

pour(i=0;i

{

P0

délai(500);

}

P0=0x01;

délai(500);

}

}

annuler le délai (intx)

{

int i,j;

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

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

}

 : 

#inclure

void delay(int);

void main()

{

int i;

P0=0x01;

délai(500);

pendant(1)

{

pour(i=0;i

{

P0

délai(500);

}

P0=0x01;

délai(500);

}

}

annuler le délai (intx)

{

int i,j;

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

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

}

Programme de portes tournantes MCU

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

#inclure

#définir le compte 11

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);

scanner vide (char);

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

principale()

{char i=0;

pendant(1)

{

si(i==0)

{ pour(i=0;i

scanner(i);

}

autre

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

{

scanner(i);

if(i==0)break;}

}

}

}

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

void delay1ms(int x )

{int i,j;

pour(i=0;i

pour(j=0;j

}

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

scanner vide (char x)

{ char i,j,scan,BCD;

pour(i=0;i

{scan=1;

pour(j=0;j

{ P0=0xff;

P2=~scanner;

BCD=disp[x][j];

P0=TAB[BCD];

délai1ms(4);

scan

}

}

}

Comment faire un chapiteau avec un microcontrôleur

#inclure

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;

annuler le délai()

{

char non signé i,j;

pour(i=0;i

pour(j=0;j

}

void main()

{

pendant(1)

{

P1 = 0xff;

LED1 = 0;

Délai();

LED2 = 0;

LED1 = 1;

Délai();

LED3 = 0;

LED2 = 1;

Délai();

LED4 = 0;

LED3 = 1;

Délai();

LED5 = 0;

LED4 = 1;

Délai();

LED6 = 0;

LED5 = 1;

Délai();

LED7 = 0;

LED6 = 1;

Délai();

LED8 = 0;

LED7 = 1;

Délai();

}

}

Programme de marque MCU

org 0000h

jmp start

org 0030h

début :

mov a,#0ffh ;

clr c ;

mov r2,#08h ; boucle huit fois.

boucle : rlc a ; décalage vers la gauche avec report.

mov p1,a ; Sortie vers le port P1.

délai d'appel;retard pendant un certain temps

djnz r2, boucle ; boucle à plusieurs reprises

mov r2,#07h ; puis boucle en arrière.

loop1 : rrc a ; décalage vers la droite avec carry

mov p1,a ; Sortie vers le port P1.

délai d'appel;retard pendant un certain temps

djnz r2,loop1; boucle à plusieurs reprises

jmp start;recommencez

delay : mov r3,#20 ; sous-programme de retard

d1 : mouvement r4,#20

d2 : mouvement r5,#248

djnz r5,$

djnz r4,d2

djnz r3,d1

ret

fin

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:docexcel.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!