Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с ним?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с ним?

Сообщение pushkin42 »

Собственно, имеем.
Среду виртуализации - NI Multisim 11.1
PIC 16F84A виртуальный и 16F86xx какой-то купленый (не суть)
Стандартный дисплей из мультисима на базе 44780 (собственно, там больше ничего и нет)

Что на данный момент: много рыл по различным форумам, ища возможности реализации протокола обмена данными между LCD и МК.
Нашел много всего неинтересного и/или сделанного под Proteus (не интересует!)
Сам попытался вкурить в мануалы. И вот что получилось:

Код: Выделить всё

	LIST 		P=16F84
		#INCLUDE	<P16F84.INC>
	
	; RA1 - E
	; RA2 - RS
	; RA3 - RW

	; RB  - DATA
PORTA       EQU   0x05
PORTB		EQU	  0x06
TRISA       EQU   0x85
TRISB	    EQU   0x86
Carry       EQU   0
Zero_       EQU   2
RP0         EQU   5
RP1         EQU   6
RA0			EQU   0
RA1         EQU   1
RA2			EQU	  2
RA3			EQU   3
RB0			EQU	  0
RB1			EQU	  1
RB2			EQU   2
RB3			EQU   3
RB4			EQU   4
RB5			EQU   5
RB6			EQU   6
RB7			EQU   7



E		EQU RA1
RS 		EQU RA2
RW		EQU RA3
D0		EQU	RB0
D1		EQU	RB1
D2		EQU	RB2
D3		EQU	RB3
D4		EQU	RB4
D5		EQU	RB5
D6		EQU	RB6
D7		EQU	RB7

	BSF STATUS,RP0
	MOVLW 0x00
	MOVWF TRISA
	MOVLW 0x00
	MOVWF TRISB
	MOVLW 0x00
	MOVWF PORTA
	MOVLW 0x00
	MOVWF PORTB
	CALL Delay2s
	MOVLW 0x00 
	MOVWF PORTA
	;0b00001100
	MOVLW 0x0C
	MOVWF PORTB 
	NOP	
	MOVLW 0x0C
	MOVWF PORTB 
	CALL Delay4ms
	;RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
    ;0   0   0   0   1   DL   N   F   *   *   
	;                                 *   *   0   1   1   1 0 0
	;N = 0 - 1 line, N = 1 - 2 line count;
 	;F = 0 - 5*7, F = 1 - 8*10 dots;
 	;DL = 0 - 4bit, DL = 1 - 8bit
	BCF PORTA,RS
	BCF PORTA,RS
	;0b00011100
	MOVLW 0x1C
	MOVWF PORTB
	CALL Delay4ms

	;11. RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0               
    ;	 0   0   0   0   0   0   1   D   C   B   
	;BSF STATUS,RP1	
	;0b11110000
	MOVLW 0xF0
	MOVWF PORTB
	BCF PORTA,RS
	BCF PORTA,RW
	;13. RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
    ;	 0   0   0   0   0   0   0   1  I/D  S  
	CALL Delay4ms





	BCF PORTA,RS
	BCF PORTA,RW
	;0b11000000
	MOVLW 0xC0
	MOVWF PORTB
	NOP
	NOP
	
	BCF PORTA,RS
	BCF PORTA,RW
	BSF PORTA,E	
	MOVLW 0x80
	MOVWF PORTB
	NOP
	NOP
	NOP
	BCF PORTA,E
	CALL Delay4ms
	BSF PORTA,RS
	BCF PORTA,RW
	BSF PORTA,E
	CALL Delay4ms
	BSF PORTA,RS
	BCF PORTA,RW
	BCF PORTA,E
	MOVLW 0xAE
	MOVWF PORTB
	CALL Delay4ms
	BSF PORTA,RS
	BCF PORTA,RW
	BCF PORTA,E
	NOP

	return



	cblock
	d1
	d2
	d3
	endc

Delay2s
			;9999995 cycles
	movlw	0x5A
	movwf	d1
	movlw	0xCD
	movwf	d2
	movlw	0x16
	movwf	d3
Delay2s_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	$+2
	decfsz	d3, f
	goto	Delay2s_0

			;1 cycle
	nop
	return
			;4 cycles (including call)

Delay4ms
			;20493 cycles
	movlw	0x02
	movwf	d1
	movlw	0x11
	movwf	d2


Delay4ms_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	Delay4ms_0

			;3 cycles
	goto	$+1
	nop

			;4 cycles (including call)
	return

	return

	END
собственно, дисплей ведет себя так:
моргает, включает подсветку, показывает курсор и ПЕРЕХОДИТ В ПОСЛЕДНЕЕ ЗНАКОМЕСТО на экране (т.е. 16,2)
Естественно, ничего не отображается.
может, где-то задержки неправильные, может и еще чего. В первый раз решил заняться самообразованием, и нате.
Пожалуйста, не тыкайте тапками - это больно. И ссылками тож не надо. Хватит с меня на сегодня ссылок. Лучше уж носом в лужу.

Всем спасибо.
Реклама
Аватара пользователя
abc
Друг Кота
Сообщения: 3687
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение abc »

BSF STATUS,RP0
А где возврат к нулевому банку (bcf STATUS,RP0) ?
Реклама
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Был возврат, не помогает...
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение uldemir »

