По команде сдвига RLF
Имеем код бегущего огонька для PIC16F84
Код: Выделить всё
LIST P=PIC16F84A
__CONFIG 0x3FF1
STATUS EQU 0x03
PORTB EQU 0x06
TRISB EQU 0x06
Reg_1 EQU 0x0C
Reg_2 EQU 0x0D
Reg_3 EQU 0x0E
org 0 ; начало программы
; подготовительные моменты
bsf STATUS,5 ; переход в Банк 1
clrf TRISB
bcf STATUS,5 ; переход назад в Банк 0
clrf PORTB ; очистка порта
bsf STATUS,0 ; установка нулевого бита в единицу
; установка сигналов на порту B
m1 rlf PORTB,1 ; <<< сдвиг в регистре PORTB
call Pause ; <<<
goto m1 ; <<< переход на метку (зацикливание)
;delay = 500000 machine cycles
Pause задержка..
return
end
Код: Выделить всё
LIST P=PIC16F676
__CONFIG 0x03115
STATUS EQU 0x03
PORTC EQU 0x07
TRISC EQU 0x07
Reg_1 EQU 0x20
Reg_2 EQU 0x21
Reg_3 EQU 0x22
org 0 ; начало программы
; подготовительные моменты
bsf STATUS,5 ; переход в Банк 1
clrf TRISC
bcf STATUS,5 ; переход назад в Банк 0
clrf PORTC ; очистка порта
bsf STATUS,0 ; установка нулевого бита в единицу
; установка сигналов на порту B
m1 rlf PORTC,1 ; <<< сдвиг в регистре PORTC
call Pause ; <<<
goto m1 ; <<< переход на метку (зацикливание)
;delay = 500000 machine cycles
Pause задержка
return
end
