Zdravim hledam nejaky zakladni program pro obsluhu LCD (se 4-bit pro data), s popsanymi prikazy a delany v Cecku. Prave s tim zacinam a hodil by se mi nejaky vzorovy program, kterym si muzu vyzkouset jak se s tim LCD da pracovat....
Fórum › Mikrokontroléry
AVR a LCD displej
Nevim jestli to pomuze, protoze nepises co pouzivaz za LCD
Mam uC AtMega8, LCD pouzivam MC0802A-SYL/H
Stahnul jsem si knihovnu pro praci s LCD z http://jump.to/fleury.
Prodratovano je to tak ze pro komunikaci pouzivam PORTD, D0-3 mam nadratovane na PORTD0-3 a zbyvajici piny R/S, R/W a E jsou nadratovane na PORTD 5,6,7, samozrejme napajeni LCD a podsviceni dle datasheetu
Potom je treba upravit v lcd.h kousek programu takto:
#define LCD_PORT PORTD /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PIN 5 /**< pin for RS line */
#define LCD_RW_PIN 6 /**< pin for RW line */
#define LCD_E_PIN 7 /**< pin for Enable line */
Program na zobrazeni textu potom vypada takto:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "lcd.h"
unsigned char i;
unsigned int del=1000;
//-----------------------------------------------------------------------------
int main(void)
{
char buffer[8];
lcd_init(LCD_DISP_ON); //Inicializace LCD
lcd_clrscr(); //vymazani LCD
lcd_gotoxy(0,0); //nastaveni na pozici 0,0
lcd_puts("RoBoProG"); //vypsani textu
lcd_gotoxy(0,1);
lcd_puts("Run:");
for (i=3;i>0;i--)
{
sprintf(buffer,"%2i",i);
lcd_gotoxy(4,1);
lcd_puts(buffer);
_delay_ms(500);
}
}
Doufam ze jsem to tady moc nezaneradil
Potreboval bych poradit, jak vytvorit viceurovnove menu, kde bude v urcitych polozkach umoznena editace....pro ovladani mam pouzite jen 4 tlacitka ( <,>,OK,ZPET). Jsem schopen vyrobit treba vice urovni, ale mam to docela neefektivne udelane....ale nevim jak editovat udaj pomoci tlacitek a pak ho ulozit do pameti a nasledne pouzit....prikladam vyvojovy diagram...
No nevim jak se v menu pohybujes nahoru dolu, spise bych udelal tlacitka dolu, nahoru OK a zpet.
Listujes seznamem dolu nahoru a dalsi uroven dosahnes tlacitkem OK, tlacitkem zpet se vratis.
Kdyz uz nejde dale tlacitkem OK, znamena to, ze jsi v nejake polozce, ktera jde editovat a nahoru dolu bych inkrementoval/dekrementoval hodnotu.
Pokud se stiskne OK, hodnota se ulozi do EEprom, kde to zustane i kdyz to vypnes/zapnes.
Udelat viceurovnove menu je docela slozite, pokud nevis kolik je urovni, ale pokud vis napr. ze je max. 3-urovne, da se udelat treba pres pole.
Ale s efektivitou bych si nedela hlavu, pokud se to vejde do pameti, kdyz uz se to nevejde, prekopam program jinak.
Vyvojovy diagram mi nejde otevrit
tím bych si nebyl tak úplně jistfrontm4n napsal:
Potreboval bych poradit, jak vytvorit viceurovnove menu, kde bude v urcitych polozkach umoznena editace....pro ovladani mam pouzite jen 4 tlacitka ( <,>,OK,ZPET). Jsem schopen vyrobit treba vice urovni, ale mam to docela neefektivne udelane....ale nevim jak editovat udaj pomoci tlacitek a pak ho ulozit do pameti a nasledne pouzit....prikladam vyvojovy diagram...
Já mám dobré zkušenosti s programem Bascom, je velice jednoduchý s množstvím příkazů zevrubně popsaných v přiložené nápovědě i s příklady použití. S tímto programem potřebuje člověk jen vědět co chce naprogramovat a pak už to jde samo.
Urobit viacurovnove menu nie je az taky problem,ako sa zda.Pouzivam na to struktury a tabulky.Funkcia je stale rovnaka a vyuzivam rekurzivne volanie (dufam,ze som pouzil spravny vyraz) jednej a tej istej funkcie.Tym padom zaplnis programovu pamat len jeden raz kodom a tabulkou dat a pomocne data sa ukladaju na zasobnik
.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
LCD + AVR — založil Systém
Stabillizace napětí 3,3 v před avr a lcd — založil lotin
AVR Toolchain 3.3.0 + AVR studio + ATTiny26 - mala rada — založil xhans69
Lesklý vs matný displej na notebook — založil Kent
Jak na displej 3310 - Bascom — založil 12dawe34
Moderátoři diskuze