Easyelectronics.ru

Электроника для всех
Текущее время: 26 фев 2021, 03:50

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: "Подружить" МК 80S51 с LCD
СообщениеДобавлено: 19 май 2014, 19:13 
Заглядывает иногда

Зарегистрирован: 07 янв 2013, 16:28
Сообщения: 56
Приветствую, нужна программа для перессылки и визуализации данных с мк на LCD в режиме 8 bit.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Подружить" МК 80S51 с LCD
СообщениеДобавлено: 19 май 2014, 19:39 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4381
Откуда: г. Липецк
Круто, че сразу денег не попросить?
"Типовая схема подключения LCD-модуля к микроконтроллерам MCS-51" - http://www.gaw.ru/html.cgi/txt/app/lcd/51to_lcd.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Подружить" МК 80S51 с LCD
СообщениеДобавлено: 19 май 2014, 20:12 
Заглядывает иногда

Зарегистрирован: 07 янв 2013, 16:28
Сообщения: 56
anakost писал(а):
Круто, че сразу денег не попросить?
"Типовая схема подключения LCD-модуля к микроконтроллерам MCS-51" - http://www.gaw.ru/html.cgi/txt/app/lcd/51to_lcd.htm

Спасибо, а на C есть код?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Подружить" МК 80S51 с LCD
СообщениеДобавлено: 19 май 2014, 20:24 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3520
а код на С для 8051 принципиально отличается от кода на С для других МК?

вот нашел для 4х битного режима

Код:
#include "type.h"
#include "delay.h"
#include "CY7C68013A.h"

#define LCD_READ  0x40
#define LCD_WRITE 0x00
#define LCD_DATA  0x80
#define LCD_REG   0x00
#define LCD_E     0x20

#define LCD_WRITE_DELAY 40

void LcdWriteReg(u8 d){
  IOB = LCD_WRITE | LCD_REG | (d >> 4);
  IOB = LCD_WRITE | LCD_REG | (d >> 4) | LCD_E;
  IOB = LCD_WRITE | LCD_REG | (d & 0x0F);
  IOB = LCD_WRITE | LCD_REG | (d & 0x0F) | LCD_E;
  IOB = 0;
}

void LcdWriteData(u8 d){
  IOB = LCD_WRITE | LCD_DATA | (d >> 4);
  IOB = LCD_WRITE | LCD_DATA | (d >> 4) | LCD_E;
  IOB = LCD_WRITE | LCD_DATA | (d & 0x0F);
  IOB = LCD_WRITE | LCD_DATA | (d & 0x0F) | LCD_E;
  IOB = 0;
}

void LcdClear() {LcdWriteReg(0x01); Delay_us(2000);}
void LcdReturn() {LcdWriteReg(0x02); Delay_us(2000);}
void LcdEntryMode(u8 dir, u8 shift) {LcdWriteReg(0x04 | (dir ? 0x02 : 0x00) | (shift ? 0x01 : 0x00)); Delay_us(LCD_WRITE_DELAY);}
void LcdControl(u8 disp, u8 cursor, u8 blink) {LcdWriteReg(0x08 | (disp ? 0x04 : 0x00) | (cursor ? 0x02 : 0x00) | (blink ? 0x01 : 0)); Delay_us(LCD_WRITE_DELAY);}
void LcdShift(u8 dir, u8 disp) {LcdWriteReg(0x10 | (disp ? 0x08 : 0x00) | (dir ? 0x04 : 0x00)); Delay_us(LCD_WRITE_DELAY);}
void LcdFunc(u8 bits, u8 lines, u8 font) {LcdWriteReg(0x20 | (bits ? 0x10 : 0x00) | (lines ? 0x08 : 0x00) | (font ? 0x04 : 0x00)); Delay_us(LCD_WRITE_DELAY);}
void LcdCgAddr(u8 addr){LcdWriteReg(0x40 | (addr & 0x3f)); Delay_us(LCD_WRITE_DELAY);}
void LcdAddr(u8 addr){LcdWriteReg(0x80 | (addr & 0x7f)); Delay_us(LCD_WRITE_DELAY);}
void LcdGoto(u8 x, u8 y){LcdAddr(x+y*40);}

void LcdWriteChar(u8 d){
   LcdWriteData(d);   Delay_us(LCD_WRITE_DELAY);   
}

void LcdWriteStr(u8 * d){
  while (*d) LcdWriteChar(*d++);
}




void LcdInit(){
  IOB = 0x00;
  OEB = 0xFF;

  Delay_us(20000);
  IOB = 0x03;
  IOB = 0x03 | LCD_E;
  IOB = 0x00;

  Delay_us(5000);
  IOB = 0x03;
  IOB = 0x03 | LCD_E;
  IOB = 0x00;
 
  Delay_us(1000);
  IOB = 0x02;
  IOB = 0x02 | LCD_E;
  IOB = 0x00;

  LcdFunc(0, 1, 0);
  LcdControl(0, 0, 0);
  LcdClear();
  LcdEntryMode(1, 0);
  LcdControl(1, 0, 0);
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB