Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 16:43   #1
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию сделать бегущую строку диодов, используя PIC16F877

у меня задача... нужно сделать бегущую строку диодов, используя PIC16F877...я это сделал (программу в MPLab и собрал схему в Протеусе)... теперь мне нада туда както вставить кнопку (в протеусе) чтоб она делала прерывание и пускала бегущую строку в другую сторону... тоесть при каждом нажатии на кнопку бегущая строка должна пускаться в обратном направлении с текущей горящей лампочки (с сохранением портов)...

Добавлено через 2 минуты 21 секунду
вот текст моей программы :

Код:
#include <P16F877.inc>
count equ 0ch
ORG 0
START: bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0
RUN: BSF PORTB,0
BSF PORTB,1
CALL DELAY
clrf PORTB
BSF PORTB,1
BSF PORTB,2
CALL DELAY
clrf PORTB
BSF PORTB,2
BSF PORTB,3
CALL DELAY
clrf PORTB
BSF PORTB,3
BSF PORTB,4
CALL DELAY
clrf PORTB
BSF PORTB,4
BSF PORTB,5
CALL DELAY
clrf PORTB
BSF PORTB,5
BSF PORTB,6
CALL DELAY
clrf PORTB
BSF PORTB,6
BSF PORTB,7
CALL DELAY
clrf PORTB
BSF PORTB,6
BSF PORTB,5
CALL DELAY
clrf PORTB
BSF PORTB,5
BSF PORTB,4
CALL DELAY
clrf PORTB
BSF PORTB,4
BSF PORTB,3
CALL DELAY
clrf PORTB
BSF PORTB,3
BSF PORTB,2
CALL DELAY
clrf PORTB
BSF PORTB,2
BSF PORTB,1
CALL DELAY
clrf PORTB
goto RUN
BSF PORTB,1
BSF PORTB,0
CALL DELAY
clrf PORTB
DELAY: movlw .5000 ;AA9
movwf count
LOOP: DECFSZ count,f
goto LOOP
return
end
END.
нада добавить в нее прерывание (наверна) чтоб работало при нажатии на кнопку...
схума на протеусе вложена

помогите кто чем может =(
Изображения
Тип файла: jpg протеус.jpg (47.8 Кб, 140 просмотров)

Последний раз редактировалось rpy3uH; 28.05.2009 в 16:54.
buba3230 вне форума Ответить с цитированием
Старый 27.05.2009, 13:58   #2
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
Восклицание помогите исправить ошибки :

Код:
#include <P16F877.INC>
flag EQU 0x30;
ORG 0;
bsf STATUS,RP0
clrf TRISB
bcf		STATUS,RP0
GOTO    START;
ORG 4;
MOVWF	rw;
SWAPF	STATUS,W;
MOVWF	RSTAT;
BTFSS	INTCIN,INTF;
GOTO	INTERRUPT;
INCF	FLAG;
MOVF	FLAG,W;
SUBLW	.2;
MOVLW	.1;
BTFCS	STATUS,Z;
MOVWF	FLAG;
BCF		INTCON,INTF;
INTERRUPT:
SWAPF	RSTAT,W;
MOVWF	STATUS;
SWAPF	RW,f;
SWAPF	RW,W;
RETFIE;
START:
MOVLW	.1;
MOVWF	FLAG;
IF BTFSS	FLAG,1;  (тут нада както проверить равняется ли ФЛАГ=1)
label:
MOVLW	b'11000000';
MOVWF	PORTD;
RRF		PORTD,1;
GOTO	label;
ELSE
label2:
;MOVLW	b'11000000';
;MOVWF	PORTD;
RLF		PORTD,1;
GOTO	label2;
ENDIF;
END
;END

Последний раз редактировалось rpy3uH; 28.05.2009 в 16:54.
buba3230 вне форума Ответить с цитированием
Старый 05.06.2009, 17:59   #3
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
Восклицание новая версия проги.... теперь нада сделать прерывание, но не могу посахранять регистры (((

Код:
#include <P16F877.INC>
FLAG EQU 0x30;
      ORG 0;
      bsf STATUS,RP0
      clrf TRISB
      GOTO START
      bcf          STATUS,RP0
      ORG 4;

	MOVWF	W_TEMP;
	SWAPF	STATUS,W;
	clrf	STATUS;
	MOVWF	STATUS_TEMP;
	MOVF	PCLATH,w;
	MOVWF	PCLATH_TEMP;

      BTFSS     INTCON,INTF;
      GOTO     INTERRUPT;
      INCF     FLAG,1;
      MOVF     FLAG,W;
      SUBLW     .2;
      MOVLW     .1;
      BTFSC    STATUS,Z;
      MOVWF     FLAG;
      BCF          INTCON,INTF;
INTERRUPT:
	MOVf	PCLATH_TEMP,w;
	MOVWF	PCLATH;
	SWAPF	STATUS_TEMP,w;
	MOVWF	STATUS;
	SWAPF	W_TEMP,F;
	SWAPF	W_TEMP,w;
	RETFIE;
START:
        MOVLW     .1;
        MOVWF     FLAG;
BTFSS     FLAG,1;
goto		label;
goto 		label2;
label:
        MOVLW     b'11000000';
        MOVWF     PORTD;
        RRF          PORTD,1;
        GOTO     label;
label2:
        RLF          PORTD,1;
        GOTO     label2;
END
вложение с ошибками ниже, кто че подскажет ?
Изображения
Тип файла: jpg ошибки.jpg (41.2 Кб, 152 просмотров)

Последний раз редактировалось rpy3uH; 05.06.2009 в 18:19.
buba3230 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как при нажатии на строку в Listbox передавать нажатую строку в переменную Михаил Юрьевич Общие вопросы Delphi 5 16.03.2009 12:59
имя может встречаться несколько раз, как используя pos найти все вхождения имени в строку milton Паскаль, Turbo Pascal, PascalABC.NET 2 09.12.2008 22:34
Строку сделать столбцом Joyst1k Microsoft Office Excel 13 23.12.2007 11:29
как сделать в memo строку не 256 символов, а 1024 например. Alar Компоненты Delphi 0 29.10.2006 18:46