Microcontrollerbesturingen.

© Harry Broeders.

Deze pagina is bestemd voor studenten van de THRijswijk.

Liquid Cristal Display.

De 68HC11 EVM kasten van de THRijswijk zijn uitgerust met een LCD display. Dit display bevat 4 regels van elk 20 karakters. Dit display wordt ook gesimuleerd door THRSim11 (menu View, THRSim11 IO box).

lcd.h, lcd.o en lcdsim.o

Er zijn verschillende functies beschikbaar waarmee de LCD vanuit C aangestuurd kan worden. Deze functies zijn in de file lcd.h gedefinieerd:

void lcd_init(void);            	/* initialiseer de lcd */
void lcd_clrscr(void);          	/* maak de lcd leeg */
void lcd_putc(char c);          	/* schrijf karakter c naar de lcd */
void lcd_puts(const char* str);     	/* schrijf c string str naar de lcd */
void lcd_setpos(short row, short col);  /* zet de cursor op regel row (0..3) en kolom col (0..19) */
short lcd_getrow(void);         	/* haal nummer van de regel waarop de cursor staat (0..3) */
short lcd_getcol(void);         	/* haal nummer van de kolom waarop de cursor staat (0..19) */
void lcd_cursor_off(void);      	/* zet de cursor uit (onzichtbaar) */
void lcd_cursor_on_blink(void);     	/* zet de cursor aan (knipperend blokje). Werkt NIET in THRSim11 */
void lcd_cursor_on_noblink(void);   	/* zet de cursor aan (streepje). Werkt NIET in THRSim11 */ 

Deze functies kunnen bijvoorbeeld als volgt gebruikt worden (lcd_test.c):

#include "lcd.h"

int main() {
    lcd_init();
    lcd_cursor_off();
    lcd_puts("Hallo");
    lcd_setpos(lcd_getrow()+1, lcd_getcol()+1);
    lcd_puts("68HC11");
    lcd_setpos(lcd_getrow()+1, lcd_getcol()+1);
    lcd_puts("wereld");
    lcd_setpos(3, 19);
    lcd_putc('!');
    while (1);
    return 0;
}

Bij het linken moet de library file liblcd.a of libsimlcd.a meegelinkt worden.

De gewenste library kan eenvoudig in de makefile worden opgegeven:

#	Makefile to cross compile and assemble for Motorola EVM board
#	with a MC68HC11 processor using the GNU compiler package.
#	Harry Broeders 14 November 2004

# list all object files here:
OBJECTS    = lcd_test.o
# list all libraries here:
LIBS       = -L. -lsimlcd 


Het voorbeeldprogramma geeft in de THRSim11 simulator het volgende resultaat:

Na les7 van MICB2 of les 12 van MCCA ken je de betekenis van de optie -mshort. De versies van de LCD library die zijn gecompileerd met -mshort kun je hier vinden: liblcd.a en libsimlcd.a.