Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
21.04.2010, 20:39
|
|
Временная регистрация
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Помогите разобраться с работой ЖКИ
Решил тут подключить ЖКИ к atmega48, но т.к некоторые выводы были уже заняты под другие устройства пришлось использовать 4-х проводной способ передачи. Пытался разобраться со способом передачи но так и не удалось. Ниже программа-черновик, что не так подскажите, буду очень благодарен.
.include "m48def.inc"
.def tmp16=r16
;************************************************* ***************************
; ;************************************************* ***************************
; Контакты ЖКИ
.equ DB4=PORTD2
.equ DB5=PORTD3
.equ DB6=PORTD4
.equ DB7=PORTD5
.equ E=PORTD6
.equ RS=PORTD7
.equ RW=PORTB0
.cseg
.org 0x000 rjmp RESET ; Reset Handler
Reset:
ldi tmp16,high(RAMEND)
out sph,tmp16
ldi tmp16,low(RAMEND)
out spl,tmp16
;************************************************* ***************************
; Инициализация портов
;************************************************* ***************************
; Конфигурирофание PORTB
ldi tmp16,(1‹‹PB0)
out DDRD,tmp16
; Конфигурирофание PORTD
ldi tmp16,(1‹‹PD2)|(1‹‹PD3)|(1‹‹PD4)|(1‹‹PD5)|(1‹‹PD6) |(1‹‹PD7)
out DDRD,tmp16
;************************************************* ***************************
; Инициализация ЖКИ
;************************************************* ***************************
InitLCD:rcall wait5ms
rcall wait5ms
rcall wait5ms
;Запись команды 0x30
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(1‹‹DB5)|(1‹‹DB4)
rcall SendCom
rcall wait5ms
;Запись команды 0x30
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(1‹‹DB5)|(1‹‹DB4)
rcall SendCom
rcall Wait150us
;Запись команды 0x30
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(1‹‹DB5)|(1‹‹DB4)
rcall SendCom
rcall Wait150us
;Шина данных 4 разряда
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(1‹‹DB5)|(0‹‹DB4)
rcall SendCom
rcall WaitBusy
;Шина данных 4 разряда, установка числа строк и размера символов
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(1‹‹DB5)|(0‹‹DB4)
rcall SendCom
ldi tmp16,(1‹‹DB7)|(0‹‹DB6)|(0‹‹DB5)|(0‹‹DB4)
rcall SendCom
rcall WaitBusy
;Выключение ЖКИ
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(0‹‹DB5)|(0‹‹DB4)
rcall SendCom
ldi tmp16,(1‹‹DB7)|(0‹‹DB6)|(0‹‹DB5)|(0‹‹DB4)
rcall SendCom
rcall WaitBusy
;Очистка экрана ЖКИ
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(0‹‹DB5)|(0‹‹DB4)
rcall SendCom
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(0‹‹DB5)|(1‹‹DB4)
rcall SendCom
rcall WaitBusy
;Установка режима ввода данных
ldi tmp16,(0‹‹DB7)|(0‹‹DB6)|(1‹‹DB5)|(0‹‹DB4)
rcall SendCom
ldi tmp16,(0‹‹DB7)|(1‹‹DB6)|(0‹‹DB5)|(1‹‹DB4)
rcall SendCom
rcall WaitBusy
ret
;************************************************* ***************************
;
;************************************************* ***************************
test:
nop
nop
nop
rjmp test
;************************************************* ***************************
; Проверка готовности ЖКИ (busy-флаг)
;************************************************* ***************************
WaitBusy:
clr tmp16
out DDRD,tmp16
cbi PinD,RS
sbi PinB,RW
WB1:sbi PinD,E
nop
nop
in tmp16,PinD
cbi PinD,E
nop
sbrc tmp16,PD5
rjmp WB1
cbi PinB,RW
ser tmp16
out DDRD,tmp16
ret
;************************************************* ***************************
; Передача команд
;************************************************* ***************************
SendCom:
cbi PinD,E
cbi PinD,RS
сbi PinB,RW
rcall Ausgabe
sbi PinD,RS
sbi PinB,RW
ret
;************************************************* ***************************
; Передача данных
;************************************************* ***************************
SendDat:
sbi PinD,E
rcall Ausgabe
ret
;************************************************* ***************************
;
;************************************************* ***************************
Ausgabe:
out PortD,tmp16
sbi PinD,E
nop
nop
cbi PinD,E
ret
;************************************************* ***************************
; Вывод данных
;************************************************* ***************************
OutText:
lsl ZL
rol ZH
OT1:lpm
mov tmp3,r0
rcall WaitBusy
rcall SendDat
adiw ZL,1
dec tmp4
brne OT1
ret
;************************************************* ***************************
; Задержка 50 мкс
;************************************************* ***************************
Wait50us:ldi tmp16,65
Wait51:dec tmp16
brne Wait51
ret
;************************************************* ***************************
; Задержка 150 мкс
;************************************************* ***************************
Wait150us:rcall wait50us
rcall wait50us
rcall wait50us
ret
;************************************************* ***************************
; Задержка 5 мс
;************************************************* ***************************
Wait5ms:ldi tmp16,100
Wait501:rcall wait50us
dec tmp16
brne Wait501
ret
;************************************************* ***************************
; Задержка 38 мс
;************************************************* ***************************
Wait38ms:ldi tmp16,0
Wait381:rcall wait150us
dec tmp16
brne Wait381
ret
;************************************************* ***************************
; Задержка 5 с
;************************************************* ***************************
Wait5s:ldi tmp16,130
Wait5s1:rcall wait38ms
dec tmp16
brne Wait5s1
ret
|
|
|
|
21.04.2010, 22:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Попробуйте вот по примеру подключения LCD - proavr.narod.ru/z5.htm
ИМХО гораздо проще и главное РАБОТАЕТ !
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
21.04.2010, 22:55
|
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
команда работы в 4-х битном режиме должна передаваться дважды.
|
|
|
|
22.04.2010, 08:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Выключение ЖКИ есть, а где включение? Вот рабочий код инициализации
$28 -› r18
SEND
$28 -› r18
SEND
$28 -› r18
SEND
$0C -› r18
SEND
$01 -› r18
SEND
Пауза после каждой посылки 256 мкс, после посылки кода 01 - 2 мс, флаг занятости не проверяется
|
|
|
|
22.04.2010, 22:36
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Сообщение от Gonchar
|
Решил тут подключить ЖКИ к atmega48, но т.к некоторые выводы были уже заняты под другие устройства пришлось использовать 4-х проводной способ передачи.
|
Есть рабочий код накрапаный мной, DB4... 7 подключаются к старшей тетраде порта, остальные управляющие сигналы можно располагать как удобно, на любых портах. Если нужно - скину.
|
|
|
|
22.04.2010, 22:49
|
|
Временная регистрация
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Если можно скиньте.
|
|
|
|
23.04.2010, 08:48
|
|
Заблокирован
Регистрация: 08.08.2007
Сообщений: 2,843
Сказал спасибо: 378
Сказали Спасибо 1,368 раз(а) в 746 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Уже раз выкладывал. Здесь все ходы записаны...
|
|
|
|
23.04.2010, 13:47
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Сообщение от Gonchar
|
Если можно скиньте.
|
Кидаю кодеГ.
|
|
|
|
23.04.2010, 17:45
|
|
Временная регистрация
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Помогите разобраться с работой ЖКИ
Всем большое спасибо, наконец разобрался. Тему можно закрывать.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:52.
|
|