Страница 1 из 2

LCD+PIC16F84A+DS18B20

Добавлено: Пн ноя 05, 2012 03:42:27
Reaper666
Совсем недавно стал заниматься контроллерами и вот возникли такие вопросы.
1) Есть ли пример программы, в которой описано как именно работать с DS18B20, и если можно, то с комментариями, и без всяких макросов и библиотек, хочу понять, как работать с ними на базовом уровне.
2) Такой же пример нужен для работы с Mt16S2D
3) На отладочной плате поставлен mt16s2d, а в протеусе есть только lm016l, но контроллер у них один и тот же. Значит ли это, что программу под MT можно смело использовать на LM и ничего менять не надо будет?

Re: LCD+PIC16F84A+DS18B20

Добавлено: Пн ноя 05, 2012 09:45:43
otest
как именно работать с DS18B20, и если можно, то с комментариями, и без всяких макросов и библиотек
На каком языке?
mt16s2d, а в протеусе есть только lm016l, но контроллер у них один и тот же.
Что мешает проверить совместимость в Протеусе? Боишся Протеус сжеч?

Re: LCD+PIC16F84A+DS18B20

Добавлено: Пн ноя 05, 2012 10:51:44
Аlex
Странно... Имеется отладочная плата, а думают о каком то протеусе :facepalm:

Re: LCD+PIC16F84A+DS18B20

Добавлено: Пн ноя 05, 2012 23:35:32
Reaper666
Аlex писал(а):Странно... Имеется отладочная плата, а думают о каком то протеусе :facepalm:
Извините, платы нет, пока приходится так, мне для начала бы азы программирования постичь

Re: LCD+PIC16F84A+DS18B20

Добавлено: Пн ноя 05, 2012 23:37:40
Reaper666
otest писал(а):
как именно работать с DS18B20, и если можно, то с комментариями, и без всяких макросов и библиотек
На каком языке?
mt16s2d, а в протеусе есть только lm016l, но контроллер у них один и тот же.
Что мешает проверить совместимость в Протеусе? Боишся Протеус сжеч?
Да в принципе, хоть на асме, хоть на си, если что в си сам переброшу. Проверил их совместимость, такое ощущение, что MT использует свой знакогенератор, а LM ASCII таблицу, ибо коды от MT на LM не пошли

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 12:20:45
Reaper666
И кто может подсказать, что я сделал не так, ибо данные на индикаторе упорно не появляются, но на выходе порта они есть. В чем трабла может быть?

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

#include p16f84a.inc
		__config 0x3FF2

#define E PORTA,2
#define RS PORTA,0
#define RW PORTA,1
  CBLOCK 0x20      ;Начальный адрес блока констант
		to_out
		Reg_1
		Reg_2
		Reg_3
		ENDC
		
;---------Контроллер--------------------------

Start
		bsf STATUS,RP0
		CLRF TRISB ; Портб на выход
		CLRF TRISA ; Порта на выход
		bcf STATUS,RP0 
		CLRF PORTA
		CLRF PORTB
;---------ЖКИ----------------------------------

		movlw b'00110000' ; первая команда
		movwf to_out ; в байт сообщения
		call to_port ; запись в порт
	    call zapis 
		call pause5
;----------------------------------------------
		movlw b'00110000' ; вторая команда
		movwf to_out ; в байт сообщения
		call to_port 
		call zapis
		call pause100
;----------------------------------------------
 		
		movlw b'00110000' ; вторая команда
		movwf to_out ; в байт сообщения
		call to_port 
		call zapis
		call pause100
		call pause100
;----------------------------------------------
		movlw b'00110100' ; 8-битный интерфейс, 1 строка, символы 8*10
		movwf to_out
		call to_port
		call zapis
		call pause100
		call pause100
;----------------------------------------------

		movlw b'00001110' ; дисплей включен, курсор включен, мерцание выключено
		movwf to_out
		call to_port
		call zapis
		call pause100
		call pause100
;----------------------------------------------

		movlw b'00000110' ; инкремент позиции курсора, сдвиг дисплея выключен
		movwf to_out
		call to_port
		call zapis
		call pause100
		call pause100

;---------- завершена-------------
;---------- информации--------------------

		movlw .131 ; установка первого адреса 1 строки
		movwf to_out 
		call to_port
		call pause50
		call zapis
		call pause255
		

