Перейти к содержанию

Общие вопросы по PIC-микроконтроллерам


NebsteR

Рекомендуемые сообщения

Прошу помочь. Я - новичок как в программировании, так и в микроконтроллерах, стал изучать литературу и потихоньку играться в симуляторе. Писать буду на ассемблере для pic, т.к. это понадобиться для учебы в дальнейшем. Согласно самоучителям начал с простого pic16f84a, взял пример программы, немного изменил, как нужно мне и успешно симулировал в протеусе. потом решил перенести задуманные действа на более новый, например, pic16f877, т.к. не хватало портов для дальнейшего развития. Но при симуляции он не понимает, что от него надо. сама прога:

LIST P=PIC16f84a

__CONFIG H'3FF1'

STATUS EQU H'0003'

PORTA EQU H'0005'

PORTB EQU H'0006'

TRISA EQU H'0005'

TRISB EQU H'0006'

Reg_1 EQU H'000C'

Reg_2 EQU H'000D'

Reg_3 EQU H'000E'

org 0 ; начало программы

; подготовительные моменты

bsf STATUS,5 ; переход в Банк 1

movlw b'00011111'

movwf TRISA

clrf TRISB

bcf STATUS,5 ; переход назад в Банк 0

clrf PORTB ; очистка порта

; отслеживание нажатия кнопки

movlw b'00000001'

movwf PORTB

m1 btfsc PORTA,2 ; бит-проверка ножки RA2

goto m99

m2 btfss PORTA,2 ; бит-проверка ножки RA2

goto m2 ; отслеживаем отжатие кнопки

rlf PORTB,1

call Pause

m99 goto m1

;delay = 250000 machine cycles

Pause movlw .169

movwf Reg_1

movlw .69

movwf Reg_2

movlw .2

movwf Reg_3

wr decfsz Reg_1, F

goto wr

decfsz Reg_2, F

goto wr

decfsz Reg_3, F

goto wr

return

end ; конец программы

микроконтроллер понимает только включение b0 (зажигается светодиод), а на нажатие кнопки не реагирует. помогите разобраться в причине :bye:

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

например, pic16f877

А сам что написал?

LIST P=PIC16f84a

RA2 надо настроить как цифровой вход и подтянуть (см. даташит)

Схему в протеусе выложи. Лень за тебя рисовать.

Изменено пользователем koms45

Так ку или не ку ?!

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

например, pic16f877

А сам что написал?

LIST P=PIC16f84a

RA2 надо настроить как цифровой вход и подтянуть (см. даташит)

Схему в протеусе выложи. Лень за тебя рисовать.

Большое спасибо. разобрался
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Писать буду на ассемблере для pic, т.к. это понадобиться для учебы в дальнейшем. Согласно самоучителям начал с простого pic16f84a, взял пример программы, помогите разобраться в причине :bye:

проблема одна: использование самоучителя, чувствуется уверенная рука пастора:),

а все остальное это результат...

ошибки:

1. указан не тот МК

2. регистры РСН в программе не описываются для этого есть инклюды

3.адреса регистров РСН для регистров РОН не используются

4.результат выполнения команд указывается как f или w , цифры не используются

5. выкладываете код программы пользуйтесь кнопкой код "<>" панели управления

6. читаем правила форума и не нарушаем пункт П.II.9 - устное предупреждение :rtfm:

ЗЫ: есть более достойные труды для изучения : Как оформлять программы на ассемблере (ноябрь, 2010) (В. Тимофеев)

Ссылка на комментарий
Поделиться на другие сайты

Добрый день.

Прошу совета. МК - PIC16F876A. Среда - MPLAB. Компилятор - ХАЙТЭК. Работа ШИМ. Возникает необходимость при возникновении прерывания прервать работу ШИМ и на выходе установить 0. Каким образом наилучше это сделать?

И по ходу - при отключении работы TMR2 протеус продолжает упорно выдавать сигнал ШИМ (смотрю осцилографом), в жизни это так или это глюк протеуса?

За ранее спасибо.

Изменено пользователем Bugrim
Ссылка на комментарий
Поделиться на другие сайты

не это не глюк...

может ине правильно но я его на 628А глушил так:

 if (RB_1)	 // перевод ШИМ в состояние 0%
	 {
		 FL_old_0=1;
		 FL_old=1;
		 CCP1CON=0b00000000;
			 INTE=0;
		 temp_PWT=0;				
		 CCPR1L=0;
		 TMR2ON=1;
		 RB3=0;
	 }
 else
	 {
 if ((RB_2)&&(!FL_old_0))	 // перевод ШИМ в состояние 100%
	 {

			 FL_old=1;
			 INTE=0;
		 CCP1CON=0b00000000;
		 CCPR1L=Razm_PWT+1;
		 TMR2ON=1;
		 RB3=1;
	 }

Ссылка на комментарий
Поделиться на другие сайты

Назрел еще один вопрос, наверно, более теоретический...

Вообщем необходимо реализовать задачу: на микроконтроллере с помощью ЦАП (R2-R) выдавать синусоидальный сигнал и одновременно производить обратный отсчет времени (на двухразрядном ССИ)..

я недопонимаю как это реализовать программно, т.е. микроконтроллер постоянно будет обращаться к таблице значений синуса, а если вызывать подпрограмму индикации, то в нем (синусе) будут наблюдаться разрывы...Прошу указать мне в чем мои рассуждения неправильны: или я не понимаю ЦАП, или разрывы будут- но они слишком малы и не заметны или что-нибудь еще) :unknw:

