Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/97: Рейтинг темы: голосов - 97, средняя оценка - 4.58
bykory

Программирование PIC12F675

24.09.2011, 22:20. Показов 20603. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброе время суток!
Мне нужно запрограммировать микроконтроллер PIC12F675. Достал справочник на русском, но пока не могу понять как его программировать.
Вот сам справочник http://ifolder.ru/25941436
Вот схема:

<Изображение удалено>

Сейчас я не углубляюсь заданием, а пытаюсь просто на 1й вход подать аналоговый сигнал, а на 2й опорное напряжение и на 3м получить цифровой сигнал.
Как выбирать функции на входе?
Как назначать вход и выход?
Как добиться оцифровки сигнала?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.09.2011, 22:20
Ответы с готовыми решениями:

RF модуль и PIC12F675
Помогите плиз. Прикрутил RF модуль к pic12f675, модуль подцепил на GPIO3, GPIO4 настроен как вход, остальные GPIO0, GPIO1, GPIO2, GPIO5...

проблема с PIC12F675
попался в руки PIC12F675 хотел сделать на нем программный ШИМ но как то странно ведет себя программа. упростил программу до уровня...

Pic12F675. не мигает светодиод:)
Всем привет! нашел в инете такое: http://arduinokit.ru/electronics/microcontrollers/blinking-led.html заливаю в свой pic12f675...

10
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
24.09.2011, 22:38
попридержи коней и начни с азов.
Немного инфы есть здесь http://we.iosyitistromyss.ru/btog/PIC/
там и за кнопку и за ацп и за вх/вых.
0
bykory
25.09.2011, 00:52
Ну что-то прояснилось, тем более с С++ знаком, правда, на уровне компьютерных приложений
Вот составил часть кода для начала.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <pic12f675.h>
#use delay(clock=4000000)  //Частота генератора в Гц
#divice ADC=10                  //10 разрядный АЦП
 
void main(void)
{
int16 adc_value;
 
setup_adc(ADC_CLOCK_INTERNAL|VSS_VDD); //настраиваем время выборки и диапазон вхоного напряжения (0-5в)
setup_adc_ports(sAN0);  //устанавливаем аналоговым входом вывод А
set_adc_channel(0);  //выбираем канал АЦП для считывания
 
...
1)Как все-таки из полусинусоидального сигнала сделать дискретный? Вот у меня к схеме подведено опорное напряжение, которое задает уровень, когда сигналу на выходе переходить в 1, а когда в 0.
2)Вот получил я дискретный сигнал, как его вывести на 3ю ножку? На примерах показан просто цикл и постоянные "значения" выводятся, а мне нужен результат АЦП
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
25.09.2011, 17:41
как настраивать регистны на ввод-вывод в даташите. раздел IO Ports обычно(а еще конкретней регистры TRISGPIO и GPIO).
добиться преобразования так же расскажет даташит, раздел Analog to Digital (A\D) convirter.

1) возьмите компаратор(или ОУ). Если это единственная задача пика. Будет быстрее и проще.
2) что значит как вывести? bsf/bcf. Или вам вывести именно значение АЦП? Или разность может? каким протоколом?

Ну а вообще алгоритм такой:
настроили вводы\выводы\ацп
замерили на входе которых с опорным напряжением
замерили на входе, который с сигналом
сравнили 2 значения
в зависимости от того что больше установили или сбросили бит состояния 3го вывода
вернулись на вторую строчку
0
bykory
26.09.2011, 03:10
Я как раз и нашел тот же справочник что и в даташите,но только на русском.
По поводу выбора функции на входе вроде понял как на Си выделить, надеюсь код, приведенный выше, правильный
Я понял, что в банк 0 по адресу 1Fh (ADCON0) надо установить значения:
Code
1
2
7бит  6бит  5бит  4бит  3бит  2бит  1бит  0бит
0      1     0      0     0     0     1     1
С этим все понятно, мне не понятно как это запрограммировать. Вот мне предложили использовать Си. Вот вроде как включил АЦП, направил его к 1му входу, а вот как теперь дальше писать код? Теоретически какие значения должны храниться в памяти понятно, но вот как написать?
Мне надо вывести результат АЦП (Это пока на 1м этапе чтобы понять)
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
27.09.2011, 09:42
после вызова функции read_adc в переменной adc_value будет 16битное значение выборки входного сигнала. что это и что с ним делать- читай в литературе по АЦП
по-простому вывести его на 1 вывод никак не получтся
что делать- читай в литературе по ЦАП

