Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.2.2017
Репутация: нет Всего: нет
|
Здравствуйте, помогите пожалуйста с кодом. В програмирование к сожалению не шарю. Есть прошивка от Олега для МК PIC18F252. При включении устройства мк находится в режиме ожидании кода с COM порта, когда мк получает код, зажигается лампочка 1, дальше по нажатию кнопки этот код выходит в другое устройство и лампочка 1 тухнет, зажигается лампочка 2 и остается в таком состоянии. Нужно чтобы устройство перезагружалось или как правильней сделать не знаю, вобщем чтобы мк переходил в первоначальное положение. Пробывал сделать петлю не получилось, не компелируется, видно что-то не так сделал. Подскажите что добавить в код чтобы соблюдалось условие. Спасибо. Вот код: Код |
;******************************************************************************************** LIST P=18F252 #include <P18F252.INC> radix dec ;******************************************************************************************** CONFIG OSC = HSPLL CONFIG WDT = OFF CONFIG LVP = OFF ;******************************************************************************************** NLF EQU 0x021
bank0 EQU 0x022 bank1 EQU 0x023 bank2 EQU 0x024 bank3 EQU 0x025 bank4 EQU 0x026 bank5 EQU 0x027
REGISTR_STATUS EQU 0x028
ADRES EQU 0x029
REGISTR_PRIEM EQU 0x030
reg1 EQU 0x050 reg2 EQU 0x051 reg3 EQU 0x052 reg4 EQU 0x053 reg5 EQU 0x054 reg6 EQU 0x055 reg7 EQU 0x056 reg8 EQU 0x057 reg9 EQU 0x058 reg10 EQU 0x059
reg11 EQU 0x05A reg12 EQU 0x05B reg13 EQU 0x05C reg14 EQU 0x05D reg15 EQU 0x05E reg16 EQU 0x05F reg17 EQU 0x060 reg18 EQU 0x061 reg19 EQU 0x062 reg20 EQU 0x063
reg21 EQU 0x064 reg22 EQU 0x065 reg23 EQU 0x066 reg24 EQU 0x067 reg25 EQU 0x068 reg26 EQU 0x069 reg27 EQU 0x06A reg28 EQU 0x06B reg29 EQU 0x06C reg30 EQU 0x06D
reg31 EQU 0x06E reg32 EQU 0x06F reg33 EQU 0x070 reg34 EQU 0x071 reg35 EQU 0x072 reg36 EQU 0x073 reg37 EQU 0x074 reg38 EQU 0x075 reg39 EQU 0x076 reg40 EQU 0x077
;******************************************************************************************** ORG 0x0000 ;******************************************************************************************** ;******************************** bsf TRISC,6 bsf TRISC,7 ;настроил порты bsf RCSTA,7 ;******************************** movlw d'129' ;настройка бодовой скорости movwf SPBRG ;******************************** movlw b'10100110' ;пеедача ВКЛ movwf TXSTA ;******************************** movlw b'10110000' ;прием ВКЛ movwf RCSTA ;******************************** bsf REGISTR_STATUS,0 werh ;************************************* movlw b'00000110' ;порт А как цифровой ввод вывод movwf ADCON1 ;******************************** bcf TRISA,0 bcf TRISA,1 bsf TRISA,2 bcf TRISA,3 bsf TRISA,4 bsf TRISA,5 ;******************************** bsf TRISC,0 bsf TRISC,1 bsf TRISC,2 bsf TRISC,3 bsf TRISC,4 bsf TRISC,5 bsf TRISC,6 bsf TRISC,7 ;******************************** bsf TRISB,0 bsf TRISB,1 bsf TRISB,2 bsf TRISB,3 bsf TRISB,4 bsf TRISB,5 bsf TRISB,6 bsf TRISB,7 bcf INTCON2,7 ;******************************** clrf LATA clrf LATC
call prinimaem movwf reg40 call prinimaem movwf reg39 call prinimaem movwf reg38 call prinimaem movwf reg37 call prinimaem movwf reg36 call prinimaem movwf reg35 call prinimaem movwf reg34 call prinimaem movwf reg33 call prinimaem movwf reg32 call prinimaem movwf reg31 call prinimaem movwf reg30 call prinimaem movwf reg29 call prinimaem movwf reg28 call prinimaem movwf reg27 call prinimaem movwf reg26 call prinimaem movwf reg25 call prinimaem movwf reg24 call prinimaem movwf reg23 call prinimaem movwf reg22 call prinimaem movwf reg21 call prinimaem movwf reg20 call prinimaem movwf reg19 call prinimaem movwf reg18 call prinimaem movwf reg17 call prinimaem movwf reg16 call prinimaem movwf reg15 call prinimaem movwf reg14 call prinimaem movwf reg13 call prinimaem movwf reg12 call prinimaem movwf reg11 call prinimaem movwf reg10 call prinimaem movwf reg9 call prinimaem movwf reg8 call prinimaem movwf reg7 call prinimaem movwf reg6 call prinimaem movwf reg5 call prinimaem movwf reg4 call prinimaem movwf reg3 call prinimaem movwf reg2 call prinimaem movwf reg1
movff reg1,TXREG btfss TXSTA,TRMT bra $-2 movff reg2,TXREG btfss TXSTA,TRMT bra $-2
movff reg3,TXREG btfss TXSTA,TRMT bra $-2
movff reg4,TXREG btfss TXSTA,TRMT bra $-2
bsf LATA,0 ;светодио
front2 movlw d'30' movwf bank5 front btfss PORTA,2 bra front2 decfsz bank5,f bra front
bra wibros
;************************************** ПРИЕМ БИТ prinimaem
;*************************************
btfss PIR1,RCIF bra $-2 movff RCREG,REGISTR_PRIEM
bcf REGISTR_PRIEM,7 bcf REGISTR_PRIEM,6 bcf REGISTR_PRIEM,5 bcf REGISTR_PRIEM,4
movlw high NON_LINEAR_FUNCTION movwf PCLATH rlncf REGISTR_PRIEM,w addlw low NON_LINEAR_FUNCTION btfsc STATUS,C incf PCLATH,f movwf PCL
NON_LINEAR_FUNCTION
retlw B'00001000' retlw B'10000000' retlw B'01000000' retlw B'11001000' retlw B'00100000' retlw B'10101000' retlw B'01101000' retlw B'11100000' retlw B'00010000' retlw B'10011000' retlw B'01011000' retlw B'11010000' retlw B'00111000' retlw B'10110000' retlw B'01110000' retlw B'11111000'
;************************************** wibros
call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01
movlw d'40' movwf bank0 wibros34
movlw d'3' movwf bank5 wibros31 btfss reg1,7 bcf STATUS,C btfsc reg1,7 bsf STATUS,C
rrcf reg40 rrcf reg39 rrcf reg38 rrcf reg37 rrcf reg36 rrcf reg35 rrcf reg34 rrcf reg33 rrcf reg32 rrcf reg31 rrcf reg30 rrcf reg29 rrcf reg28 rrcf reg27 rrcf reg26 rrcf reg25 rrcf reg24 rrcf reg23 rrcf reg22 rrcf reg21 rrcf reg20 rrcf reg19 rrcf reg18 rrcf reg17 rrcf reg16 rrcf reg15 rrcf reg14 rrcf reg13 rrcf reg12 rrcf reg11 rrcf reg10 rrcf reg9 rrcf reg8 rrcf reg7 rrcf reg6 rrcf reg5 rrcf reg4 rrcf reg3 rrcf reg2 rrcf reg1
decfsz bank5,f bra wibros31
movlw d'5' movwf bank5 wibros3 btfss reg1,7 bcf STATUS,C btfsc reg1,7 bsf STATUS,C
rrcf reg40 rrcf reg39 rrcf reg38 rrcf reg37 rrcf reg36 rrcf reg35 rrcf reg34 rrcf reg33 rrcf reg32 rrcf reg31 rrcf reg30 rrcf reg29 rrcf reg28 rrcf reg27 rrcf reg26 rrcf reg25 rrcf reg24 rrcf reg23 rrcf reg22 rrcf reg21 rrcf reg20 rrcf reg19 rrcf reg18 rrcf reg17 rrcf reg16 rrcf reg15 rrcf reg14 rrcf reg13 rrcf reg12 rrcf reg11 rrcf reg10 rrcf reg9 rrcf reg8 rrcf reg7 rrcf reg6 rrcf reg5 rrcf reg4 rrcf reg3 rrcf reg2 rrcf reg1
btfss STATUS,C call LOG_01 btfsc STATUS,C call LOG_11
decfsz bank5,f bra wibros3
decfsz bank0,f bra wibros34
call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01 call LOG_01
bcf LATA,0 ;СВЕТОДИОД bsf LATA,1 ;СВЕТОДИОД
nop bra $-2
;******************************************************************************************** LOG_01
btfss REGISTR_STATUS,0 bra LOG_00
bsf LATA,3 movlw d'255' movwf bank1 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz bank1,f bra $-40
bcf REGISTR_STATUS,0
return ;***************************************** LOG_00
btfsc REGISTR_STATUS,0 bra LOG_01
bcf LATA,3 movlw d'255' movwf bank1 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz bank1,f bra $-40 bsf REGISTR_STATUS,0
return ;******************************************************************************************** LOG_11
btfss REGISTR_STATUS,0 bra LOG_10
bsf LATA,3 movlw d'127' movwf bank1 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz bank1,f bra $-40 bcf LATA,3 movlw d'127' movwf bank1 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz bank1,f bra $-40
bsf REGISTR_STATUS,0
return ;***************************************** LOG_10
btfsc REGISTR_STATUS,0 bra LOG_11
bcf LATA,3 movlw d'127' movwf bank1 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz bank1,f bra $-40 bsf LATA,3 movlw d'127' movwf bank1 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz bank1,f bra $-40
bcf REGISTR_STATUS,0
return ;*****************************************
END
|
Присоединённый файл ( Кол-во скачиваний: 0 )
исходник.txt 15,88 Kb
|