|
PIC16f628A и ЖК SC1602BULT-SH-HS-G, помогите разобраться |
|
|
|
Apr 28 2008, 14:58
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 13-03-08
Пользователь №: 35 878

|
доброго времени суток! может кто-нибудь работал со строковыми ЖКИ. Интересует ЖК SC1602BULT-SH-HS-G , как его соединить с PICом. А вообще интересует написание проги для вывода инфы на дисплей. Немного не понимаю, как это делается. Может кто-нибудь пояснит. Или может у кого есть пример программы. Вообще интересует прога на ассемблере, но для уяснения сути дела можно и на любом другом.
|
|
|
|
|
 |
Ответов
|
Apr 29 2008, 04:27
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 29-01-08
Пользователь №: 34 534

|
Добрый день. Тут кусок моей программульки для ПИК18. На таймере TMR2 выполнены регламентируемые задержки, т.к. я без проверки загоняю данные в LCD. Пробовал с проверкой - особого выигрыша во времени нет.
С уважением, ОК
; - RD4-RD7 - выходы передачи данных на LCD в четырехразрядном режиме ; - RD3 - выход выбора LCD ; - RD2 - выход управления записью инструкций в LCD ; - RD1 - выход управления записью адреса в LCD
;************************************************************************ ; Вывод верхней строки на экран из памяти по адресам 0x0060** ;************************************************************************ PrintStringUP: movwf TBLPTRL movlw 0x00 movwf TBLPTRU movlw 0x60 movwf TBLPTRH movlw 0x80 call LCD_Command movlw d'16' movwf CounterL OutStringToLCD_UP: tblrd*+ movf TABLAT,W call LCD_Out decfsz CounterL goto OutStringToLCD_UP return
;************************************************************************ ; Вывод верхней строки на экран из памяти по адресам 0x0061** ;************************************************************************ PrintStringUP_1: movwf TBLPTRL movlw 0x00 movwf TBLPTRU movlw 0x61 movwf TBLPTRH movlw 0x80 call LCD_Command movlw d'16' movwf CounterL OutStringToLCD_UP_1: tblrd*+ movf TABLAT,W call LCD_Out decfsz CounterL goto OutStringToLCD_UP_1 return
;************************************************************************ ; Вывод нижней строки на экран из памяти по адресам 0x0060** ;************************************************************************ PrintStringDOWN: movwf TBLPTRL movlw 0x00 movwf TBLPTRU movlw 0x60 movwf TBLPTRH movlw 0xc0 call LCD_Command movlw d'16' movwf CounterL OutStringToLCD_DOWN: tblrd*+ movf TABLAT,W call LCD_Out decfsz CounterL goto OutStringToLCD_DOWN return
;************************************************************************ ; Вывод нижней строки на экран из памяти по адресам 0x0061** ;************************************************************************ PrintStringDOWN_1: movwf TBLPTRL movlw 0x00 movwf TBLPTRU movlw 0x61 movwf TBLPTRH movlw 0xc0 call LCD_Command movlw d'16' movwf CounterL OutStringToLCD_DOWN_1: tblrd*+ movf TABLAT,W call LCD_Out decfsz CounterL goto OutStringToLCD_DOWN_1 return
;************************************************************************ ; Инициализация LCD в четырехзначном режиме. Здесь же подпрограммы управления LCD. ;************************************************************************ LCDinit: movlw 0xff call TimeDelayTMR2 movlw 0xff call TimeDelayTMR2
bcf PORTD,1 bcf PORTD,2 bsf PORTD,3 movlw 0x30 call Out_Nibble bcf PORTD,3 movlw 0xff call TimeDelayTMR2
bcf PORTD,1 bcf PORTD,2 bsf PORTD,3 movlw 0x30 call Out_Nibble bcf PORTD,3 movlw 0xff call TimeDelayTMR2
bcf PORTD,1 bcf PORTD,2 bsf PORTD,3 movlw 0x30 call Out_Nibble bcf PORTD,3 movlw 0xff call TimeDelayTMR2
bcf PORTD,1 bcf PORTD,2 bsf PORTD,3 movlw 0x20 call Out_Nibble bcf PORTD,3 movlw 0xff call TimeDelayTMR2
movlw 0x28 call LCD_Command
movlw 0x0d call LCD_Command
; Подпрограмма очистки дисплея LCD_Clear: movlw 0x01 call LCD_Command movlw 0xff call TimeDelayTMR2
movlw 0x06 call LCD_Command
movlw 0x00 call PrintStringUP movlw 0x10 call PrintStringDOWN
return
; Подпрограмма отправки команды LCD_Command: bcf PORTD,1 bcf PORTD,2 movwf Value bsf PORTD,3 call Out_Nibble bcf PORTD,3 swapf Value,W bsf PORTD,3 call Out_Nibble bcf PORTD,3 movlw 0x02 call TimeDelayTMR2 return
; Подпрограмма вывода символа по адресу знакогенератора LCD_Out: bcf PORTD,1 bsf PORTD,2 movwf Value bsf PORTD,3 call Out_Nibble bcf PORTD,3 swapf Value,W bsf PORTD,3 call Out_Nibble bcf PORTD,3 movlw 0x02 call TimeDelayTMR2 return
; Подпрограмма загрузки четырехзначного канала Out_Nibble: movwf LCD_Data bcf PORTD, 4 btfsc LCD_Data, 4 bsf PORTD, 4 bcf PORTD, 5 btfsc LCD_Data, 5 bsf PORTD, 5 bcf PORTD, 6 btfsc LCD_Data, 6 bsf PORTD, 6 bcf PORTD, 7 btfsc LCD_Data, 7 bsf PORTD, 7 return
|
|
|
|
|
Apr 29 2008, 17:43
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 13-03-08
Пользователь №: 35 878

