Термометр 16F676 DA18B20 LCD до десятых
|
|
skiip |
Дата: Пт, 27.11.2015, 14:29 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
26
Замечания:
±
На сайте с 24.12.2008
Статус:
Offline
|
Переписал программуна PIC16F676 с использованием датчика DS18B20, точность до после запятой на дисплее. Данный проект, на железе непроверен. Пока перевел с PIC16F84 на PIC16F676 (480 слов) всю память забить позволяет. Далее дам программу на 2 (два) датчика подключенных параллельно, используя один порт. На ф84 есть и работает в железе. Даже на 4 датчика есть. Но тут надо как то программно решить об проверке ID датчика. Я просто использую чтение ID каждого датчика, и в память. Потом читаем память датчика и посылаем ID на шину, они (датчики) сами узнают, кого опрашиваем. В общем, результат на дисплее 4 датчика с использованием одной шины (PORTA.0) допустим. Почему я спросил программно решить чтение ID датчика. Ведь можно … нет . Мы же не знаем ID датчика того указанного (дом, подвал, гараж, улица). Значит моё решение ну как то оптимально.
Но вот беда. На LED дисплее не могу задействовать порты RA3, RA4, RA5 что бы посадить датчик. Помогите пожалуйста разобраться. Архив 676 LED
|
|
|
|
Gysmi |
Дата: Пт, 27.11.2015, 20:10 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
48
Замечания:
±
На сайте с 23.12.2011
Статус:
Offline
|
Выводы портов RA3 RA4,RA5 инициализируй как цифровые входы-они у тебя сначала работают как аналоговые!
|
|
|
|
skiip |
Дата: Сб, 28.11.2015, 05:13 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
26
Замечания:
±
На сайте с 24.12.2008
Статус:
Offline
|
Gysmi, приветствую Вас. Но позвольте обратить ваше внимание на начало программы ANSEL = %00000000 'Сделать все порты цифровыми TRISA = %00011000 ' RA3 RA4 в какой строке у меня ошибка?. RA5 работаетДобавлено (28.11.2015, 05:13) --------------------------------------------- CMCON = 7 ' компаратор выключен %00000111 ANSEL = %00000000 'Сделать все порты цифровыми TRISA = %00111000 ' RA3, RA4, RA5 'вход Pin var PORTA.5 ' Подключить DS18B20 к выводу PORTA.5 И RA5 работает
skiip
|
|
|
|
Gysmi |
Дата: Сб, 28.11.2015, 06:48 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
48
Замечания:
±
На сайте с 23.12.2011
Статус:
Offline
|
skiip , вы используете внутренний генератор? Посмотрите регистр 9-1 СONFIG. MCLR установить как цифровой вход-выход(бит5) опции генератора-биты(0-2)
|
|
|
|
skiip |
Дата: Сб, 28.11.2015, 08:10 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
26
Замечания:
±
На сайте с 24.12.2008
Статус:
Offline
|
Да, цель задумки использовать внутренний генератор. как прописать конфигурацию bit 5 MCLRE: RA3/MCLR pin function select(5)1 = RA3/MCLR pin function is MCLR 0 = RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD
FOSC2:FOSC0: Oscillator Selection bits 101 = INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN 100 = INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
skiip
|
|
|
|
Gysmi |
Дата: Сб, 28.11.2015, 09:51 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
48
Замечания:
±
На сайте с 23.12.2011
Статус:
Offline
|
Посмотрите на форуме есть как установить конфигурацию процессора. Там 14 битов. Пример:@ device pic12F675, intrc_osc_noclkout, wdt_on, PWRT_ON,mclr_off, protect_off
|
|
|
|
skiip |
Дата: Вс, 29.11.2015, 05:32 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
26
Замечания:
±
На сайте с 24.12.2008
Статус:
Offline
|
Gysmi, благодарю! и VitalForce (http://forum.vip-cxema.org/index.php?/topic/833-oshibka-kompiliatcii/#j_content),натолкнул на мысль покопаться в файле 16F628A.INC. в нём нашел подсказки по командам. Вот только не пойму, зачем я это написал INTOSC, его заменил на INTOSCIO и заработал RA4, но и удалил эту команду с конфигурации – все ровно работает. Зачем она нужна? И не пойму DEFINE OSCCAL_1K 1' ' частота внутреннего генератора 4 МГц Это как? Может без этих команд в железе работать не будет? Из даташита bit 7-2 CAL5:CAL0: 6-bit Signed Oscillator Calibration bits 111111 = Maximum frequency 100000 = Center frequency 000000 = Minimum frequency Что это? Максимальная частота генератора – зачем? Если мне надо 4 МГц. Может в железе без этих команд работать не будет? Пробовал с RA3 (он же только вход) выдает белиберТу. Я думаю, на нашем сайте родился проект «Термометр на PIC16F6… с датчиком DALAS DS18B20, DS1821, и подобные шине 1-Wire-net. В чем ставилась задача. Я использовал PIC16F84 но на нём много навесного (генератор) кварц, конденсаторы. Контроллер 16F676 – генератор внутри программный. Меньше деталей - габарит. Я хочу и буду работать пока с этим контроллером. Дешевле, проще, гибкий (аналог-цифра) вход. А блокировку на машину хочу переделать с PIC16F84 на 12F.. вроде 675. Тоже внутри программный (я использую только 1-Wire-net и выход на реле). И так от себя, писал программу на «си» и использовал MPLAB ide. Для меня показалась – не комфортно. Обращение к памяти надо переходить с банка в банк. Да есть плюс, мы работаем с битом. В PicBasic просто командой записываю число в указанную ячейку. А с задержкой времени только одно слово (PAUSe us). Почему ушел с MPLAB, программа при компиляции на PIC16F84 не влазила в контроллер при написании с дисплеем LCD.
skiip
|
|
|
|
Gysmi |
Дата: Вс, 29.11.2015, 07:27 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
48
Замечания:
±
На сайте с 23.12.2011
Статус:
Offline
|
skiip, добрый день! PIC16f676 хорошо подходит для вольтметров(10разрядный ацп) Внутренний генератор на 4 мгц использует КАЛИБРОВОЧНУЮ константу ,расположенную в последней ячейке памяти программ-посмотрите и запишите.(типа 3843).Она точно расчитана на заводе для 4 мгц.Для каждого контроллера она своя! Я ее в первый раз стёр на самодельном программаторе!) Ладно догадался записать как советовали где-то.
Сообщение отредактировал
Gysmi - Вс, 29.11.2015, 07:29
|
|
|
|
skiip |
Дата: Сб, 02.01.2016, 09:47 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
26
Замечания:
±
На сайте с 24.12.2008
Статус:
Offline
|
Что то ковыряю и понять не могу. Вот хочу задействовать аналоговый вход AN2. чтот не полусается. использую внутренний генератор. Поправте где ошибка что бы заработал AN2 как аналоговый вход. @ device pic16F676, WDT_OFF, MCLR_OFF', INTOSC DEFINE ADC_OSC 4 ' частота внутреннего генератора 4 МГц DEFINE ADC_BITS 10 ' количество разрядов в результате АЦП DEFINE ADC_CLOCK 3 ' источник синхронизации АЦП (rc=3) DEFINE ADC_SAMPLEUS 50 ' время выборки АЦП преобразования 50мкс
ADCON0 = %10001011 ' канал 02 (AN2) CMCON = 7 ANSEL = %00000100 ' AN2 аналог вход TRISA = %00000100 ' вывод PORTA.2 на входДобавлено (02.01.2016, 09:47) --------------------------------------------- Дня доброго (кому вечера) уважаемые люди. Благодаря вашейпомощи, я ну хоть как то разобрался с пиком 16F676. Вот беда. Печатную плату не хочется переделывать. Да и в данном пике мало портов. И это не проблема. Просто точку можно аннулировать, а порты в печатке хорошо легли. Порт AN3 (RA4), расположен неудобно по дорожкам печатки и программе. Методом проб и ошибок ни как не могу задействовать AN2 (RA2). В архиве не обращайте внимания, что первый разряд отключил. Просто проверяю работу порта. Архив «исходник – мерит, AN2- что то пытаюсь изменить на работу данного порта». Генератор внутри программный. В архив выложил печатку (от того термометра). На базе ней решаю вопрос с дальнейшей переделкой.
skiip
|
|
|
|
skiip |
Дата: Сб, 02.01.2016, 11:53 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
26
Замечания:
±
На сайте с 24.12.2008
Статус:
Offline
|
чот не понял а где файл
skiip
|
|
|
|