Programació en C del PIC 16F690

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Conversió de números a ASCII

Si hem de mostrar un número a una pantalla, haurem de passar-lo a BCD (separar els dígits en variables diferents, una per a cada caràcter). Però aquests digits estaran en valor numèric (de 0 a 9). Per posar-los a la pantalla han d'estar en ASCII. Atès que els codis ASCII dels nombres són consecutius i ordenats, això és tan fàcil com sumar el codi ASCII del 0 a cada dígit.

Per exemple:

	Caracter = Digit + '0';			// Li sumem el codi ASCII de 0

Si, per exemple, tenim un número de 5 dígits (unsigned int) guardat en un vector, podem fer servir el següent tros de programa:

char Digits[5];					// Variable amb el número dígit a dígit
						// Digits[0] són les unitats
...
	for (signed char j = 0; j < 5; j++){		// 5 dígits
		Digits[j] = Digits[j] + '0';	// Li sumem el codi ASCII de 0
	}
...		

Addicionalment, podem convertir en espais en blanc els zeros de l'esquerra:

char Digits[5];					// Variable amb el número dígit a dígit
						// Digits[0] són les unitats
...
	char mira0 = 1;				// De moment, hem de mirar si el caràcter és zero
 	for (signed char j = 4; j > 0; j--){	// El 0 de les unitats el mostrarem sempre
		if(mira0 == 1) {		// Encara toca comprovar sí és 0?
			if(Digits[j] == '0') {	// Mirem si el dígit és 0
				Digits[j] = ' ';		// Si ho és, hi posem un espai
			} else {
				mira0 = 0;	// Si no ho és, ja no cal mirar-ne més
			}
		}
	}
...		

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.