pushkin42 писал(а):Был возврат, не помогает...
Ну если это не помогает, то, боюсь, Вам никто не поможет. Программирование, это не танцы с бубном, а полное понимание происходящих процессов. Курите даташиты на микроконтроллер до полного просветления. Когда поймете, что Вам сказал abc - можете задавать следующий вопрос.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
Эиком - электронные компоненты и радиодетали
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Я прекрасно понял, что он мне сказал.
Банки памяти и регистров я перерыл сверху донизу и даже частично запомнил.
Меня сейчас интересует исключительно то, где здесь ошибка, почему вместо вывода символа LCD так повел себя.
И да, Вы наверное тоже когда-нибудь были начинающим. Так зачем глумиться?
Реклама
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение uldemir »

Да, я был начинающим, и даже - есть. Но тем не менее, разбирался с такими мелочами сам. Примите за факт, что другим это удается сделать и ищите свои ошибки - это в сто раз полезнее для Вас, чем для других. А если спросили помощь - то начинайте учитывать советы.
Изучая чужой исходник и увидев такую грубую ошибку - нет интереса смотреть дальше.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Я вернул статус на место, ничего не изменилось. "Грубые ошибки" возникать будут и будут всегда, особенно если не объяснить, ПОЧЕМУ так надо. Естественно, сидя в кресле сам читая кучу инфы я никогда не разберусь в сути вопроса. Впрочем, спасибо и на этом.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение uldemir »

pushkin42 писал(а):если не объяснить, ПОЧЕМУ так надо
Потому что к регистрам PORTA и TRISA разом обратиться нельзя. Они находятся в разных страницах памяти. И если вы включили первую страницу - все обращения пойдут к TRISA, а не PORTA. Подробнее читайте в даташите на микроконтроллер. Наезжать на компилятор, кстати, не стоит. Он компилирует, то что Вы написали.
Второе, вы очень туманно выдали мысль на тему, что купили "несутьважнокакойконтроллер", а нас пичкаете 84-м пиком. Надеюсь, вы не скармливаете код скомпилированный для 84-го контроллера другому контроллеру?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Нет, в данный момент я в мультисиме мучаю стандартный F84A, там же больше нет ничего. Деньги пока тратить на физический контроллер не буду, да и ЖКИ пока в продаже не нашел.

"Компилятором" вы предыдущего оратора называете? :)
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение uldemir »

pushkin42 писал(а):"Компилятором" вы предыдущего оратора называете?
Нет, просто предвосхищаю обычную после этого обиженную реплику: "А почему компилятор не выдал предупреждения...?". Кстати, если вы делаете include, то половина последующих EQU не нужна - она уже там описана.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Про предупреждения уже прочитал, не переживайте.
Вы мне лучше скажите, действительно ли в Мультисиме эмуляция проходит так, как надо? Ибо максимум что добился на ВСЕХ схемах/прошивках из инета это либо ничего, либо курсор в (16,2) либо вывод квадратиков последовательный (если выключить Falling Edge режим)

Про EQU в курсе, просто сначала написал, потом делал поправки. Не критично ведь?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение uldemir »

Тут поищите других собеседников. у меня критерий истины - Работа в железе, а не симуляторе.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение urry »

интереса ради посмотрел инициализацию у себя, что-то очень мало похожего

Код: Выделить всё

	init_value = 0x3;
	TRISA=0;
	TRISD=0;
	LCD_RS = 0;
	LCD_EN = 0;
	LCD_RW = 0;
	
	DelayMs(15);	// wait 15mSec after power applied,
	LCD_DATA	 = init_value;
	LCD_STROBE();
	DelayMs(5);
	LCD_STROBE();
	DelayUs(200);
	LCD_STROBE();
	DelayUs(200);
	LCD_DATA = 2;	// Four bit mode
	LCD_STROBE();
	lcd_write(0x28); // Set interface length
	lcd_write(0xF); // Display On, Cursor On, Cursor Blink
	lcd_clear();	// Clear screen
	lcd_write(0x6); // Set entry Mode
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Нет, ну а как вы себе представляете работу в железе без испытания? Ну прошью я его, ну не получится ничего, что дальше?
Купить-то контроллер нетрудно...

Юрий, а вы могли бы показать весь код? Может быть, все что в инете - полный бред? :tea:
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение urry »

Протеус в помощь.
pushkin42
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт ноя 17, 2009 12:34:02

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение pushkin42 »

Блин!!! Оставил симуляцию включеной, отошел на 20 секунд воды попить - пошел вывод!!!
Почему так?
Аватара пользователя
abc
Друг Кота
Сообщения: 3687
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение abc »

Симулятор тормознутый ? Глючит ? Винда коряво стоит ? Драйверов каких-то не хватает ? .Net отжирает память ? Своп мал ?
Да причин тыщщи, хотите нормально работать - производите отладку в железе.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
murzila
Мучитель микросхем
Сообщения: 436
Зарегистрирован: Сб апр 10, 2010 16:46:26

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение murzila »

Рискну показаться неоригинальным, но зря Вы ожидаете, что в симуляторе все будет работать именно так, как Вы задумали. Вообще говоря, симуляторы рассчитаны отнюдь не на начинающих, а на людей, хорошо представляющих себе, что они делают и разбирающихся в тонкостях работы того или иного симулятора.
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение AndyWorld »

Я соглашусь с тем, что симулятор лучше оставить на потом. Купить реальный контроллер и ЖК индикатор. Многие так и начинали. Выбираешь схему - собираешь, для меня это был градусник (дом-улица) из журнала радио, потом таймер для кухни из этого же журнала, частотомер. Вобщем на 84-м можно кучу нужных вещей сделать. Потом правишь тексты под себя. Советую обзавестись книжками.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Товарищи! МОчи нет больше! PIC16F84A + LCD 16x2 - что с

Сообщение dosikus »

По стилю писанины ярко видна школа пастера . Уважаемый, вам срочно нужно переучиваться .
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»