/* Electronica IV * Projecto de Elevador * Controlo de um motor DC atraves de um pic16f877 da microchip * * Helder Cabrita 27470 & Jose Pereira 28102 * * * Funções do lcd * filename: lcd.c * version 1.0 @ 11.05.2006 16.36 * */ #include #include "lcd.h" #include "const.h" void writeLCD(char ctr, char data) //ctr => dois bits: 0x01 apenas RS; 0x02 apenas RW; 0x03 ambos; 0x00 nenhum { unsigned int i; LCD_DATA=data; LCD_RW=(ctr&0x1); LCD_RS=(ctr&0x2)>>1; for(i=0;i<30;i++) asm("nop"); STROBE; for(i=0;i<30;i++) asm("nop"); // LCD_EN=1; // for(i=0;i<30;i++) asm("nop"); // LCD_EN=0; } void printStrLCD(const char *str) { unsigned char i=16; gotoLCD(0,0); while(*str) { if(*str != '\n') { putCharLCD(*str); i--; } else { while(i) { putCharLCD(' '); i--; } i=15; gotoLCD(1,0); if(*(++str)) putCharLCD(*str); else break; } str++; } while(i) { putCharLCD(' '); i--; } } void printVelLCD(unsigned int vel) { unsigned char i; char str[NDIGIT]; gotoLCD(1,0); // vel=vel*KVEL; for(i=1;i