|
спасибо за помощь, вроде начинаю понимать. А еще такой вопрос назрел: для вывода информации я просто задаю положение курсора на экране и вывожу нужный символ. Как я понял, можно указывать любую позицию из существующих. Так? И еще, там нет никаких приколов типа выбор кристалла или т.п. ?
|
|
|
|
Сообщений в этой теме
Anty PIC16f628A и ЖК SC1602BULT-SH-HS-G Apr 28 2008, 14:58 *antzol* С каким контроллером индикатор я не нашел, но сутя... Apr 28 2008, 15:53  dac Цитата(Anty @ Apr 29 2008, 21:43) И еще, ... May 1 2008, 11:03   Anty Народ, помоги, пожалуйста. Написал прогу по пример... May 5 2008, 12:49 Okor А Вы не забыли в четырехпроводном режиме подвесить... May 5 2008, 19:30 Anty Цитата(Okor @ May 5 2008, 22:30) А Вы не ... May 6 2008, 08:38  Vanizma Цитата(Anty @ May 6 2008, 12:38) Ну вот к... May 6 2008, 13:35 Vanizma Кстати, в proteus'e можно поменять кодировку Ж... May 6 2008, 15:30 Anty Спасибо за ответы. Накопал много интересного и пол... May 7 2008, 08:31 SYurev Скажите, модель lcdalpha.dll поддерживает другие, ... Jul 19 2009, 03:42 Сергей Борщ Цитата(SYurev @ Jul 19 2009, 06:42) К при... Jul 27 2009, 05:50  SYurev Цитата(Сергей Борщ @ Jul 27 2009, 11:50) ... Jul 28 2009, 07:46   Сергей Борщ Цитата(SYurev @ Jul 28 2009, 10:46) В как... Jul 28 2009, 10:31    SYurev Цитата(Сергей Борщ @ Jul 28 2009, 16:31) ... Jul 28 2009, 11:57     Сергей Борщ Цитата(SYurev @ Jul 28 2009, 14:57) Покаж... Jul 28 2009, 15:13   rezident Цитата(SYurev @ Jul 28 2009, 13:46) Не в ... Jul 28 2009, 15:36    SYurev Цитата(rezident @ Jul 28 2009, 21:36) Там... Jul 28 2009, 16:07 volodya Вообщето в комплекте MPLAB IDE прилагается библиот... Jul 21 2009, 04:35 backa Цитата(volodya @ Jul 21 2009, 07:35) Вооб... Jul 21 2009, 09:49 HHIMERA Цитата(backa @ Jul 21 2009, 12:49) хочу в... Jul 21 2009, 23:02 backa Цитата(HHIMERA @ Jul 22 2009, 02:02) И...... Jul 22 2009, 11:47 rx3apf Цитата(HHIMERA @ Jul 22 2009, 03:02) И...... Jul 23 2009, 10:53  rezident Цитата(rx3apf @ Jul 23 2009, 16:53) Что д... Jul 23 2009, 15:02   rx3apf Цитата(rezident @ Jul 23 2009, 19:02) ... Jul 23 2009, 16:14 HHIMERA Цитата(rx3apf @ Jul 23 2009, 13:53) Да ла... Jul 23 2009, 19:41 zltigo Цитата(HHIMERA @ Jul 23 2009, 22:41) У вс... Jul 23 2009, 19:55 rx3apf Цитата(HHIMERA @ Jul 23 2009, 23:41)
Да... Jul 23 2009, 21:00 HHIMERA Цитата(zltigo @ Jul 23 2009, 22:55) Это в... Jul 23 2009, 20:21 zltigo Цитата(HHIMERA @ Jul 23 2009, 23:21) Прой... Jul 23 2009, 21:03 lastmage Товарищ, вот здесь все подробно разжевано - как по... Jul 25 2009, 18:49 RA3WUM Был у нас проект на микротипсовском HD44780-подобн... Aug 28 2009, 07:14 R-Max Немного не там, но вывожу 2 символа на первую стро... Feb 20 2011, 15:01 R-Max Вывожу 2 символа на первую строку на LM044L в 4-би... Feb 20 2011, 19:50  rezident Цитата(R-Max @ Feb 21 2011, 00:50) г... Feb 20 2011, 20:43   R-Max В железе тоже неадекватно работало, поэтому решил ... Feb 22 2011, 20:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|