// AVR-MT-128-LCD.c // // Kod för LCD // // #include "AVR-MT-128-LCD.h" #define F_CPU 16000000UL #include //************************************************************** //*** Drivrutiner för LCD ************************************** //************************************************************** /* Styrsignaler för LCD i port C: databuss: bit 7 - 4, bit 2: E, bit 1: R/W, bit 0: RS. */ //============================================================== //=== En lagom lång E-puls: ==================================== //============================================================== void E_Pulse(){ //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? } //============================================================== //=== Väntefunktion; väntar på att ============================= //=== BF ska gå till noll. ============================= //=== 4-bitarskommunikation ============================= //============================================================== void BF_Test(){ //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? } //============================================================== //=== Skickar ett kommando till LCD ============================ //============================================================== void LCD_WriteCommand(unsigned char command){ ??????????????????????????????????? ??????????????????????????????????? E_Pulse(); ??????????????????????????????????? ??????????????????????????????????? E_Pulse(); BF_Test(); } //============================================================== //=== Skickar ett tecken till LCD ============================== //============================================================== void LCD_WriteCharacter(unsigned char character){ //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? } //============================================================== //=== Uppstart av LCD till 4-bitars, 2-radig, ================== //=== blinkande markör. ================= //============================================================== void LCD_Init(){ DDRC = 0b11110111; _delay_ms(15); PORTC = 0b00110000; // 8-bit interface E_Pulse(); _delay_ms(5); PORTC = 0b00110000; // 8-bit interface E_Pulse(); _delay_us(100); PORTC = 0b00110000; // 8-bit interface E_Pulse(); _delay_us(40); PORTC = 0b00100000; // 4-bit interface E_Pulse(); _delay_us(40); LCD_WriteCommand(0x28); // 4-bit, 2-lines LCD_WriteCommand(0x01); // Display clear _delay_us(1640); LCD_WriteCommand(0x06); // Cursor increment LCD_WriteCommand(0x0F); // Disp on, cursor on, cursor blink } //============================================================== //=== Placerar ett tecken på en ============================ //=== bestämd plats ============================ //============================================================== void LCD_PlaceCharacter(unsigned char position, unsigned char character){ //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? } //============================================================== //=== Skriver en textsträng ============================= //=== på en bestämd plats ============================= //============================================================== void LCD_PlaceString(unsigned char position, const unsigned char *address){ //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? } //============================================================== //=== Skriver värdet av en byte ============================= //=== på en bestämd plats ============================= //============================================================== void LCD_PlaceByte (unsigned char position, unsigned char byte){ //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? //?????????????????????????????????????????????????????????????? }