Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.12.2005, 23:32  
CoolHammer
Гость
 
Сообщений: n/a
По умолчанию pic16f877 + LCD

Доброго времени суток!
Вот такой казус у меня с pic16f877:
К нему прилеплены кнопки, лампочки, кварец 4MHz и ЖКД.
Написал прогу на микропаскале - работает отлично. Кнопки нажимаются, ЖКД показывает все, что требуется, ламочки горят.
При последующих наворотах проги не уложился в шароварное ограничение размера выходного файла. Перешел на асм ). В асме написал все то же самое (даже лучше). Оттестил все это в протеусе и залил.
На ЖКД кроме тестовых блоков на первой строке ничего. Лампочки горят исправно. Во всяком случае, я могу ими управлять. Думаю, что не проходит инициализация ЖКД. Набор процедур я утянул отсюда: http://ouwehand.net/~peter/lcd/lcd2.shtml. Ничего там не менял.
На всякий случай, еще раз скажу, что обе проги, на паскале и асме, в протеусе на одной и той же схеме работают. Чиво делать? как дебажить?
Привожу кусок кода с инициализацией портов и ЖКД:
ЗЫ: В битах конфигурации - HS, а все остальное - выкл.
Код:
;===============================
#DEFINE	BANK0	BCF	STATUS, RP0
#DEFINE	BANK1	BSF	STATUS,	RP0
;===============================
	ORG	0
	GOTO	BEGIN

	INCLUDE	"TEXT.INC"
;============================================
BEGIN
	CALL	INITPORTS			;
RESET	
	CALL	LCD_GREET			;
	GOTO	BUTTONS				;
;============================================
INITPORTS
	BANK1					;
	MOVLW	0xF0			;
	MOVWF	TRISD			;
	MOVLW	0xC0			;
	MOVWF	TRISC			;
	BANK0				;
	CLRF	COUNT			;
	CALL	LCDINIT			; Init Display
	MOVLW	.17			; lock and light up red lamp
	MOVWF	PORTC			;
	CLRF	PORT			;
	CLRF	FLAG			;	
	CLRF	MSEC
	CLRF	SEC
	CLRF	PIR1
	CLRF	PIR2
	CLRF	TMR1H
	CLRF	TMR1L
	BANKSEL	PIE1
	CLRF	PIE1
	CLRF	PIE2
	CLRF	STATUS
	RETURN
;============================================
Реклама:
 
Непрочитано 27.12.2005, 21:10  
CoolHammer
Гость
 
Сообщений: n/a
По умолчанию

Ладно, сформулируем вопрос по другому. Зависание происходит в этом куске библиотеки ЖКД:
Код:
LCDBUSY
    BSF         STATUS,RP0          ; Select Register page 1
    MOVLW       0x0FF               ; Set PORTB for input
    MOVWF       LCD_DATA_TRIS
    BCF         STATUS, RP0         ; Select Register page 0
    BCF         LCD_CTRL, LCD_RS    ; Set LCD for command mode
    BSF         LCD_CTRL, LCD_RW    ; Setup to read busy flag
    BSF         LCD_CTRL, LCD_E     ; LCD E-line High
    MOVF        LCD_DATA, W         ; Read busy flag + DDram address
    BCF         LCD_CTRL, LCD_E     ; LCD E-line Low
    ANDLW       0x80                ; Check Busy flag, High = Busy
    BTFSS       STATUS, Z
    GOTO        LCDBUSY
LCDNOTBUSY
    BCF         LCD_CTRL, LCD_RW
    BSF         STATUS, RP0         ; Select Register page 1
    MOVLW       0x000
    MOVWF       LCD_DATA_TRIS       ; Set PORTB for output
    BCF         STATUS, RP0         ; Select Register page 0
    RETURN
Т.е. на седьмую ножку порта B ничего не приходит. Какие могут быть предложения? Можно, конечно поставить задержку, вместо опроса, но какое тогда время задержки выбрать?
 
Непрочитано 31.12.2005, 16:13  
xelos
Прописка
 
Регистрация: 27.08.2004
Сообщений: 107
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 20 сообщении(ях)
xelos на пути к лучшему
По умолчанию

эээ, а инициализация экрана?
xelos вне форума  
Непрочитано 31.12.2005, 23:19  
Гость
 
Сообщений: n/a
По умолчанию

Да, я уже фкурил )
По причине хренового питания у меня не происходил хардверный ресет ) Если я правильно понял все прочитанные мной мануалы ) Теперь фсе пучком. Только после первой инициализации фключается только первая строка, а после второй - обе...
 
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Микроконтроллер PIC16F877-04/P(Нужна помощь.) mitrovka Микроконтроллеры, АЦП, память и т.д 2 03.03.2009 01:56
Взаимодействие USART МК PIC16F877 и модема Ksenia_85 Микроконтроллеры, АЦП, память и т.д 4 25.05.2008 11:20
PIC16F877=877a-? greesha_demchuk Микроконтроллеры, АЦП, память и т.д 1 06.12.2006 18:33
PIC16F877 vasseff Коллекция глюков 0 07.08.2006 17:28
проблема с инициализацией pic16f877 xelos Микроконтроллеры, АЦП, память и т.д 6 29.08.2004 22:20


Часовой пояс GMT +4, время: 23:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot