реклама на сайте
подробности

 
 
> Простейшая кнопка на PIC
TimR
сообщение Aug 31 2006, 07:26
Сообщение #1





Группа: Новичок
Сообщений: 12
Регистрация: 7-06-06
Пользователь №: 17 852



Привет всем!!!
Пожалуйста помогите разобраться с ерундой. Программа - простейшая кнопка на PIC16F627,
создана в качестве обучаловки. Принцип такой: подаем внешний сигнал 5V на МК (провод естественно общий) на вывод 4 PortB и должен загорается светодиод на PortB,2.
Я уже пробовал задействовать и PortA, и с подтягивающими пробовал - ничего.
Как-то странно, видел много исходников, где "кнопка" делается именно по такому принципу.
В итоге, светодиод либо вообще не загорается, либо горит постоянно. help.gif

(Извиняйте за "нижний пробел" - его как будто нет)
;-----------------------------------------------------------------------------
стандартные установки OptionR, отключение ненужных модулей.
;---------------------------------------------------------------------------------------
Start________btfsc PortB,4 ; если присутствует высокий уровень то
____________goto hight ; переход на hight
____________goto low ; иначе на low
;------------------------------------------------------------
hight________bsf PortB,2 ; "зажечь" 2-й порт
____________call delay ; переход на подпрогу задержки
____________goto Start ; при возврате переход в режим сканирования
;-------------------------------------------
low_________bcf PortB,2 ;
___________ call delay
___________ goto Start
;-------------------------------------------
delay______ задержка........ 1сек
__________ return
;************************
end

Сообщение отредактировал TimR - Aug 31 2006, 07:36
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
upc2
сообщение Sep 5 2006, 09:33
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Вот так ваш код работает

LIST p=16F84 ; PIC16F844 is the target processor

#include "P16F84.INC" ; Include header file

CBLOCK 0x10 ; Temporary storage
pos
dc1
dc2
ENDC
LIST p=16F84 ; PIC16F844 is the target processor

#include "P16F84.INC" ; Include header file

CBLOCK 0x10 ; Temporary storage
ENDC

ORG 0
entrypoint goto start

ORG 4
intvector goto intvector

start clrw ; Zero.

movwf PORTB ; Ensure PORTB is zero before we enable it.
bsf STATUS,RP0 ; Select Bank 1
movlw 0xF0 ; Set port B bits 0-3 as outputs
movwf TRISB ; Set TRISB register.

bcf STATUS,RP0 ; Select Bank 0



;Main loop
loop
btfsc PORTB,4
goto bhight
goto blow

bhight
bsf PORTB,2 ;
call delay ;
goto loop ;

blow
bcf PORTB,2 ;
call delay;
goto loop;

delay movlw 18 ; Outer loop iteration count
movwf dc1
dl1 clrf dc2 ; Initialize inner loop
dl2 nop
nop
decfsz dc2,F
goto dl2
decfsz dc1,F
goto dl1
return

END


У моего компилятора были претензии к PortB и к именам low , hight
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Денис v
сообщение Oct 12 2006, 16:14
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 5-08-06
Пользователь №: 19 348



Цитата(upc2 @ Sep 5 2006, 15:33) *
Вот так ваш код работает
...
У моего компилятора были претензии к PortB и к именам low , hight


А что это за симулятор? Какая программа делает такие красивые картинки?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 18:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016