PIC DIP монтаж ключове / програма брояч

G

Guest

Guest
Аз съм като една програма, която трябва да се чете настройките на 3 DIP ключета и действат различни в зависимост от техните позиции.Аз използвам PIC12f675.Това, което съм се опитва да постигне е да добави стойност към програмата, в противоречие с програмата кажа къде да отида следващата.В зависимост от позициите на DIP ключета, добавената стойност ще бъде между 0-8 и съответния етикет трябва да бъде на точното място, за някои позиции ключ.Ако погледнете например програма, която направих, това изглежда безсмислено, но когато се направи реална програма, всяка комбинация от превключвате настройките ще ръководи програмата за съвсем различен място, а не както е описано в извадката програма.Обяснявам всичко останало, в съответствие с актуалната програма доста добър.Проблемът е светлината никога не се превръща в без значение каква е DIP Switch настройки.Или ако някой има друг начин, че мога да прочетете на 3 DIP превключватели ми кажи какво е то.Ето програмата ...http://home.comcast.net/ ~ millersseven/sub2.asm

 
Здрасти,

Можете ли да ми помогне с ASM код, но в C то много лесно ...
Първо да погледнете на адрес: www.microchipc.com и да прочетете често задавани въпроси.Там ще намерите няколко примера за това как да се чете само първите 3 части от DIP ключ ...
след като прочетете на входа и ги съхраняват в стойност, тогава можете да buile изявление ключ.Ето един линк, който ще ви покаже как да го направя в С и в ASM
http://www.eventhelix.com/RealtimeMantra/Basics/CToAssemblyTranslation3.htm
Така че, във вашата програма ще трябва да прочетете DIP и го сложи в една Вал.след преминаването automatacly ще скочи от ВАЛ, че имате и този на всички.
Още едно нещо, в хардуера, ще трябва да свържете DIP да спра или събарят използване resistros.Не можеш просто да се свърже или изключвате Vcc на ПИН код.
Повече информация можете да намерите на уеб сайта микрочип под отбелязва, ап и switchs.
.
( NO
points will be taken from you! )Ако сте намерили отговора полезен, кликнете върху бутона, който казва
ми помогна.

(NO
точки ще бъдат взети от вас!)Успех.

 
Да, аз вече имам издърпайте нагоре резистори закачен до всеки от ключове.
Е, направих един тон от дългата ръка отстраняване на грешки и аз съм сигурен, че открих проблема.Добавянето на програмата брояч работи добре и в регистъра, да съхранява ключа позиции работи добре, това е само, че някак натопи регистъра не става да се съхраняват в регистъра У.Това е валидно правото команда?
movlw натопи
натопи са вече определени общия регистър на адрес цел RAM 0x21
Това трябва да преместите съдържанието на натопи регистър, регистър право W?

 
Мисля, че кода не е наред
Аз не виждам никаква Прекъсване командване
и снимка Проверете само един път за състоянието на Потапят
копие то на PCL и не я използва на всички
Няма ли Loop в мека
Аз не знам защо използването 0Xxx, когато можете да използвате PORTB, PORTA и др и др.

 
Не е необходимо за прекъсва ....В DIP ключета ще кажа на програмата, в която да отидете право в началото на програмата.Няма да има нужда да промените настройките в средата на програмата.Причината Опитах се пускането на DIP-членки в отделен регистър, защото нищо не работи.Но това, което съм сега следва да продължат да работят.Факт е, че ако просто използвайте arbritrary брой, вместо да се добави към PCL то работилница глоба като би трябвало.И на натопи регистър работи и стойността на 0-8 става поставени в него като това, което трябва да се случи.Но нещо не работи.Аз не съм сигурен какво да кажеш по никакъв линия ...

 
започвамmovlw DIP; движи стойността на натопи да w регистърaddwf PCL, F; добавя W (0 --<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Охлаждам" border="0" />да PCLОтидох в по; ако всички DIP превключватели са изключени или на всички,Отидох в разстояние, а светлината се превръща вОтидох в разстояниеОтидох в разстояниеОтидох в разстояниеОтидох в разстояниеОтидох в разстояниеОтидох в разстояниеОтидох в на

на
movlw b'00100000 "
movwf пина
Отидох в на

отдалечаване

; here the Soft will never Exit from Off Loop

Отидох в разстояние;
тук Софт никога няма Изход от разстояние от пленяване
приключвам

Зелената са изпълнени
Червената е за бъгове
и никога не се изпълняват Жълт

 
Аз все още съм много объркана какво се опитвате да се намира.Червените част е трябвало да бъде там.Това е точно това, което искам да направя за някои настройки Switch DIP.За всеки DIP настройка, различна от всички на разстояние или на всички, искам доведе до просто стойте на разстояние, докато не рестартирате програмата.Въпреки това, ако DIP превключватели са всички отворени (добавете 0 до PCL), или ако всички ключове са затворени (добави 8 до PCL) светлината ще се включи.Жълтата част там се случи, ако DIP настройки са нещо по-различно от всички на разстояние или за всички, той просто продължава на отведоха.Но проблемът е, че никога не е довело включите без значение какви са позициите на DIP ключета са.Имайте предвид, това е само една проба prgram.Когато аз добивам то към работа, вместо на 7 "Отидох в разстояние" Аз съм съществуващ към имам различен етикет за Отидох в зависимост от това, което искате програмата да действа според позиции DIP.

 
Код:започвам

movf натопи, W; движи стойността на натопи да w регистър

BTFSC СТАТУС, Z

Отидох в на

movlw натопи

SUBWF 1, W

BTFSC СТАТУС, Z; тест, ако натопи = 1

Отидох в разстояние

movlw натопи

SUBWF 2, W

BTFSC СТАТУС, Z; тест, ако натопи = 2

Отидох в разстояние

movlw натопи

SUBWF 3, W

BTFSC СТАТУС, Z; тест, ако натопи = 3, и т.н. и т.н.

Отидох в разстояние

movlw натопи

SUBWF 4, Ш

BTFSC СТАТУС, Z

Отидох в разстояние

movlw натопи

SUBWF 5, Ш

BTFSC СТАТУС, Z

Отидох в разстояние

movlw натопи

SUBWF 6, W

BTFSC СТАТУС, Z

Отидох в разстояние

Отидох в на

на

movlw b'00100000 "

movwf пина; U може да промени щифтове с PORTB

Отидох в на

отдалечаване

Сън, намаляване на консумация на енергия

Отидох в разстояние

приключвам

 
Rambo написа:

Е, направих един тон от дългата ръка отстраняване на грешки и аз съм сигурен, че открих проблема.
Добавянето на програмата брояч работи добре и в регистъра, да съхранява ключа позиции работи добре, това е само, че някак натопи регистъра не става да се съхраняват в регистъра У.
Това е валидно правото команда?

movlw натопи

натопи са вече определени общия регистър на адрес цел RAM 0x21

Това трябва да преместите съдържанието на натопи регистър, регистър право W?
 

Welcome to EDABoard.com

Sponsor

Back
Top