PIC16f877-DS18b20-LCDDisplayFunctions

by Marwen Maghrebi
  1. // Initialize LCD for 4-bit mode
  2. void lcd_initialize(void) {
  3. lcd_command(0x02); // Return cursor to home position
  4. lcd_command(0x28); // Set 4-bit mode, 2-line display, 5x8 font
  5. lcd_command(0x06); // Set entry mode with auto-increment
  6. lcd_command(0x0C); // Display ON, cursor OFF
  7. lcd_command(0x01); // Clear display
  8. __delay_ms(2); // Short delay for clear screen command
  9. }
  10.  
  11. // Send data to LCD
  12. void lcd_data(unsigned char data) {
  13. RS = 1; RW = 0; // Set to data mode and write
  14. PORTD = (data & 0xF0); // Send upper nibble
  15. EN = 1;
  16. __delay_ms(2);
  17. EN = 0;
  18. PORTD = ((data << 4) & 0xF0); // Send lower nibble
  19. EN = 1;
  20. __delay_ms(2);
  21. EN = 0;
  22. }
  23.  
  24. // Send string to LCD
  25. void lcd_string(const char *str, unsigned char len) {
  26. for(unsigned char i = 0; i < len; i++) {
  27. lcd_data(str[i]);
  28. }
  29. }
  30.  
  31. // Send command to LCD
  32. void lcd_command(unsigned char cmd) {
  33. RS = 0; RW = 0; // Set to command mode and write
  34. PORTD = (cmd & 0xF0); // Send upper nibble
  35. EN = 1;
  36. __delay_ms(2);
  37. EN = 0;
  38. PORTD = ((cmd << 4) & 0xF0); // Send lower nibble
  39. EN = 1;
  40. __delay_ms(2);
  41. EN = 0;
  42. }
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
    -
    00:00
    00:00