Вот как она должна выглядеть
1. сначала цикл проверки кнопки
2.если кнопка нажата то перейти в sleep
3.если нажата ДРУГАЯ кнопка или эта же то выйти из sleep(пока pic в sleep).
ПОЖАЛУЙСТА ПОМОГИТЕ
Ответ в вопросепомочь с программой вводящая в sleep микроконтроллер
Мог бы и поторговаться...otest писал(а):...........
sleep
.......
Вот Вам программа, на которой я когда-то учился программированию (еле нашёл).posina писал(а):ПОЖАЛУЙСТА ПОМОГИТЕ
Весьма эпично ...Dmitry Dubrovenko писал(а):на которой я когда-то учился программированию
Лёш, ты сам-то понял, что написАл?dosikus писал(а):дизасма, писанного на С
Код: Выделить всё
processor 16F628A
#include <P16F628A.INC>
__config 0x2138
; _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BODEN_OFF & _MCLRE_ON & _PWRTE_OFF & _WDT_OFF
; & _INTOSC_OSC_NOCLKOUT
; RAM-Variable
OPTION_TMR0 EQU 0X01;
PORTA_TRISA EQU 0X05;
PORTB_TRISB EQU 0X06;
CMCON EQU 0X1F;
INTCON EQU 0X0B;
; Program
Org 0x0000
CLRW;
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0x07 ;
MOVWF CMCON;компоратор выключить
BSF STATUS,RP0 ;банк
BCF STATUS,RP1 ; 1
MOVLW 0XC0
MOVWF OPTION_TMR0; подтягивающие резисторы отключены и прерывание по переднему фронту.
CLRW
MOVLW 0X00
MOVWF PORTA_TRISA; Порты А на выход
MOVLW 0XFF
MOVWF PORTB_TRISB;порты B на вход
BCF INTCON,7 ;При выходе из Sleep не идти в вектор прерывания.
CLRW;
SLEEP;спим
GOTO MET
MET BCF STATUS,RP0 ;
BCF STATUS,RP1
BSF PORTA_TRISA,0;включить порт а1
LADR_0x0019;зацикливание
GOTO LADR_0x0019
End

Можно просто включить телек. Но, зараза, для этого его надо сначала купить.posina писал(а):Ну нельзя просто привести
Вот это зачем нужно ?; RAM-Variable
OPTION_TMR0 EQU 0X01;
PORTA_TRISA EQU 0X05;
PORTB_TRISB EQU 0X06;
CMCON EQU 0X1F;
INTCON EQU 0X0B;
Это зачем ? Прерывания выключены.MOVLW 0XC0
MOVWF OPTION_TMR0
Какое из этих условий выполняется у тебя в программе?Микроконтроллер выйдет из режима SLEEP по одному из следующих событий:
1. внешний сброс по сигналу на входе -MCLR;
2. переполнение сторожевого таймера WDT (если он разрешен);
3. периферийное прерывание (по сигналу INT, изменение уровня сигнала на входах RB7:RB4 и др.).
это для отключения подтягивающих резисторов внутренних.MOVLW 0XC0
MOVWF OPTION_TMR0
Если это выкинуть и написать нормальный текст, тоже будет работать.Насчет этого нет вопросов это проверенно и работает 100%
Мягко говоря , это заблуждение.это для отключения подтягивающих резисторов