З.Ы. ув. "IMXO" пожалуста приведите пример по п.4, т.к. я немного туговат(

4.результат выполнения команд указывается как f или w , цифры не используются

и еще: при управлении ССИ с общим катодом через биполярный транзистор, цифра загорается, но больше не гаснет, хотя индикация работы порта во время симуляции происходит (мигает), в чем проблема? номиналы резисторов и бп перебрал много, исходя из различной инфы в интернете

при симулировании с общим анодом все тип топ...

Изменено пользователем Gesser
Ссылка на комментарий
Поделиться на другие сайты

я вот о чем:

rlf PORTB,1

правильно

rlf PORTB,f

как это реализовать программно, т.е. микроконтроллер постоянно будет обращаться к таблице значений синуса, а если вызывать подпрограмму индикации, то в нем (синусе) будут наблюдаться разрывы...Прошу указать мне в чем мои рассуждения неправильны: или я не понимаю ЦАП, или разрывы будут- но они слишком малы и не заметны или что-нибудь еще)
будут не разрывы , а нарушение геометрии синусоиды...
и еще:

симулятор протеус? проект покажите, ну или схему

Ссылка на комментарий
Поделиться на другие сайты

Так можно как-нибудь избежать нарушения геометрии или оно не сильно отражается на общей картине синусоиды?

по поводу схемы (ССИ с общим катодом), данная схема может быть рабочей?

c8c66e406533t.jpg

Ссылка на комментарий
Поделиться на другие сайты

Вроде бы ничего военного, схема с общим катодом. Хотя резистор в базе великоват, я бы снизил до 1кОм. Токоограничивающие резисторы на сегменты разрядов зависят от частоты и времени подцветки, так что их проще определить опытным путем - при достижении необходимой яркости свечения.

Ссылка на комментарий
Поделиться на другие сайты

Так можно как-нибудь избежать нарушения геометрии или оно не сильно отражается на общей картине синусоиды?
можно...

В прерывании по таймеру делать выборку значений синуса и выводить в порт.

Схема динамической индикации у вас правильная , а косяки в работе связаны с неправильным алгоритмом работы программы

Пример оформления программы вам дали... динамическая индикация там имеется.... или нет?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Вопрос не по программированию. У производителя есть коммерческие версии корпусов, а есть промышленные (с более широким температурным диапазоном). Понятно, что для суровых условий лучше использовать пром. версию. Но не всегда её можно быстро купить, а иногда и вообще разводят руками, мол, бери, что есть. В связи с этим вопрос. Как будет вести себя коммерческий корпус в температурном диапазоне -40...+40? Будет ли он неработоспособен, или просто уплывут параметры? Нигде подробной инфы нет. И есть ли отличия в технологии производства кристаллов для разных исполнений, или разница только в корпусе?

Ссылка на комментарий
Поделиться на другие сайты

а есть еще милитари... у тех вообще -55...+125С , отличий в производстве нет... все делается на одной подложке , только качество монокристалла кремния у основания и на краях разное... тех. процесс нанесения полупроводников то же один и тот же , а далее обычная отбраковка по тех параметрам....

вопрос будет ли работоспособен МК потребительского стандарта , весьма сложен и зависит от многих факторов:

таких как частота осциллятора, очень часто экземпляр на 20Мгц при -35 не работает ,а при 4мГц работает без проблем....

нагрузка портов МК , самонагрев корпуса на 30-40С больше ок.среды иногда может помочь вогнать МК в нужный температурный диапозон...

у мелкомягких как-то обсуждалась тема самопроизвольного защелкивания портов вывода в третье состояние при снижении темп-ры до -35, смена партии кажется решила проблему

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Всем привет :-) У меня проблема с PICKit 3. Шил я чипы им, потом весной случился косяк - перестали работать мои программы, прямо резко - вечером шил норм, утром уже нет, мне скинули образец программы - она заработала. Я решил, что у меня компилятор тупит, раз чужая программа заработала. Потом пол года я не занимался электроникой вообще, вчера решил прошить чип, итог - не работает ни моя ни чужая программа. И процесс прошивания идёт подозрительно быстро. Что случилось? Может ось в программаторе полетела? Вообще шью прогой именно для Пиккита 3. Вчера попробовал MPLAB IPE - она написала по английски что-то типа "не подключен девайс". Неужели сгорел программатор? :shok: Пробовал с двух разных компов - везде всё одинаково

Понял в чём косяк - в моёй рассеяности, разъём вверх ногами перевернул...

Изменено пользователем дямон
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

а вот нет простеньких схем... ПО для простеньких схем не поддерживают этот камень....

PicKit2 or PicKit3 знают этот камень или проф.прогеры типа тритона....

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Вход VREF - это, я так понимаю, опорное напряжение для АЦП. Для AVR на AREF рекомендуют вешать конденсатор, тут можно также поступить или обязательно подавать напряжение? И еще у некоторых контроллеров есть VREF+ и VREF-, можно ли просто для работы АЦП повесть VREF- на землю?

Ссылка на комментарий
Поделиться на другие сайты

Попробуй смоделировать работу контроллера хотя-бы в программе Proteus - сам увидишь в симуляции что куда нужно подавать .

Технические вопросы решаю в теме , в личке не обсуждаю !!!

Ссылка на комментарий
Поделиться на другие сайты

Попробуй смоделировать работу контроллера хотя-бы в программе Proteus - сам увидишь в симуляции что куда нужно подавать .

ну при симуляции у меня на этих входах нет вообще ничего и всё работает. вот я и спрашиваю, что там по идее должно быть

Ссылка на комментарий
Поделиться на другие сайты

В пиках Vref станет опорным напряжением АЦП лишь тогда, когда будет сконфигурирован таковым в соответствующем регистре управления АЦП.

Если ничего не конфигурировать, то опорой будет питание контроллера.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...