;---------- символа-----------------------
		bsf RS
		movlw 0x34
		movwf to_out
		call to_port
		call pause50
		
		call zapis
		nop 
		nop 
		goto $-1

;------------Подпрограмма записи в LCD------------
zapis 
		bsf PORTA,2 ; E=1 write
		nop
		nop
		bcf PORTA,2 ; E=0 turn off write
		return
		
;---------- записи сообщения в защелки портов---------------
to_port 
	movf to_out,w
	movwf PORTB
 	return	

;---------- в 100 мкс-------------------------------------------
pause100       movlw       .33
            movwf       Reg_1
wr          decfsz      Reg_1, F
            goto        wr
			return

;---------- в 50 мкс--------------------------------------------
pause50       movlw       .16
            movwf       Reg_1
wr1          decfsz      Reg_1, F
            goto        wr1
            nop
			return

;---------Пауза в 255 мкс--------------------------------------------

pause255      movlw       .84
            movwf       Reg_1
wr2          decfsz      Reg_1, F
            goto        wr2
            nop
            nop
			return
;--------Пауза в 5 мс------------------------------------------------
pause5      movlw       .125
            movwf       Reg_1
            movlw       .7
            movwf       Reg_2
wr3         decfsz      Reg_1, F
            goto        wr3
            decfsz      Reg_2, F
            goto        wr3
		return
		
		END

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 12:44:57
Аlex
1) Есть ли пример программы, в которой описано как именно работать с DS18B20...
Пример работы с 1-Wire. Исходник открыт, разбирайтесь...

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 13:55:19
otest
И кто может подсказать,
А где проект в Протеусе ?

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 16:44:34
Reaper666
otest писал(а):
И кто может подсказать,
А где проект в Протеусе ?
Уой, забыл про него. Вот, залил.

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 17:32:17
otest
Вот, залил.
Это не проект , это схема.

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 17:36:53
школьник
проверил, схема рабочая
Изображение

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 19:10:20
Reaper666
школьник писал(а):проверил, схема рабочая
Проверил, точно работает, просто есть кракозябры вот такие, но это ладно. Можно сам код программы, где я не так что сотворил?

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 19:59:49
otest
Код так сотворил. Проект не так сотворил и не показываеш.

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 20:05:01
Reaper666
otest писал(а):Код так сотворил. Проект не так сотворил и не показываеш.

Чегооо? Моя вас не понимать. Серьезно, что у меня там не так. Сама схема верна, ну для протеуса верна, значит проблема в коде, и я хочу знать, где именно она может быть.

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 20:16:25
школьник
Поставьте руссификатор для индикаторов на HD44780 и аналогичных в Протеусе
http://labkit.ru/userfiles/file/soft/ID ... DALPHA.rar

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 20:48:23
otest
Моя вас не понимать.
Мой вас тоже нихт фирштейн. Проект Протеус состоит из схемы, исходного кода , файла "нех". Всё в одной папке. Где всё это?

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 22:41:36
школьник
otest писал(а):
Моя вас не понимать.
Мой вас тоже нихт фирштейн. Проект Протеус состоит из схемы, исходного кода , файла "нех". Всё в одной папке. Где всё это?
otest - вы не правы. У меня проект Протеуса запускается без исходного кода.
Достаточно указать в схеме Протеуса (для микроконтроллера) местонахождение прошивки (файла "нех").

Re: LCD+PIC16F84A+DS18B20

Добавлено: Ср ноя 07, 2012 23:14:51
Reaper666
школьник писал(а):Поставьте руссификатор для индикаторов на HD44780 и аналогичных в Протеусе
http://labkit.ru/userfiles/file/soft/ID ... DALPHA.rar
За русификатор спасибо, а с LCD вопрос решен, переписал на СИ и все отлично работает. Теперь надо разбираться с термодатчиком.

Re: LCD+PIC16F84A+DS18B20

Добавлено: Чт ноя 08, 2012 09:39:18
otest
otest - вы не правы.
Я не к Вам обращался. Я собрать проект умею. А вот проект Т.С. мы так и не увидели.

Re: LCD+PIC16F84A+DS18B20

Добавлено: Чт ноя 08, 2012 09:54:20
Reaper666
otest писал(а):
otest - вы не правы.
Я не к Вам обращался. Я собрать проект умею. А вот проект Т.С. мы так и не увидели.

Да я понял, что вы хотели, уж извините, про hex-файл не подумал, да это уже и значения не имеет.