Menú
Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Foros
Diseño digital
Microcontroladores y sistemas embebidos
Realizar lectura y escritura en EEPROM de un sensor
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="dogflu66, post: 1055299, member: 264210"] Actualmente estoy realizando unas practicas con displays de 7 segmentos multiplexados. Éstas son las funciones que estoy utilizando por el momento, te las dejo por si te sirven. El tiempo por dígito es de 1 ms. [php]//Funciones de control para 3 digitos con display de 7 segmentos a led. //Retorna valor: Byte //Numero a mascara tipo digito display 7 segmentos //_get7seg, retorna la mascara de los segmentos a activar Int8 _get7seg(Int8 _numero) { Const Int8 _mascara[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x80}; Return _mascara[_numero]; } //_get7seg1, retorna la mascara de los segmentos a activar con punto decimal Int8 _get7seg1(Int8 _numero) { Const Int8 _mascara[] = {0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xff, 0xef, 0x80}; Return _mascara[_numero]; } //Selecciona el Display de 7Segmentos activo e imprime el digito. //_numero a imprimir, _power = 1 display on Void _Display(Int16 _numero, int1 _power) { Int8 i = 1; Static Int8 n = 0; Int8 _digito = 0; If (_numero > 999) _numero = 999; //Acota superior el numero //Descompone en digitos para numero >= 100 If (_numero >= 100) { If (n == 2) _digito = _numero / 100; else If (n == 1) _digito = ((_numero / 10) % 10); else If (n == 0) _digito = _numero % 10; } else If (_numero >= 10) { //Descompone en digitos para numero >= 10 If (n == 1) _digito = _numero / 10; else If (n == 0) _digito = _numero % 10; } else If (n == 0) _digito = _numero; //Extrae el digito para numero < 10 If (n == 1) PORTB = _get7seg1(_digito); //Asigna la mascara del digito con punto decimal else PORTB = _get7seg(_digito); //Asigna la mascara del digito sin punto decimal If (_power == 0) i = 0; //Apaga el display PORTA = i << n; //Selecciona el digito a iluminar. n++; if (n > 2) n = 0; //Numero de digitos +1 }[/php] [/QUOTE]
Verificación
Responder
Foros
Diseño digital
Microcontroladores y sistemas embebidos
Realizar lectura y escritura en EEPROM de un sensor
Arriba