Отговори на тема  [ 46 мнения ]  Отиди на страница 1, 2, 3, 4  Следваща
Проблем с флаг Busy на LCD дисплей 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Яну 27, 2013 9:36 pm
Мнения: 30
Мнение Проблем с флаг Busy на LCD дисплей
Имам проблем с pic16F84 и LCD дисплей. Дисплеят държи флага вдигнат и контролера не може да предаде данните. Интересното е че когато поставя сондата на осцилоскопа на извод D7 на дисплея флага пада и данните се визуализират. Програмата е от книгата на Млад конструктор а дисплея е 16х2 44780. Някой би ли дал съвет?


Нед Юли 12, 2015 9:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
Дай си целият код и схемата ако е на .asm ще ти помогна.


Нед Юли 12, 2015 9:38 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Яну 27, 2013 9:36 pm
Мнения: 30
Мнение Re: Проблем с флаг Busy на LCD дисплей
Схема няма как да кача, но по asm-а може да се изгради представа за начина на свързване.
list p=16F84A ;Задаване на типа на процесора
#include <p16F84A.inc>; Дефиниране на SFR регистрите
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;************Дефиниране на константи и променливи**********
w EQU 0
f EQU 1
;************Дефиниране на LCD модула**********************
DISP_ON EQU H'0C'
DISP_ON_C EQU H'0E'
DISP_ON_B EQU H'0F'
DISP_OFF EQU H'08'
CLR_DISP EQU H'01'
ENTRY_INC EQU H'06'
ENTRY_INC_S EQU H'07'
ENTRY_DEC EQU H'04'
ENTRY_DEC_S EQU H'05'
DD_RAM_ADR1 EQU H'80'
DD_RAM_ADR2 EQU H'C0'
;************Използвани променливи**************************
CBLOCK h'0c'
Counter
LCD_temp
BF_temp
ENDC
;***********Дефиниране на портовете*************************
#define E PORTA,0
#define RW PORTA,1
#define RS PORTA,2
;**********Потрбителска програма***************************
ORG h'0000'
goto Start
;**********Начало на програмата*****************************
Start bsf STATUS,RP0
movlw b'10010001'
movwf OPTION_REG
bcf STATUS,RP0
clrf PORTA
clrf PORTB
bsf STATUS,RP0
movlw b'11111000'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
goto main
;*********Използвани подпрограми***************************
Init_LCD
movlw D'15'
movwf Counter
call Wait
movlw b'00110000'
movwf PORTB
bsf E
bcf E
movlw D'8'
movwf Counter
call Wait
movlw b'00111000'
movwf PORTB
bsf E
bcf E
movlw DISP_OFF
call Send_comand
movlw DISP_ON
call Send_comand
movlw ENTRY_INC
call Send_comand
return
;*********************************************************
Wait clrf TMR0
again bcf INTCON,T0IF
loop btfss INTCON,T0IF
goto loop
decfsz Counter,f
goto again
return
;**********************************************************
Send_comand
movwf LCD_temp
call Check_BF
movf LCD_temp,w
movwf PORTB
bcf RW
bcf RS
bsf E
bcf E
return
;***********************************************************
Send_char
movwf LCD_temp
call Check_BF
movf LCD_temp,w
movwf PORTB
bcf RW
bsf RS
bsf E
bcf E
return
;**********************************************************
Check_BF
bsf STATUS,RP0
movlw h'FF'
movwf TRISB
bcf STATUS,RP0
bcf RS
bsf RW
bsf E
bcf E
movf PORTB,w
movwf BF_temp
btfsc BF_temp,7
goto Check_BF
bcf RW
bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0
return
;***********************************************************
main
call Init_LCD
movlw DD_RAM_ADR1
call Send_comand
movlw 'L'
call Send_char
movlw 'C'
call Send_char
movlw 'D'
call Send_char
movlw ' '
call Send_char
movlw 'T'
call Send_char
movlw 'e'
call Send_char
movlw 's'
call Send_char
movlw 't'
call Send_char
Second_line
movlw DD_RAM_ADR2
call Send_comand
movlw ','
call Send_char
movlw 'v'
call Send_char
movlw 'e'
call Send_char
movlw 'r'
call Send_char
movlw '.'
call Send_char
movlw '1'
call Send_char
movlw '.'
call Send_char
movlw '0'
call Send_char
Stop_send
nop
goto Stop_send
END


