Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.01.2006, 21:52
|
|
Временная регистрация
Регистрация: 29.10.2004
Сообщений: 75
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
pic16f877a + DV-16230
всех с новым годом!!! творческих успехов!!
подскажите алгоритм вывода символов на этот индикатор. Читаю БЭК8 вторые сутки ничего не получается.
p.s. Запрограммировал выводит одни чёрные пятна, к сожалению написанный код "представить" не могу, удалил со злости;
__________________
главное не количество знаний, а уменее их применить!!!
|
|
|
|
03.01.2006, 19:03
|
|
Временная регистрация
Регистрация: 29.10.2004
Сообщений: 75
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
прочитал то что написал... скжу что делал...
1. отчищал экран
2. устанавливал курсор в начальное положение
3. Устанвливал режим ввода
4. настроил на 2строки 8и разрядную шину размер символа 5*8т
5. включал дисплей
6.устанавливал адрес ddram в нач позицию
7. записывал в ОЗУ символы
8. после записи читал их оттуда и проверял бит флага занятости.
так надо?
__________________
главное не количество знаний, а уменее их применить!!!
|
|
|
|
08.01.2006, 22:30
|
|
Временная регистрация
Регистрация: 29.10.2004
Сообщений: 75
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
разобрался написал прогу, но вместо символа выводятся каракули, выводил цифру так что я думаю что их [каракуль] не должно быть. Что я не так делаю.
Вот текст проги:
- list P = 16F877a
#INCLUDE "P16F877a.INC"
__CONFIG _XT_OSC & _PWRTE_ON & _WDT_OFF
;------------------------------------------------------------------------------------------
.UDATA
org 0x20
COUNT RES 1
.CODE
org 0x22
;-----------------------------
;ИНИЦИАЛИЗАЦИЯ ПОРТОВ---------
;------------------------------
BSF STATUS,5
CLRF TRISB
MOVLW 0FFh
MOVWF ADCON1
CLRF TRISA
MOVLW 87h
MOVWF OPTION_REG
BCF STATUS,5
CLRF PORTB
CLRF PORTA
MOVLW 0h
MOVWF SMESH
;---------------------------------------------------
;-------------------инициализация ЖКИ-------------
;-----------------------------------------
;RA0 - E
;RA1 - R/W
;RA2 - RS
;RB0-RB7 - DATA
;----------------------------------------------
;----------------------------------------------
MOVLW 08h
CALL Z?
MOVLW B'00001111' ;ВКЛЮЧЕНИЕ ДИСПЛЕЯ
MOVWF PORTB
CALL ENABLE
CALL ZAD45
MOVLW B'00111000' ;НАСТРОЙКА 8БИТНАЯ ШИНА,
MOVWF PORTB ; 2 СТРОКИ, 5Х8ТОЧЕК
CALL ENABLE
CALL ZAD45
MOVLW B'00000001' ;CLEAR DISPLAY
MOVWF PORTB
CALL ENABLE
CALL BUSY
MOVLW B'00000010' ;RETURN CURSOR ON START
MOVWF PORTB
CALL ENABLE
CALL BUSY
MOVLW B'00000110' ;SET MODE INPUT
MOVWF PORTB
CALL ENABLE
CALL BUSY
MOVLW B'00001000' ;SET DDRAM
MOVWF PORTB
CALL ENABLE
CALL BUSY
;===============================================
;OUT SYMBOL TO LCD
;===============================================
M11:
MOVLW 30h ;цифра"0"
MOVWF PORTB
CALL RESET
CALL ENABLE
; CALL CLPTA
CALL BUSY
;--------READ DATA---
CALL CLPTA
MOVLW 80h ;нач адрес
MOVWF PORTB;
CALL ZAD75
CALL RW
CALL RESET
CALL ZAD75
CALL ENABLE
CALL ZAD75
CALL BUSY
CALL M11
GOTO ENDP
;----------------------------------------------
;R/W-------------------------------------------
;----------------------------------------------
RW: MOVLW B'00000010' ;R/W
IORWF PORTA
RETURN
;----------------------------------------------
;RS--------------------------------------------
;----------------------------------------------
RESET:MOVLW B'00000100' ;RS
IORWF PORTA
RETURN
;----------------------------------------------
;CLEAR PORTA
;----------------------------------------------
CLPTA:MOVLW 00h
MOVWF PORTA
RETURN
;----------------------------------
;ENABLE
;DURATION E - 7.5mC __|-|__
;-----------------------------------
ENABLE: MOVLW B'00000001'
IORWF PORTA,1 ;лог. ИЛИ
MOVLW 01h ;ДЛИТЕЛЬНОСТЬ ЗАДЕРЖКИ!!!
CALL Z? ;7,5mC
MOVLW B'11111110' ;
ANDWF PORTA,1 ;лог. И
RETURN
;----------------------------
;TEST BUSY FLAG
;---------------------------------
BUSY: BSF STATUS,5
MOVLW 0FFh
MOVWF TRISB
BCF STATUS,5
MOVLW B'00000010' ;R/W - ACTIVE
MOVWF PORTA ;
BUSY1:BTFSC PORTB,7
GOTO BUSY1
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
MOVLW B'11111101' ;R/W - PASSIVE
ANDWF PORTA,1 ;
RETURN
;------------------------------------------------
;-------------ZADERJKA---------------------------
;------------------------------------------------
ZAD75:MOVLW 01h
GOTO Z?
ZAD15:MOVLW 02h
GOTO Z?
ZAD45:MOVLW 06h
GOTO Z?
Z?: MOVWF COUNT
ZAD: BCF INTCON,2
MOVLW 6Dh
MOVWF TMR0
Q: BTFSS INTCON,2
GOTO Q
DECFSZ COUNT,1
GOTO ZAD
RETURN
помогите....
[/code]
__________________
главное не количество знаний, а уменее их применить!!!
|
|
|
|
23.02.2006, 21:50
|
|
Гость
|
; Согласно оф. докам инициализация индикатора при работе в 4-х битном режиме
; когда не используется проверка зенятости индикатора по ноге R\W
;1. Display power on
;2. Пауза около 15 мс для старта дисплея (устаканивание).
;3. Перевод В 8-И БИТНЫЙ РЕЖИМ(Да 8-БИТ), Т.Е.запись 0х30 или B'00110000'
; при этом линия RS должна быть в нуле, т.е. режим ИНСТРУКЦИЙ RS=0
;4. Пауза около 100 микорсекунд.
;5. Перевод В 8-И БИТНЫЙ РЕЖИМ(Да 8-БИТ), Т.Е.запись 0х30 или B'00110000'
; при этом линия RS должна быть в нуле, т.е. режим ИНСТРУКЦИЙ RS=0
;6. Пауза около 40 микорсекунд.
; 7.Перевод В 8-И БИТНЫЙ РЕЖИМ(Да 8-БИТ), Т.Е.запись 0х30 или B'00110000'
; при этом линия RS должна быть в нуле, т.е. режим ИНСТРУКЦИЙ RS=0
;8. Пауза около 5 мс.
;9.После 3-х раз!!!!!!!! 8-и бит инструкций даем переход в 4-х битный режим
; Т.Е.запись 0х2 или 00000010
; при этом линия RS должна быть в нуле, т.е. режим ИНСТРУКЦИЙ RS=0.
;10. Все обнуляем т.е. запись 0х0 или 00000000 при этом линия RS должна быть в ; нуле, т.е. режим ИНСТРУКЦИЙ RS=0
;11. Следующие команды воспринимает индикатор в 4-х битном режиме и он конфигурируется под собственные нужды
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Применение PIC16F877A
|
kostyan-sokolov |
Микроконтроллеры, АЦП, память и т.д |
12 |
24.04.2009 08:17 |
RA4 в PIC16F877A
|
maxNTF |
Микроконтроллеры, АЦП, память и т.д |
8 |
06.02.2008 23:28 |
Подключение PIC16F877A
|
maxNTF |
Микроконтроллеры, АЦП, память и т.д |
10 |
04.10.2007 20:00 |
2 вопроса по PIC16F877A - HELP!
|
pawelk |
Микроконтроллеры, АЦП, память и т.д |
1 |
13.06.2005 13:36 |
PIC16F877A
|
pawelk |
Микроконтроллеры, АЦП, память и т.д |
17 |
28.05.2005 23:54 |
Часовой пояс GMT +4, время: 13:22.
|
|