//*********************************************************************************** // Programa BLINK8.C - pisca 8 LEDs em seqüência vai e vem // // Desenvolvido por Márcio José Soares // // Microcontrolador utilizado: M8 ou M16 Tato Equipamentos Eletrônicos // Compilador: TBasic M8 versão 1.2.0.2 // // PORT B - LEDs (PB0 - PB7) //*********************************************************************************** //*********************************************************************************** //Definições do módulo //*********************************************************************************** #define BYTE unsigned char #define TRUE 0x01 //*********************************************************************************** // Função tempo - espera ocupada // Entradas - nenhuma // Saídas - nenhuma //*********************************************************************************** void tempo(void){ int i,j; for (i=0; i<255; i++) for (j=0; j<255; j++) ; } //*********************************************************************************** // Função main - principal // Entradas - nenhuma // Saídas - nenhuma //*********************************************************************************** void main(void){ BYTE i, j; outp(DDRB,0xFF); // configura PORTB como saída while (TRUE){ // repete para sempre j=0x01; //valor inicial (LED1 ligado) outp(PORTB, j); //colocar valor na porta tempo(); //temporiza for (i=0; i<7; i++){ //faz restante j=j<<0x01; //shift do dado para a esquerda outp(PORTB, j); //novo valor na porta tempo(); //temporiza novamente } j=0x80; //prepara para voltar (LED8 ligado) outp(PORTB, j); //insere valor na porta tempo(); //temporiza for (i=0; i<7; i++){ //faz restante j=j>>0x01; //shift do dado para a direita outp(PORTB, j); //novo valor na porta tempo(); //temporiza novamente } } }