Programació en C del PIC 16F690 amb PICkit 2

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 (int 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
...
	for (int j = 0; j < 5; j++){		// 5 dígits
		Digits[j] = Digits[j] + '0';	// Li sumem el codi ASCII de 0
	}
	if (Digits[4] == '0') {			// Mirem si el primer dígit és 0
		Digits[4] = ' ';		// Si ho és, hi posem un espai
		if (Digits[3] == '0') {		// I mirem si ho és el segon
			Digits[3] = ' ';	// Si ho és, hi posem un espai
			if (Digits[2] == '0') {			// I mirem si ho és el tercer
				Digits[2] = ' ';		// Si ho és, hi posem un espai
				if (Digits[1] == '0') {		// I mirem si ho és el quart
					Digits[1] = ' ';	// Si ho és, hi posem un espai
				}		// El 0 de les unitats el mostrarem sempre
			}
		}
	}
...		

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.