Курсовая работа - Блок управления позиционером спутниковой антенны / Код программы
.docКод программы:
PORTA equ 0x05 ;присвоение регитру имени
PORTB equ 0x06 ;присвоение регитру имени
STATUS equ 0x03 ;присвоение регитру имени
TMR0 equ 0x01 ;присвоение регитру имени
OLD equ 0x1b ;присвоение регитру имени
TEMP equ 0x1a ;присвоение регитру имени
movlw b'00001111'
tris PORTA ; инициализация порта A
movlw b'10000000'
tris PORTB ; инициализация порта B
movlw b'00000001'
movwf OLD
start
prov
clrf TMR0
btfss PORTB, 0x07
goto prov
movlw b'00000001'
subwf PORTA, 0
btfsc STATUS, 0x02
goto poz_1
movlw b'00000010'
subwf PORTA, 0
btfsc STATUS, 0x02
goto poz_2
movlw b'00000100'
subwf PORTA, 0
btfsc STATUS, 0x02
goto poz_3
movlw b'00001000'
subwf PORTA, 0
btfsc STATUS, 0x02
goto poz_4
clrf TMR0
bsf PORTB, 0x03
goto prov
poz_1
call reset
movlw b'00000001'
call stop
movlw b'00000001'
movwf TEMP
call shag
movlw b'00000001'
movwf OLD
goto start
poz_2
call reset
movlw b'00000010'
call stop
movlw b'00000010'
movwf TEMP
call shag
movlw b'00000010'
movwf OLD
goto start
poz_3
call reset
movlw b'00000100'
call stop
movlw b'00000100'
movwf TEMP
call shag
movlw b'00000100'
movwf OLD
goto start
poz_4
call reset
movlw b'00001000'
call stop
movlw b'00001000'
movwf TEMP
call shag
movlw b'00001000'
movwf OLD
goto start
reset
bcf PORTB, 0x03
return
shag
subwf OLD, 0
btfss STATUS, 0x01
goto zapad
goto vostok
vostok
subwf TMR0, 0
btfss STATUS, 0x02
goto danger
bcf PORTB, 0x02
bsf PORTB, 0x01
bsf PORTB, 0x00
bcf PORTB, 0x00
en_v
decfsz TMR0, 1
goto enginev
return
enginev
bsf PORTB, 0x00
bcf PORTB, 0x00
goto en_v
zapad
movf OLD, 0
subwf TEMP,0
subwf TMR0, 0
btfss STATUS, 0x02
goto danger
bcf PORTB, 0x02
bcf PORTB, 0x01
bsf PORTB, 0x00
bcf PORTB, 0x00
en_z
decfsz TMR0, 1
goto enginez
return
enginez
bsf PORTB, 0x00
bcf PORTB, 0x00
goto en_z
danger
bsf PORTB, 0x02
goto prov
stop
subwf OLD, 0
btfsc STATUS, 0x02
goto prov
return
end