ПС сильно резкий подход у тебя - только начинаешь осваивать контроллеры и за такие задачи берешься. начни с нуля - диодом помигать и т.д.
если же стоит задача сделать устройство - обратись к знающим, отстегни лавэ и не парься
0
bykory
29.09.2011, 12:12
Это курсовой проект, с этим приходится мириться
SWK
29.09.2011, 13:23
Цитата Сообщение от bykory
Это курсовой проект, с этим приходится мириться
Тогда вас к этому времени уже должны были чему - то научить. Но если же вы вместо учебы не знаю чем занимались - это ваши проблемы... Обычно тема курсовика подразумевает, что студент должен показать, насколько хорошо он усвоил знания по предмету. И если курсовики за студентов будут писать другие люди - грош цена такому спецу, пусть и с ВУЗовским "поплавком"...
bykory
30.09.2011, 02:47
1) Я не прошу писать за меня курсач, а только совета и помощи. Прошу всего лишь показать как из аналогового сигнала получить цифровой
2) У меня небыло программирования микроконтроллера, а только вручную вбивали данные на тренажере МТ1804

От Вас я хочу сейчас только понять как мне преобразовать сигнал и все. Все остальное я сделаю сам
dorkmoom
30.09.2011, 14:40
Попробуй поставить MikroC "хороший компилятор" и хороший F1 много примеров!!!
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 30
30.09.2011, 17:08
Цитата Сообщение от bykory
Я как раз и нашел тот же справочник что и в даташите,но только на русском.
По поводу выбора функции на входе вроде понял как на Си выделить, надеюсь код, приведенный выше, правильный
Я понял, что в банк 0 по адресу 1Fh (ADCON0) надо установить значения:
Код:
7бит 6бит 5бит 4бит 3бит 2бит 1бит 0бит
0 1 0 0 0 0 1 1
С этим все понятно, мне не понятно как это запрограммировать. Вот мне предложили использовать Си. Вот вроде как включил АЦП, направил его к 1му входу, а вот как теперь дальше писать код? Теоретически какие значения должны храниться в памяти понятно, но вот как написать?
Мне надо вывести результат АЦП (Это пока на 1м этапе чтобы понять)
Синтаксис не понятен что ли?
В сях вроде так ADCON0=0x43
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.09.2011, 17:08
Помогаю со студенческими работами здесь

(pic12f675) Тестер utp патчкорда
Реализовать задачу тестера utp патчкорда (=,х) на микроконтроллере 12f675 в proteuse! кто то может ? Скорее всего на каждый провод нужно...

Pic12F675. asm не мигает светодиод:)
Всем привет! нашел в инете такое: http://arduinokit.ru/itistronics/mic...nking-tid.html заливаю в свой pic12f675 прошивку с...

Входной сигнал на PIN_A4 - PIC12f675
Доброго времени суток. Бьюсь второй день. Не могу понять Не работают на &quot;вход&quot; порты GP5, GP4. Компилятор PICC. Пару слов о...

PIC12F675: как редактировать файл EEPROM в Proteus
Появилась нужда записать в EEPROM данные. Пошарил в интернете, как всё же записать их туда и нашёл следующий скриншот: Всё...

Управление светодиодами с кнопок (ASM, Proteus, PIC12F675)
Добрый день! У меня вот такое задание, светодиоды HL1 и HL2 погашены, когда нажимаем на клавишу S1 - начинает мигать светодиод HL2, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru