АЦП на PIC16FХХ
|
|
tolyan249 |
Дата: Сб, 29.03.2008, 10:10 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
199
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Добрый день вечер. Подскажите как можно зделать АЦП на PIC16F84, с другими не хочу заморачиваться. или какую микросхему можно применить АЦП c последовательном выходом данных,Просто у меня стоит задача,зделать сигнализацию на поселки с предостовлением данных. 1.-напряжение 220 2-напряжение аккамуляторов 3-температура помещения и улицы 4-сигнализация охранная 5-сигнализация пожарная и еще кучу данных нужно передать от каждого поселка по телефонной линии а их 20 что посоветуете. приму любые предложения, спасибо за ответы и помощь. Добавлено (29.03.2008, 4:10:10) --------------------------------------------- вот нашел АЦП DS2450 но как его состыковать с pic16f84 програмно я не знаю,может кто поможет.
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Сб, 29.03.2008, 10:10
|
|
|
|
rvstar |
Дата: Пн, 02.06.2008, 22:55 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 09.10.2007
Статус:
Offline
|
Возьми P16f676 и не заморачивайся
|
|
|
|
holyuser |
Дата: Вт, 03.06.2008, 01:52 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Quote (tolyan249) вот нашел АЦП DS2450 но как его состыковать с pic16f84 програмно я не знаю,может кто поможет. Для этого в PicBasicPro есть операторы OWIN и OWOUT, но чтобы их использовать, надо хорошо изучить даташит DS2450. Quote (rvstar) Возьми P16f676 и не заморачивайся Верно, а еще лучьше PIC16F819.
|
|
|
|
DWalker |
Дата: Вс, 31.05.2009, 14:25 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 25.03.2009
Статус:
Offline
|
Всем привет. Вот взялся я за пики и возник вопрос...насчет того как правильно сконфигурировать ацп для PIC16F88?... подскажите как это сделать?
|
|
|
|
brown |
Дата: Вс, 31.05.2009, 15:14 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Для начала как в мануале: DEFINE ADC_BITS 8 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (rc = 3) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds TRISA = 255 ' Set PORTA to all input ADCON1 = 2 ' PORTA is analog
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
DWalker |
Дата: Вс, 31.05.2009, 19:14 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 25.03.2009
Статус:
Offline
|
Ок....как в мануале...а вот DEFINE ADC_CLOCK 3 ' Set clock source (rc = 3) если я использую внешний кварц... ХТ какой параметр нужно ввести?. в мануале к пику описано что использование rc нужно если я хочу использовать ацп для вывода пика из режима sleep ,но для других случаев это вроде как не критично
|
|
|
|
brown |
Дата: Пн, 01.06.2009, 12:22 | Сообщение # 7 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Quote (DWalker) но для других случаев это вроде как не критично Во всех программах которые я видел да и сам использовал стояла строка DEFINE ADC_CLOCK 3 ' Set clock source (rc = 3). Если вас это чем то не устроит, можете поэксперементировать устанавливая биты в регистре ADCON0 (смотри даташит).
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
DWalker |
Дата: Пн, 01.06.2009, 14:22 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 25.03.2009
Статус:
Offline
|
Эм.....начал компилировать выскочила такая проблемка. В подключаемом файле конфигурации этого пика появилось сообщение об ошибке ERROR Line 21: Redefinition of VAR. (16F88.BAS) line 21:WDTCON VAR BYTE EXT Использую Microcode Studio Plus 2.2 с комилятором PBP. ...Если гдето исправленные эти файлы с конфигурацией пиков, или может дело в настройках самого Микрокод студио?
|
|
|
|
Ripper |
Дата: Вс, 18.04.2010, 09:32 | Сообщение # 9 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
12
Замечания:
±
На сайте с 26.02.2010
Статус:
Offline
|
Ктонить скажите как использовать ADCON и какие значения выставлять применительно для 16F628A?
|
|
|
|
brown |
Дата: Вс, 18.04.2010, 11:51 | Сообщение # 10 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Ripper, в 628 нет АЦП!
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
chiper |
Дата: Чт, 15.07.2010, 12:15 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
Подскажите как реализовать на Picbasicpro вольтметр 1-20В на базе микроконтроллера pic16f877. кварц 4мг. не используя дополнительно микросхему (как вы советовали до этого автору темы) мне бы реализацию вот под эту схемку http://www.coolcircuit.com/project/meter/meter.zip С выводом вольт на LCD разберусь сам, меня интересует только измерительная часть. И ещё одно, можно ли только один порт сделать аналоговым для АЦП ? не горю желанием из за 1 порта RA0 лишатся всех цифровых выводов порта. так будет работать? Code DEFINE ADC_BITS 8 ' DEFINE ADC_CLOCK 3 ' DEFINE ADC_SAMPLEUS 50 '
trisa = %00000001 ADCON1 = porta.0 ' PORTA is analog
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
Сообщение отредактировал
chiper - Чт, 15.07.2010, 12:30
|
|
|
|
terrarus |
Дата: Чт, 15.07.2010, 15:23 | Сообщение # 12 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
chiper, ADCON1 = %10001110 Такая запись сделает только PPORTA.0 аналоговым входом, остальные останутся цифровыми. Но это справедливо толко для 16F87x микроконтроллеров. Для настройки других МК ружно внимательно смотреть их даташиты. Quote (chiper) Подскажите как реализовать на Picbasicpro вольтметр 1-20В на базе микроконтроллера pic16f877 Ответ смотрите на ресурсе http://terrarus.ucoz.ru/proton_plus_ide/index.html в разделе PROTON+IDE для PIC/Команды и директивы/ADIN А в разделе DATASHEETs/PIC/RUS/ PIC16F87X можно по русски почитать про настройки портов PIC16F877. Обратите внимание на страничку 108 даташита на PIC16F87X.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Чт, 15.07.2010, 15:27
|
|
|
|
retas |
Дата: Чт, 15.07.2010, 16:06 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
tolyan249 !!! Непойму, зачем вам для сигнализации АЦП? Чтоб следить за состоянием акума подайдёт, ПМ, компаратор (не помню, есть ли он в 84-том), под температуру есть спец. датчики, для охранки и пожарки используется логические уровни. И сколько всего у вас объектов (если прикинуть что в посёлке по 10 изьб то 200 - ой ой ой). Что у вас за центральный пульт?
|
|
|
|
chiper |
Дата: Чт, 15.07.2010, 16:59 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
108
Замечания:
±
На сайте с 14.07.2010
Статус:
Offline
|
Всё всем спасибо! Вольтметр получился на ура!!! [code] DEFINE OSC 4 ' Èíèöèàëèçàöèÿ ÆÊÈ ********************************************************************** DEFINE LCD_DREG PORTD ' Îïðåäåëÿåì ïîðò, ê êîòîðîìó ïîäêëþ÷åíû öåïè äàííûõ. DEFINE LCD_DBIT 4 ' Îïðåäåëÿåì ïåðâûé âûâîä, ê êîòîðîìó ïîäêëþ÷åíà øèíà äàííûõ, DEFINE LCD_RSREG PORTB ' Îïðåäåëÿåì ïîðò, ê êîòîðîìó ïîäêëþ÷åíà öåïü RS. DEFINE LCD_RSBIT 0 ' Îïðåäåëÿåì âûâîä, ê êîòîðîìó ïîäêëþ÷åíà öåïü RS. DEFINE LCD_EREG PORTB ' Îïðåäåëÿåì ïîðò, ê êîòîðîìó ïîäêëþ÷åíà öåïü E. DEFINE LCD_EBIT 1 ' Îïðåäåëÿåì âûâîä, ê êîòîðîìó ïîäêëþ÷åíà öåïü E. DEFINE LCD_BITS 4 ' Îïðåäåëÿåì ðåæèì 4 – ðàçðÿäíîé øèíû. DEFINE LCD_LINES 2 ' Îïðåäåëÿåì òèï ÆÊÈ. DEFINE LCD_COMMANDUS 2000 ' Îïðåäåëÿåì âðåìÿ çàäåðæêè ìåæäó êîìàíäàìè íà ÆÊÈ. DEFINE LCD_DATAUS 50 ' Îïðåäåëÿåì âðåìÿ çàäåðæêè ìåæäó ïîñûëêàìè äàííûõ. '***************************************************************************************** 'Èíèöèàëèçàöèÿ ÀÖÏ *********************************************************************** DEFINE ADC_BITS 10 ' DEFINE ADC_CLOCK 100 ' DEFINE ADC_SAMPLEUS 10 ' trisa = %00000001 ADCON1 = %10001110 '****************************************************************************************** volt var word test: Adcin 0, volt lcdout $fe,1, "Volt=", DEC2(volt/10), ".",DEC1 (volt//100) goto test собрано по этой схеме http://www.coolcircuit.com/project/meter/meter.zip - только одаптировано к LCD Резистор который идёт на щуп заменил на 200К вместо 47 которые идёт по схеме.
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.
|
|
|
|
passer_by |
Дата: Вс, 04.12.2011, 09:22 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
17
Замечания:
±
На сайте с 23.10.2011
Статус:
Offline
|
Делаю некую схемку управления, где нужны практически все выводы портов PIC16F877. Но вот эта фишка не проходит: Quote ADCON1 = %10001110 Такая запись сделает только PPORTA.0 аналоговым входом, остальные останутся цифровыми. То есть если пишу ADCON1 = %00000000 то измерение напряжения идет, если ADCON1 = %10001110 все отлетает в Proteus_е. Не подскажите, что делаю не так? Вот кусок самого проекта с измерением напряжения:Добавлено (04.12.2011, 09.22.30) --------------------------------------------- Уф... Отбой воздушной тревоги. Да... Со сна восстав читай устав даташит. Все правильно - ADCON1 = %10001110 , за тем исключением, что у меня надо ADCON1 = %00001110. бит 7 0=левое выравнивание Ну сейчас кнопочек еще натыкаю
Сообщение отредактировал
passer_by - Сб, 03.12.2011, 09:26
|
|
|
|