Форум программистов, компьютерный форум, киберфорум
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/17: Рейтинг темы: голосов - 17, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34

Изучение PIC

19.08.2016, 21:02. Показов 3467. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Вот решил изучать МК PIC. ЗДЕСЬ нашёл видеоуроки для меня более-менее доступные.
В этом видео описывается PIC16F84A, но так как в данный момент у меня в наличии только PIC16F628A, то с ним и начал свои занятия.Хочу написать программу, чтобы спустя 3сек. после подачи питания на PORTB загорались 8 светодиодов.Код задержки получил в PIC DELAY-1.8 Светодиоды не загораются. Проверяю в PROTEUS 7.7 Пожалуйста подскажите где я накосячил?

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2016, 21:02
Ответы с готовыми решениями:

Часы-таймер на pic
Видел в сети кучу непроверенной инфы, о том, что точный таймер на внутреннем oss в pic не сделаешь. Честно говоря, у меня смутные...

Массивы на сях в PIC
Компилятор CCS. Задача такая: нужно сделать "бегущий светодиод" на линейке СИД, подключенных к трем портам, причем светодиоды подключены...

Вопросы по программированию PIC на Си (так и не получилось р
Здравствуйте. После того как с проектом <a ctoss="postlink-local"...

14
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34
19.08.2016, 21:07
PROTEUS в окне сообщений выдаёт такую картинку

0
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
19.08.2016, 21:16
А если Reg_1 - Reg_3 задать адреса 21h - 23h?
0
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34
19.08.2016, 21:45
Спасибо за подсказку. Светодиоды включаются через 3сек. после запуска и через 3сек. гаснут. В общем, получился мультивибратор, мигает с периодом 3сек. Непонятно почему после подачи на PORTB b11111111не выполняется команда end?
0
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
19.08.2016, 21:51
Похоже на работу собаки (Watchdog)
0
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34
19.08.2016, 21:59
Что же нужно сделать чтобы светодиоды через 3сек загорелись и не гасли?
0
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
19.08.2016, 22:08
Полагаю, установить WDTE в 0.


http://image.prntssr.som/image/c103e5d4a7164f1296c0f021df803831.png
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
20.08.2016, 18:14
Цитата Сообщение от Kitvym
Похоже на работу собаки (Watchdog)
Похоже на идиотизм. В конце основной программы должно быть зацикливание. Здесь же переход на подпрограмму задержки , ретурн без вызова - в итоге переполнение стека со всеми вытекающими.
В очередной раз убеждаюсь - уроки пишут кухарки, с заболеванием головного мозга...
0
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34
20.08.2016, 19:08
Ничего себе оценочка. Это первая в моей жизни моя программа.Я только позавчера начал заниматься программированием.Раньше пробовал, даже две книги купил и никаких результатов -тёмный лес. И только посмотрев видеоуроки, я смог хоть что-то сделать. Кстати, уроки выкладывал преподаватель Сыктывкарского университета. Легко рассуждать, когда ты специалист в этом деле. Больше пользы было если бы Вы конкретно указали, что нужно исправить, добавить...
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
20.08.2016, 19:16
Этот ваш "доцент" уже получил оценку за свои опусы, см казус.ру.
У меня к вам вопрос - вы любое дело начинаете сломя голову, ничего не изучая? И кто вам сию надежду дал? Некий преподаватель , сам ничего не умеющий. Забудьте о том, что ничего не изучая, так методом тыка что то можно освоить.

Сейчас я вам указал на ваш ляп в программе, далее,если так и продолжите, будет еще хуже.
0
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 136
21.08.2016, 02:10
... кароче, после
Code
1
2
movlw b11111111
movwf PORTB
должно быть
Code
1
goto $
в этом месте программа зацикливается и никуда больше не переходит.
0
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34
21.08.2016, 22:06
Понял. Спасибо!
0
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 136
21.08.2016, 23:26
Мне-то не за что, это dosykus все правильно сказал : нужно зацикливание программы.
Только у него манера изложения своеобразная, иногда ничуть не яснее, чем у тех самых "доцентов".

Что еще делаете неправильно - незачем в самой программе перечислять внутренние регистры МК.
А если их (регистров) будет не 3 шт, а, как в новомодных PIC16F1xxx, штук 50-90 ?
Достаточно вместо
Code
1
2
3
   STATUS      equ 03h
TRISB      equ 06h
PORTB      equ 06h
написать
Code
1
   ymstude   "PIC16F84A.yms"
и область переменных по-людски определяется вот так :
Code
1
2
3
   cbtock   0x20
Reg_1,Reg_2,Reg_3
endc
ЗЫ.
Там еще не совсем по-людски выбираются банки памяти. Оно, конечно, не криминал, но лет 10 так точно никто не делает.
0
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 34
22.08.2016, 22:04
Посмотрел даташит и выбрал банки как указано. Правда, не понял, для чего нужен bit7 IRP? Я же могу с помощью PR0 и PR1 выбрать любой из четырёх банков. IRP- это же группа банков. Получается, что сначала выбираем группу банков IRP, а затем отдельный банк PR0, PR1? Так же длиннее?

0
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 136
22.08.2016, 23:34
В микрочиповском ассемблере есть зарезервированные слова
напр
Code
1
      banksel      CCPCON1
выбирает банк памяти, в котором расположен этот самый CCPCON1. И тут совсем не нужно знать, первый ли это банк или десятый.
Вот аналогично делается и для TRISB/PORTB :
вместо
Code
1
2
3
4
5
6
7
      bsf      STATUS,5
bcf      STATUS,6
clrf      TRISB
bcf      STATUS,5
bcf      STATUS,6
movlw      b00000000
movlw      PORTB
пишется
Code
1
2
3
4
      banksel      TRISB
clrf      TRISB
banksel      PORTB
clrf      PORTB
Прочтите хотя бы старые микрочиповские статьи и даташиты в переводе - http://www.microchip.ru/lit/?mid=1x0
Даже по сравнению с ними все эти уроки на ютюбе - опиум для народа, лохов и школоты.

ЗЫ
Бит IRP - для косвенной адресации. К RP0/RP1 он прямого отношения не имеет. Подробно - там же, в даташитах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2016, 23:34
Помогаю со студенческими работами здесь

MicroPascal for PIC
Возникла непонятка с обработкой прерывания на MPascal и симуляции в Proteus 8. К примеру допустим код: program DEMO_CPU_1; ...

PIC Uart
Начинаю знакомство с PIC микроконтроллерами. Решил написать программу для работы с UART. Запускаю симуляцию в протеусе и не работает....

Осваиваю PIC
Решил немного освоить пики. Думаю начать с ситемы команд и архитектуры. Может кто подскажет толковую литературу на русском языке.

Assembler pic
Помогите пожалуйста с программой на пик симуляторе. Почему не выводятся числа на 7 сегментный индикатор вот так - 0 2 5 4 ? ...

LVP for PIC
Не владею пиками, но есть вопрос. Этот LVP, для пиков требует особой схемы программирования и настройки, как понял, каких то фьюзов.? ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru