Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 22.09.2013, 12:23  
nikvas
Временная регистрация
 
Регистрация: 04.08.2013
Сообщений: 51
Сказал спасибо: 22
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
nikvas на пути к лучшему
Печаль MPLAB, PIC16F84

Уважаемые программисты, подскажите как в ассемблере можно многократно инвертировать один бит регистра не затрагивая остальные биты?
Например только выход порта RB3, инвертировать многократно не затрагивая остальные порты.
Реклама:

Последний раз редактировалось nikvas; 22.09.2013 в 12:25. Причина: ошибка
nikvas вне форума  
Непрочитано 22.09.2013, 13:14  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

В аккумулятор требумую маску и операция "исключающе или" с портом. Результат в порт.
Код:
movlw (1 ‹‹ Pb3);
xorwf PORTB, 1;
как то так ...

Последний раз редактировалось _guardianangel; 22.09.2013 в 13:16.
_guardianangel вне форума  
Непрочитано 22.09.2013, 15:08  
nikvas
Временная регистрация
 
Регистрация: 04.08.2013
Сообщений: 51
Сказал спасибо: 22
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
nikvas на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Состояние остальных бит в порту В неизвестно и изменять их не возможно.
Поэтому вся маска не годится.
Я так понимаю что команду xorwf применить к одному биту невозможно.
Я не проф и много не знаю, поэтому попробую Ваш вариант, но его пока полностью не понимаю.
nikvas вне форума  
Непрочитано 22.09.2013, 15:25  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Сообщение от nikvas Посмотреть сообщение
Я не проф и много не знаю, поэтому попробую Ваш вариант
Прежде, чем в железе, промоделируйте побитно на бумажке и поймете - можно или нет.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Непрочитано 22.09.2013, 18:18  
nikvas
Временная регистрация
 
Регистрация: 04.08.2013
Сообщений: 51
Сказал спасибо: 22
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
nikvas на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Если я беру маску порта "В", то по команде xorwf PORTB, 1; инвертируются все его выходы, а мне надо управлять только одним не трогая другие, они выполняют свои функции.
Я и рад бы на бумажке, да не знаю чего. Поэтому и обратился.
nikvas вне форума  
Непрочитано 22.09.2013, 18:23  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Сообщение от nikvas Посмотреть сообщение
Если я беру маску порта "В", то по команде xorwf PORTB, 1; инвертируются все его выходы, а мне надо управлять только одним не трогая другие, они выполняют свои функции.
Я и рад бы на бумажке, да не знаю чего. Поэтому и обратился.
Ну пишите баг репорт в Microchip,если у них XOR с нулем инвертирует.
Gnider вне форума  
Сказали "Спасибо" Gnider
nikvas (25.09.2013)
Непрочитано 22.09.2013, 18:27  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Ну, таблица истинности "исключаещего ИЛИ" проста - исключает совпадения. То есть, 1 и 0 в любой комбинации дают 1, а два 0 или две 1 дают 0. В данной ситуации это мало поможет.

ПС Ну да, _guardianangel, прав, я не просчитал варианты. Давно соскачил на С.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 22.09.2013 в 21:05.
akegor на форуме  
Сказали "Спасибо" akegor
nikvas (25.09.2013)
Непрочитано 22.09.2013, 20:53  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Сообщение от nikvas Посмотреть сообщение
Если я беру маску порта "В", то по команде xorwf PORTB, 1; инвертируются все его выходы, а мне надо управлять только одним не трогая другие, они выполняют свои функции.
С какого "художника" ВСЕ выходы инвертируются????? (1 ‹‹ Pb3) равнозначно 00001000b (так кажись в пиковском ассемблере) и по сией маске имеем: если Pb3 = 1 - 1 xor 1 = 0 (инверсия) остальные пины: 0 xor pin_state = pin_state; если Pb3 = 0 - 1 xor 0 = 1 (инверсия) остальные пины: 0 xor pin_state = pin_state.
_guardianangel вне форума  
Непрочитано 22.09.2013, 21:26  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

Сообщение от akegor Посмотреть сообщение
я не просчитал варианты. Давно соскачил на С.
И с СИ давно соскачил!?
Код:
26:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          MOVLW 0x11
                          XORWF PORTB, F
27:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          XORWF PORTB, F
28:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          XORWF PORTB, F
29:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          XORWF PORTB, F
30:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          XORWF PORTB, F
31:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          XORWF PORTB, F
32:                PORTB ^= (1 ‹‹ 4) | (1 ‹‹ 0);
                          XORWF PORTB, F
33:

Последний раз редактировалось nahimovv; 22.09.2013 в 21:29.
nahimovv вне форума  
Сказали "Спасибо" nahimovv
nikvas (25.09.2013)
Непрочитано 23.09.2013, 11:15  
-vitalik-
Вид на жительство
 
Аватар для -vitalik-
 
Регистрация: 29.03.2009
Адрес: Бровары, Украина
Сообщений: 326
Сказал спасибо: 1,398
Сказали Спасибо 82 раз(а) в 46 сообщении(ях)
-vitalik- на пути к лучшему
По умолчанию Re: MPLAB, PIC16F84

btfss PortB,3
goto SetBit
bcf PortB,3
goto EndInv
SetBit
bsf PortB,3
EndInv
-vitalik- вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскаж., плиз, как "увидеть" в MPLAB (в Watch) fl olki Микроконтроллеры, АЦП, память и т.д 2 13.08.2009 09:25
MPLab 8.1& HItech Boris_Britva Микроконтроллеры, АЦП, память и т.д 0 05.06.2008 18:54
Кириллица в проектах MPLAB IDE 8.00 X_ela_2 Микроконтроллеры, АЦП, память и т.д 2 22.01.2008 15:26
РАБОТА с MPLAB downkazus Proteus, KiCAD и другие ECAD 10 28.01.2007 13:15
Проблема с внутрисхемным эмулятором MPLAB ICE 2000 AntiLL Микроконтроллеры, АЦП, память и т.д 4 05.07.2006 18:22


Часовой пояс GMT +4, время: 14:54.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot