Maison > Article > tutoriels informatiques > Tutoriel sur l'écriture de boutons pour contrôler le cycle de clignotement de la lumière LED d'un microcontrôleur
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--);
}
//==============
#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
} } } #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(); } } 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 finComment faire un chapiteau avec un microcontrôleur
Programme de marque MCU
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!