Отговори на тема  [ 2 мнения ] 
Проблем с LCD 4x16 AC-164A и PIC16F886. 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 03, 2007 8:52 pm
Мнения: 89
Местоположение: Димитровград
Мнение Проблем с LCD 4x16 AC-164A и PIC16F886.
Проблема е че не се изписва думата на дисплея. Нещо май не съм направил както трябва. Използвам съм драйвера за 4 бит от hi-tech и се опитах да го преработя в 8 битов.

#define LCD_RS RC5
#define LCD_RW RC6
#define LCD_EN RC7

#define LCD_DATA PORTB

#define LCD_STROBE() ((LCD_EN = 1),(LCD_EN = 0))

void
lcd_write(unsigned char c)
{

delay_ms(100);
LCD_RW = 0;
LCD_DATA = ( ( c >> 8 ) & 0xFF );
LCD_STROBE();
LCD_DATA = ( c & 0xFF );
LCD_STROBE();

}

void
lcd_clear(void)
{
LCD_RS = 0;
lcd_write(0x1);
delay_ms(2);
}

void
lcd_sends(const char *s) // записване на символи
{
LCD_RS = 1;
while(*s)
lcd_write(*s++);
}


void
lcd_send(char c) // записване на символ
{
LCD_RS = 1;
lcd_write( c );
}



void
lcd_goto(unsigned char pos)
{
LCD_RS = 0;
lcd_write(0x80+pos);
}

void
lcd_init(void)
{
char init_value;

init_value = 0x3;

LCD_RS = 0;
LCD_EN = 0;
LCD_RW = 0;

delay_ms(60);
LCD_DATA = init_value;
LCD_STROBE();
delay_ms(10);
LCD_STROBE();
delay_ms(10);
LCD_STROBE();
delay_ms(10);
LCD_DATA = 2;
LCD_STROBE();

lcd_write(0x38);
lcd_write(0xC);
lcd_clear();
lcd_write(0x06);
}

/**********************************************************************************************/

void main(void)
{

OSCCON = 0b01100111; //вътрешен осцилатор - 4MHz

OPTION = 0b00110111; //включване на изтеглящи резистори на PORTB, такт на TMR0-от крак RA4, от високо към ниско ниво, 1:256
TRISC = 0b00000000;
TRISB = 0b00000000;

lcd_init();

lcd_goto(0x3);
lcd_send(BG_Z);
lcd_send(BG_d);
lcd_send('p');
lcd_send('a');
lcd_send(BG_v);
lcd_send('e');
lcd_send(BG_ii);
lcd_send(BG_t);
lcd_send('e');
lcd_send(0x21);
}


Буквите съм ги дефинирал.


Прикачени файлове:
Untitled.jpg
Untitled.jpg [ 212.95 KiB | Прегледано 695 пъти ]
Чет Дек 23, 2010 12:10 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 03, 2007 8:52 pm
Мнения: 89
Местоположение: Димитровград
Мнение 
Леле какъв срам. Каква тъпа грешка съм допуснал, ма то като преписваш.


Чет Дек 23, 2010 3:14 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 2 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни