|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 12:28 am
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Как да се инициализира диспеля като 16x1
| Автор |
Съобщение |
|
kostov
Ранг: Минаващ
Регистриран на: Нед Юни 03, 2012 10:28 pm Мнения: 99
|
 Как да се инициализира диспеля като 16x1
Какво трябва да се промени в инициализиращата подпрограма, за да работи 16х1 дисплеят в 16х1 режим. Програмата в микроконтролера PIC16F628A работи като за 16х1 дисплей, но дясната половина на изображението не се изобразява.  |  |  |  | Код: ; ; ***************************************************************************** ; * * ; * Purpose: Power on initialization of Liquid Crystal Display. The LCD * ; * controller chip must be equivalent to an Hitachi 44780. The * ; * LCD is assumed to be a 8x1 or a 16x1 display. * ; * * ; * Input: None * ; * * ; * Output: None * ; * * ; ***************************************************************************** ;
init_LCD call wait_64ms ; Wait for LCD to power up movlw CMD_RESET_LCD ; LCD init instruction (First) movwf PORTB ; Send to LCD via RB3..RB0 bsf PORTB,LCD_e ; Set the LCD E line high, call wait_64ms ; wait a "long" time, bcf PORTB,LCD_e ; and then Clear E movlw CMD_RESET_LCD ; LCD init instruction (Second) movwf PORTB ; Send to LCD via RB3..RB0 bsf PORTB,LCD_e ; Set E high, call wait_32ms ; wait a while, bcf PORTB,LCD_e ; and then Clear E movlw CMD_RESET_LCD ; LCD init instruction (Third) movwf PORTB ; Send to LCD via RB3..RB0 bsf PORTB,LCD_e ; Set E high, call wait_32ms ; wait a while, bcf PORTB,LCD_e ; and then Clear E movlw PICEL_IFC1 ; Set the LCD for 4-bit mode I/O movwf PORTB ; Send to LCD via RB3..RB0 bsf PORTB,LCD_e ; Set E high, call wait_16ms ; wait a while, bcf PORTB,LCD_e ; and then Clear E movlw PICEL_IFC2 ; Set operational characteristics of LCD call cmnd2LCD ; Send command in w to LCD movlw PICEL_DISPLAY_OFF ; Display off, cursor and blink off call cmnd2LCD ; Send command to LCD movlw CMD_CLEAR_LCD ; Clear and reset cursor call cmnd2LCD ; Send command in w to LCD movlw PICEL_CURSOR_RT ; Set cursor to move right, no display shift call cmnd2LCD ; Send command in w to LCD
movlw PICEL_DISPLAY_ON ; Display on, cursor on, blink off call cmnd2LCD ; Send command to LCD return ; Done!
|  |  |  |  |
|
| Нед Дек 02, 2012 8:23 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
 Re: Как да се инициализира диспеля като 16x1
Втората половина на дисплея започва на друг адрес , в даташита на дисплея трябва да се види изместването колко беше. Това не касае изнициализацията ,а адресацията на символите в дисплейния РАМ.
|
| Нед Дек 02, 2012 9:16 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Как да се инициализира диспеля като 16x1
Вторите 8 символа са на адрес 40(втори ред). Диспля трябва да се инициализира, като двуредов 5х8.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Нед Дек 02, 2012 10:15 pm |
|
 |
|
kostov
Ранг: Минаващ
Регистриран на: Нед Юни 03, 2012 10:28 pm Мнения: 99
|
 Re: Как да се инициализира диспеля като 16x1
Ето го целият код, ако някой може да помогне къде и какво трябва да се промени: Ето и datasheet-а на дисплея: AC161AYA
|
| Нед Дек 02, 2012 11:14 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
 Re: Как да се инициализира диспеля като 16x1
като прибавиш старшата единица, указваща адрес за индикация, става 0xC0
|
| Пон Дек 03, 2012 9:53 am |
|
 |
|
kostov
Ранг: Минаващ
Регистриран на: Нед Юни 03, 2012 10:28 pm Мнения: 99
|
 Re: Как да се инициализира диспеля като 16x1
Понеже не разбирам от програмиране, моля ако може някой да преправи кода с необходимите промени. Благодаря предварително!
|
| Пон Дек 03, 2012 8:27 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
 Re: Как да се инициализира диспеля като 16x1
Какво ти се изписва при калибрацията с бутона? Последните 8 квадратчета светят ли? Светят - в смисъл да се виждат черните им точки при засилен контраст.
|
| Пон Дек 03, 2012 11:02 pm |
|
 |
|
kostov
Ранг: Минаващ
Регистриран на: Нед Юни 03, 2012 10:28 pm Мнения: 99
|
 Re: Как да се инициализира диспеля като 16x1
10,000. като най-лявата позиция е свободна. С контраста не съм пробвал, в момента съм зашил една по-нова версия на сорса и с нея работи нормално. При нея поне лесно се избира типа дисплей - с коментиране и откоментиране на съответен ред. Само функциите са малко по-други.
|
| Пон Дек 03, 2012 11:28 pm |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 6 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|