Avr könyvtár az LCD-hez, a tűk tetszőleges csatlakoztatásával
Néhány évvel ezelőtt makrókat írtam a virtuális portok megvalósítására. Ezeknek a makróknak köszönhetően szinte bármelyik könyvtárat remakezhetjük, hogy tetszőleges mikrokontroller-tűket használjunk. Az első könyvtár, amely e változás miatt jött létre, a karakteres LCD könyvtár volt. Ebben a bejegyzésben elmondom, hogyan kell alkalmazni a projektben.
- működik az IAR AVR fordítóprogramokkal, a CodeVision AVR, a GNU GCC,
- támogatja az HD44780 és KS0066 LCD vezérlőket,
- támogatja az LCD-csatlakozást a mikrokontroller tetszőleges kimenetéhez,
- támogatja a 4 bites és a 8 bites interfészt,
- a funkció a kimenet vonalak RAM és flash,
- funkciója az egyedi karakterek hozzáadásának.
compilers_4.h - fájl, amely három fordítót támogat
port_macros.h - virtuális portmakrók
lcd_lib_2.h - az LCD könyvtár fejlécfájlja a funkciók és beállítások prototípusával
lcd_lib_2.c - fájl az LCD könyvtári funkciók végrehajtásához
1. Írja át az összes könyvtár fájlt a projekt mappájába.
2. Csatlakoztassa az lcd_lib_2.c fájlt a fejlesztési környezetben lévő projekthez.
3. Vegye fel az lcd_lib_2.h fejlécfájlt a sishnuyu fájlba, amely az lcd funkciókat használja.
4. Állítsa be az lcd könyvtár-konfigurációt az lcd_lib_2.h fejlécfájlba
5. A függvényhívó lcd könyvtárban regisztráljuk a kódot.
A konfiguráció konfigurálása az lcd_lib_2.h fájlban a következő lépéseket tartalmazza.
A keretek azok a kódok, amelyeket testre kell szabni a projekthez.
2. Globális illesztőprogram beállítások
LCD_CHECK_FL_BF - ellenőrizze a BF zászlót, vagy használja a program késleltetését. 0 - késleltetés, 1 - a zászló ellenőrzése.
Az LCD_BUS_4_8_BIT az adatbusz. 0 - 4 bites busz, 1-8 bites
3. A kijelző inicializálása
Ezek a beállítások határozzák meg a kijelző állapotát az LCD_Init () függvény hívása után.
LCD_ONE_TWO_LINE - a megjelenített sorok száma. 0 - 1 vonal; 1 - 2 sor.
Az LCD_FONT58_FONT511 a betűtípus. 0 - 5x8 pont; 1 - 5x11 pont.
LCD_SHIFT_RIGHT_LEFT - a teljes kijelző eltolása. 0 - memória olvasásakor a váltás nem történik meg, 1 - RAM memóriára való írás esetén a kijelzés eltolása az LCD_DEC_INC_DDRAM beállításnak megfelelően történik (0 - jobbra váltás, 1-shift balra)
LCD_DISPLAY_OFF_ON - a kijelző be- és kikapcsolása. 0 - a kijelző ki van kapcsolva, de a RAM-ban lévő adatok továbbra is fennmaradnak; 1 - a kijelző be van kapcsolva.
LCD_CURSOR_OFF_ON - egy aláhúzott kurzort mutat. 0 - a kurzor nem jelenik meg, 1 - a kurzor megjelenik.
LCD_CURSOR_BLINK_OFF_ON - villogó kurzor jelenik meg. 0 - a villogó kurzor nem jelenik meg; 1 - a villogó kurzor jelenik meg.
LCD_CURSOR_DISPLAY_SHIFT - parancs a kurzor vagy a kijelző jobb / bal oldalának a kijelzés nélküli írása. A könyvtárat nem használják, és nem érinti semmit. Véletlenül ide jött)
LCD_Clear () - törli a kijelzőt.
LCD_ReturnHome () - Visszahelyezi a kurzort a kiindulási helyzetbe.
LCD_Goto (x, y) - a kurzor pozicionálása. x a ismerősségi szám, y a sor száma.
void LCD_Init (üres) - A kijelző inicializálása.
void LCD_WriteCom (uint8_t adatok) - írja be a parancsot
void LCD_WriteData (karakteradatok) - egy karaktert kell kiadnia
void LCD_SendStr (char * str) - egy karakterlánc kimenete a RAM-ból.
void LCD_SendStrFl (char __flash * str) - kimeneti karakterlánc a flash memóriából.
void LCD_SetUserChar (uint8_t __flash * sym, uint8_t adr) - töltsön be egy egyéni karaktert a kijelző RAM-jába.
LCD_VP_iar.rar - tesztprojekt az IAR AVR számára
LCD_VP_as6.rar - tesztprojekt az AtmelStudio számára
LCD_VP_cv.rar - a CodeVision AVR tesztprojektje
LCD_VP_winavr.rar - tesztprojekt a WinAvr számára
LCD_VP_proteus.rar - tesztprojekt a Proteus számára
lcd_lib_2.rar - lcd könyvtár tetszőleges csatlakozással
Nagyon köszönöm a könyvtárat. De nem tudom működni. A WH0802A-NGG-CT kijelző egyáltalán nem reagál.
Fordító WINAVR, MK-ATmega8A
#define VIRT_PORT
#ifdef VIRT_PORT
// itt egy virtuális portot definiáltam
// adatbusz LCD
#define LCD_PORT LCD_DATA, F, _VIRT
#define LCD_DATA_0 D, 0, _HI
#define LCD_DATA_1 D, 1, _HI
#define LCD_DATA_2 D, 2, _HI
#define LCD_DATA_3 C, 5, _HI
#define LCD_DATA_4 C, 4, _HI
#define LCD_DATA_5 C, 3, _HI
#define LCD_DATA_6 B, 0, _HI
#define LCD_DATA_7 B, 1, _HI
// vezérlővezeték LCD
#define LCD_RS C, 0, _HI
#define LCD_RW C, 1, _HI
#define LCD_EN C, 2, _HI
// globális illesztőprogram beállítások
#define LCD_CHECK_FL_BF 1
#define LCD_BUS_4_8_BIT 1
// megjeleníti az inicializálási beállításokat
#define LCD_ONE_TWO_LIN E 1
#define LCD_FONT58_FONT 511 0
#define LCD_DEC_INC_DDR AM 1
#define LCD_SHIFT_RIGHT _LEFT 0
#define LCD_DISPLAY_OFF _ON 1
#define LCD_CURSOR_OFF_ ON 1
#define LCD_CURSOR_BLIN K_OFF_ON 1
#define LCD_CURSOR_DISP LAY_SHIFT 0
más
kimenet 1 - föld
kimenet 2 - +5
kimenet 3 - +5