Нед Юли 12, 2015 9:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
Сложил съм ти и симулация на Протеус 7.2


Прикачени файлове:
New folder.rar [38.11 KiB]
229 пъти
Нед Юли 12, 2015 10:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Проблем с флаг Busy на LCD дисплей
Пробва ли да смениш pic16F84 с ардуино за $3 от ebay?

_________________
Warriors of the Night, ASSEMBLER!!!


Нед Юли 12, 2015 10:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
:D
Аз заради тази книга ги намразих тия писатели.
Инак с 84А-20 имам модули които работят много години и то на гадни условия. И не знам защо но още държат цена а има нови и то много функционални и евтини.


Нед Юли 12, 2015 10:43 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Яну 27, 2013 9:36 pm
Мнения: 30
Мнение Re: Проблем с флаг Busy на LCD дисплей
Благодаря за помощта но пак се получава същото. Ето го и дисплея
http://www.ebay.com/itm/UK-HD44780-1602 ... 33a2e2e000
За сега нямам Протеос. А за Ардуино ще трябва С , а пък него не мога да го схвана нещо.


Нед Юли 12, 2015 11:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
Кода работи, инсталирай си Протеус 7 има го в нета. А Асемблер за пик не се хващай после ще съжаляваш, много е труден и много ограничен. Реално тази програма на C е 10-тина реда. Някой от форума ако може да ти я драсне на C за да добиеш представа като код и функционалност.


Прикачени файлове:
1.jpg
1.jpg [ 37.41 KiB | Прегледано 3765 пъти ]
Нед Юли 12, 2015 11:25 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Яну 27, 2013 9:36 pm
Мнения: 30
Мнение Re: Проблем с флаг Busy на LCD дисплей
Схемата ми е същата, но без резистор на RA4. Знам че схемата работи, но се чудя защо дисплея държи флага вдигнат.
Може би проблема е точно в него. Пипна ли d7 със сондата флага пада и данните се зареждат.


Нед Юли 12, 2015 11:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
Пробвай това, имаше проблем с времената.


Прикачени файлове:
LCD84.asm [3.58 KiB]
247 пъти
Пон Юли 13, 2015 12:35 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Яну 27, 2013 9:36 pm
Мнения: 30
Мнение Re: Проблем с флаг Busy на LCD дисплей
Станах по-рано за да пробвам, но пак не става. Ще го мисля след като се прибера от работа.


Пон Юли 13, 2015 7:40 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
Бе, ти кварц на 4 Mhz сложил ли си на 15 и 16 пин?


Пон Юли 13, 2015 10:45 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение Re: Проблем с флаг Busy на LCD дисплей
Като пипнеш със сондата, вкарваш брум и затова заработва. Пробвай с pull-up резистор (или pull-down), а най-добре не чети busy флага. Пусни си времезакъснение 43 и 39uS съответно за данни и инструкции. Дори може да спестиш един извод на пик-а, защото не ти трябва управление на R/W на дисплея - само пишеш, т.е. свързваш го към маса.


Пон Юли 13, 2015 2:47 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Проблем с флаг Busy на LCD дисплей
Не му трябва четене на флагове, R/W пина и 4 от data жичките.

_________________
Warriors of the Night, ASSEMBLER!!!


Пон Юли 13, 2015 3:57 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: Проблем с флаг Busy на LCD дисплей
Той човека сега почва, и аз така бях на времето и бях залепнал на тая схема. Ама все от някъде се почва.
Да каже какво е направил и до къде е стигнал и ще го подкараме. Посъветвах го в кода да не прави моите грешки ама каквото си реши. Да светне дисплея а после апетита с яденето.


Пон Юли 13, 2015 4:40 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 46 мнения ]  Отиди на страница 1, 2, 3, 4  Следваща

Кой е на линия

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


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

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