Programa en lenguaje C para que cada una de las 8 luces del microcontrolador 51 se encienda al mismo tiempo
//Suponiendo que el oscilador de cristal es de 12 MHZ, P1 controla el LED para que se ilumine a un nivel bajo
#include "reg51.h"
unsigned int YSJS= 0;
unsigned int P1BUF=0X03;
void main(void)
{
TMOD |= 0X10; 1 funciona en modo 1, temporizador de 16 bits
TH1 = 0XFF; //Tiempo de temporización del temporizador 1 = 500uS
TL1 = 0X06;
ET1 = 1 ; // Habilitar interrupción del temporizador 1
EA =1; //Habilitar interrupción total
P1 = P1BUF;
while(1)
{
}
}
void TIMER1(void) interrupción 3 //La función de interrupción del temporizador 1 utiliza el grupo de registros predeterminado
{
TH1 = 0XFF; //Tiempo de temporización del temporizador 1=500us
TL1 = 0X06;
YSJS++;
if( YSJS==2000) //500uS*2000=1000000us=1s
{
P1 = P1BUF;
YSJS = 0
P1BUF = P1BUF<<2;
IF(P1BUF==0)P1BUF=0X03;
}
}