В поисках библеотек дял работы с LCD на C8051F3..
Доброго времени суток! Собираюсь попробовать работать с LCD дисплеем на основе HD44780. МК C8051F320. Никак не могу отыскать примеров/библиотек на C для него. В интернетах встретил огромное количество кода для avr, а вот для моего МК не встречал (нашел на Радиокоте тему по f030, но там все ссылки устарели
). Так как велосипед изобретать не очень хочется, не могли бы поделится ссылками/примерами программ/библиотеками? Заранее спасибо!
- Реклама
Пример можно посмотреть в книге: 
Во вложении библиотека для C51Fxxx, не помню где нашел...Микроконтроллеры серии 8051. Практический подход (Ю.С. Магда, 2008)
- Вложения
-
- ONIC_LCD.zip
- (140.86 КБ) 182 скачивания
- Сообщения: 1487
- Зарегистрирован: Вс май 13, 2012 00:01:54
У меня Simplicity studio, который его в себя включает. Там действительно встроены некоторые примеры кода, но для lcd не нашел!Ищите Silicon Laboratories IDE
Вот просто огромное спасибо! Отличный пример! Теперь сижу, разбираюсьВо вложении библиотека для C51Fxxx, не помню где нашел...
По ходу дела возник 1 вопрос, на который нигде не нашел ответа: нужно ли делать паузу между передачей двух полубайт в 4-битном режиме работы?
Исходный код выдачи данных в порт в 8-б режиме из примера:
Код: Выделить всё
void Set_Data (char CH)
{
DATABUS_CF=0; // Режим с открытым истоком
DATABUS=CH; // Поместить байт данных CH в порт
}
А вот что у меня получается для 4-б режима:
P1.7-P1.4 = D7-D4; DC=P1.3; RW=P1.2;EN=P1.1
Код: Выделить всё
void Set_Data (unsigned char CH)//Отрпавить биты в порт
{
unsigned char temp=0x00;
temp = CH;
DATABUS_CF &= 0x0F; // Режим с открытым истоком почему так? вроде же push pull надо?
CH = CH | 0x0F;//Левая часть - первый полубайт. Правую ставим в "1", что бы не сбить EW, RW и DC при лог. И
DATABUS &= CH; //Сперва отправим левую часть CH, так как она старше в DB7:DB4
E=0;//Поехали
E=1;//Отправили первый полуйбайт без всяких задержек (верно ли?) готовимся к отправке второго
temp<<4;//Сдвинем на 4 бита влево
temp = temp | 0x0F;//Левая часть - второй полубайт. Правую ставим в "1", что бы не сбить EW, RW и DC
DATABUS &= temp;
}

