Vous êtes sur la page 1sur 5

//librerias

//diagrama

sbit LCD_RS at RB4_bit;

sbit LCD_EN at RB5_bit;

sbit LCD_D4 at RB0_bit;

sbit LCD_D5 at RB1_bit;

sbit LCD_D6 at RB2_bit;

sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;

sbit LCD_EN_Direction at TRISB5_bit;

sbit LCD_D4_Direction at TRISB0_bit;

sbit LCD_D5_Direction at TRISB1_bit;

sbit LCD_D6_Direction at TRISB2_bit;

sbit LCD_D7_Direction at TRISB3_bit;

//caracteres

const char character0[] = {31,31,24,31,31,24,31,31};

const char character1[] = {24,24,24,24,24,24,31,31};

const char character2[] = {30,30,12,12,12,12,12,12};

const char character3[] = {14,17,0,14,14,14,14,0};

const char character4[] = {14,17,0,14,14,14,14,0};

const char character5[] = {0,0,0,16,24,28,15,7};

const char character6[] = {0,0,0,1,3,7,30,28};

const char character7[] = {24,8,28,0,7,5,7,0};

void CustomChar00(char pos_row, char pos_char) {

char i;

Lcd_Cmd(64);

for (i = 0; i<=7; i++) Lcd_Chr_CP(character0[i]); //iniciar en hasta

Lcd_Cmd(_LCD_RETURN_HOME); //retornar

Lcd_Chr(pos_row, pos_char, 0); // el lcd en la posición

}
void CustomChar01(char pos_row, char pos_char) {

char i;

Lcd_Cmd(72);

for (i = 0; i<=7; i++) Lcd_Chr_CP(character1[i]); //inciar en cero hasta

Lcd_Cmd(_LCD_RETURN_HOME); //retornar al inicio

Lcd_Chr(pos_row, pos_char, 1); //el lcd en la posición

void CustomChar02(char pos_row, char pos_char) { //la pocion en el lcd

char i; //carater i

Lcd_Cmd(80); //

for (i = 0; i<=7; i++) Lcd_Chr_CP(character2[i]); //iniciar en cero hasta que sea


menor a7

Lcd_Cmd(_LCD_RETURN_HOME); //retornar a inicio

Lcd_Chr(pos_row, pos_char, 2); // posición en el lcd

void CustomChar03(char pos_row, char pos_char) { //posicion

char i;

Lcd_Cmd(88);

for (i = 0; i<=7; i++) Lcd_Chr_CP(character3[i]); //iniciar en 0 hasta 7

Lcd_Cmd(_LCD_RETURN_HOME); //retornar a inicio

Lcd_Chr(pos_row, pos_char, 3); //poscion de e lcaracter

void CustomChar04(char pos_row, char pos_char) { //posicion de caracter

char i; //caracter i

Lcd_Cmd(96); //lcd comando

for (i = 0; i<=7; i++) Lcd_Chr_CP(character4[i]); //iniciar en 0 hasta 7

Lcd_Cmd(_LCD_RETURN_HOME); //regresar a inicio

Lcd_Chr(pos_row, pos_char, 4); //posición del carácter en el lcd

void CustomChar05(char pos_row, char pos_char) { //posicion del caracter

char i;
Lcd_Cmd(104); //linea commando

for (i = 0; i<=7; i++) Lcd_Chr_CP(character5[i]); //iniciar en 0 hasta 7

Lcd_Cmd(_LCD_RETURN_HOME); //retornar a inivio

Lcd_Chr(pos_row, pos_char, 5); //posición del carácter en el lcd

void CustomChar06(char pos_row, char pos_char) { //posicion de carácter

char i;

Lcd_Cmd(112); //linea comando

for (i = 0; i<=7; i++) Lcd_Chr_CP(character6[i]); //inicar en 0 hasta 7

Lcd_Cmd(_LCD_RETURN_HOME); //retornar a inicio

Lcd_Chr(pos_row, pos_char, 6); //posición en el lcd

void CustomChar07(char pos_row, char pos_char) {

char i;

Lcd_Cmd(120);

for (i = 0; i<=7; i++) Lcd_Chr_CP(character7[i]);

Lcd_Cmd(_LCD_RETURN_HOME);

Lcd_Chr(pos_row, pos_char, 7);

//inicializacion de los puertos a usar

void main()

{ ADCON1=15;

CMCON=7;

INTCON=0;

Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);

Lcd_Cmd(_LCD_CURSOR_OFF);

CustomChar00(1,2);

CustomChar01(1,4);

CustomChar02(1,6);

CustomChar03(1,9);

CustomChar04(1,10);

CustomChar05(2,9);

CustomChar06(2,10);

CustomChar07(1,13);

///////////////////////////////////////////////////////////////////////////////

libreria usada

//Funciones para calcular el numero de unos de un entero

//--------------------------------------------------------

int c1a(unsigned int valor){ //declarando variables

int cuenta = 0; //iniciando el conteo

while(valor){ // evaluar valor

cuenta += valor & 1; //valor distinto a uno

valor >>= 1; //valor mayor a 1

return cuenta; //retornar a cuenta

//-------------------------------------------------------

int c1b(unsigned int valor){ //

int cuenta; //declarar la variable cuenta

for (cuenta = 0; valor != 0; cuenta++, valor &= valor-1); //iniciando cuenta en cero
hasta

return cuenta; //retornar a cuenta

}
//-----------------------------------------------------------

int c1c(unsigned int valor)

valor = valor - ((valor >> 1) & 0x5555); //valor negarlo

valor = (valor & 0x3333) + ((valor >> 2) & 0x3333); //sumar el valor

valor = ((valor + (valor >> 4)) & 0x0F0F); //guardar y sumar el valor

return (valor*(0x0101))>>8; //retornar el valor

Vous aimerez peut-être aussi