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

Подскажите Чего Не Делаю Правильно


StasRadeon

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

здравствуйте, вот хотел сделать маленький blinking led в ассемблере с нажатием кнопкой. подскажите чего не делаю правильно ?

#include p16f887.inc
ORG	 0x000		
goto main		
cblock 0x20
d1
endc
main
bsf STATUS, RP0	 ;//bank 1
movlw b'00010000'	 ;
movwf TRISB	 ;
bcf STATUS, RP0		 ;//bank 0
knop
btfss PORTB,4
call Loop;
goto knop;
Loop
clrf PORTB	
bsf PORTB,0			
call delay	
bcf PORTB,0  
call delay	

goto Loop
delay
movlw 0x85 ; //400us	

movwf d1	
delay_0
decfsz d1,f			

goto delay_0			
return	
End	

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

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

шапки программ в мплабе для кого на каждый камень лежат?

;**********************************************************************
;   This file is a basic code template for assembly code generation   *
;   on the PIC16F887. This file contains the basic code			   *
;   building blocks to build upon.								    *
;																	 *
;   Refer to the MPASM User's Guide for additional information on	 *
;   features of the assembler (Document DS33014).					 *
;																	 *
;   Refer to the respective PIC data sheet for additional			 *
;   information on the instruction set.							   *
;																	 *
;**********************************************************************
;																	 *
;    Filename:        xxx.asm										   *
;    Date:														    *
;    File Version:												    *
;																	 *
;    Author:														  *
;    Company:														 *
;																	 *
;																	 *
;**********************************************************************
;																	 *
;    Files Required: P16F887.INC									  *
;																	 *
;**********************************************************************
;																	 *
;    Notes:														   *
;																	 *
;**********************************************************************


   list        p=16f887    ; list directive to define processor
   #include    <p16f887.inc>    ; processor specific variable definitions


; '__CONFIG' directive is used to embed configuration data within .asm file.
; The labels following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.

   __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
   __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V



;***** VARIABLE DEFINITIONS
w_temp        EQU    0x7D        ; variable used for context saving
status_temp    EQU    0x7E        ; variable used for context saving
pclath_temp    EQU    0x7F        ; variable used for context saving


;**********************************************************************
   ORG	 0x000			 ; processor reset vector

   nop
     goto    main			  ; go to beginning of program


   ORG	 0x004			 ; interrupt vector location

   movwf   w_temp		    ; save off current W register contents
   movf    STATUS,w		  ; move status register into W register
   movwf    status_temp	   ; save off contents of STATUS register
   movf    PCLATH,w      ; move pclath register into w register
   movwf    pclath_temp      ; save off contents of PCLATH register

; isr code can go here or be located as a call subroutine elsewhere

   movf    pclath_temp,w      ; retrieve copy of PCLATH register
   movwf    PCLATH          ; restore pre-isr PCLATH register contents
   movf    status_temp,w	 ; retrieve copy of STATUS register
   movwf    STATUS		    ; restore pre-isr STATUS register contents
   swapf   w_temp,f
   swapf   w_temp,w		  ; restore pre-isr W register contents
   retfie				    ; return from interrupt



main

; remaining code goes here




; example of preloading EEPROM locations

   ORG    0x2100
   DE    5, 4, 3, 2, 1

   END					   ; directive 'end of program'

где возврат из процедуры Loop?

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

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

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

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

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

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

хоть убей не понимаю

возврат понимаю когда я убираю руку лед долженъ погасица и назад в кноп й ждать пока я нажиму ешё раз

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

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

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

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

delay
movlw d'100' ;
movwf d1													

поставил так , чтобы не мочится

на вопрос , когда я нажимаю он тогда должен заработать ,а он сразу зарабатываетса и не реагиривает на кнопку.

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

исправленный код покажи

#include p16f887.inc
ORG	 0x000		
goto main			
cblock 0x20
d1
endc
main
bsf STATUS, RP0 ;//bank 1
movlw b'00010000'	 ;
movwf TRISB^0x80	 ;
bcf STATUS, RP0	 ;//bank 0
knop
btfss PORTB,4
call Loop;
goto knop;
Loop
clrf PORTB	
bsf PORTB,0					
call delay	
bcf PORTB,0
call delay	
goto knop
delay
movlw D'100' ;
movwf d1	
delay_0
decfsz d1,f					
goto delay_0				
return
Nop
End

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

в пост #27 шапка оформления кода для кого выложена?

#include p16f887.inc // где указание компилятору с каким камнем работаем?
					 // где биты конфигурации?
ORG	 0x000		
goto main			
cblock 0x20 // <- где должен описывается блок переменных?
d1
endc
main
bsf STATUS, RP0 ;//bank 1
movlw b'00010000'	 ;
movwf TRISB^0x80	 ; <- что это?
bcf STATUS, RP0	 ;//bank 0
knop
btfss PORTB,4
call Loop;
goto knop;
Loop
clrf PORTB	
bsf PORTB,0					
call delay	
bcf PORTB,0
call delay	
goto knop // возврат из процедуры return
delay
movlw D'100' ;
movwf d1	
delay_0
decfsz d1,f					
goto delay_0				
return
Nop
End

и инициализации портов АЦП кто выключать будет?

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

быть я в configuration bit установил

movwf TRISB^0x80 стоба сообщение про банк 0 не появлялось


cblock 0x20 // <- где должен описывается блок переменных?
d1
endc

ORG	 0x000		
goto main

bsf STATUS, RP0 ;//bank 1
movlw b'00010000'        ;
movwf TRISB^0x80         ; <- что это?
clrf ANSEL
bcf STATUS, RP0  ;//bank 0


вот так правильно

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

быть я в configuration bit установил

:wall: ну конечно мы тут ясновидящие... Стас сделайте в конце концов шапку как положено...

это сообщение - напоминание что TRISB находится в банке 1 на скорость полета не влияет, не нравятся напоминания

после инклюда ставим:

errorlevel  -302			  ; suppress message 302 from list file

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

знал про

errorlevel -302

но не задумался поставити

подумал ^0x80

_CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _WRT_OFF & _LVP_ON & _CPD_OFF

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

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

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

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

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

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

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

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

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

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

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