27,351 → 27,288 |
Function receive() As Byte |
|
If ( (rcsta.OERR = 1) ) Then |
020E A2AB BTFSS gbl_rcsta,1 |
0210 D002 BRA label268438550 |
0216 label268438550 |
0204 A2AB BTFSS gbl_rcsta,1 |
0206 D002 BRA label268438550 |
020C label268438550 |
|
rcsta.CREN = 0 |
0212 98AB BCF gbl_rcsta,4 |
0208 98AB BCF gbl_rcsta,4 |
|
rcsta.CREN = 1 |
0214 88AB BSF gbl_rcsta,4 |
020A 88AB BSF gbl_rcsta,4 |
|
End If |
Do While (pir1.RCIF = 0) |
0216 AA9E BTFSS gbl_pir1,5 |
0218 D7FE BRA label268438550 |
020C AA9E BTFSS gbl_pir1,5 |
020E D7FE BRA label268438550 |
|
Loop |
receive = rcreg |
021A 50AE MOVF gbl_rcreg, W |
021C 6E0A MOVWF CompTempVarRet489 |
0210 50AE MOVF gbl_rcreg, W |
0212 6E07 MOVWF CompTempVarRet489 |
|
|
End Function |
021E 0012 RETURN |
0214 0012 RETURN |
|
|
Sub send(c As Byte) |
|
Do while (pir1 & (1 << TXIF)) = 0 Loop |
0204 label268438561 |
0204 A89E BTFSS gbl_pir1,4 |
0206 D7FE BRA label268438561 |
0216 label268438561 |
0216 A89E BTFSS gbl_pir1,4 |
0218 D7FE BRA label268438561 |
|
txreg = c |
0208 500A MOVF send_00000_arg_c, W |
020A 6EAD MOVWF gbl_txreg |
021A 5004 MOVF send_00000_arg_c, W |
021C 6EAD MOVWF gbl_txreg |
|
End Sub |
020C 0012 RETURN |
021E 0012 RETURN |
|
|
Sub delay(cas As Byte) |
|
Dim i As Byte |
Dim x As Byte |
Do while i <= cas |
0220 label268438570 |
0220 5005 MOVF delay_00000_1_i, W |
0222 5C04 SUBWF delay_00000_arg_cas, W |
0224 A0D8 BTFSS STATUS,C |
|
Do While x <= 100 |
0228 5006 MOVF delay_00000_1_x, W |
022A 0864 SUBLW 0x64 |
022C E305 BNC label268438574 |
|
Call receive() |
022E EC02F001 CALL receive_00000 |
|
x=x+1 |
0232 2806 INCF delay_00000_1_x, W |
0234 6E06 MOVWF delay_00000_1_x |
|
loop |
0236 D7F8 BRA label4026532417 |
0238 label268438574 |
|
i=i+1 |
0238 2805 INCF delay_00000_1_i, W |
023A 6E05 MOVWF delay_00000_1_i |
|
loop |
023C D7F1 BRA label268438570 |
|
|
End Sub |
0226 0012 RETURN |
0228 label4026532417 |
|
|
Sub main() |
|
Dim motors As Byte |
Dim sensors As Byte |
Dim leds As Byte |
Dim leds1 As Byte |
Dim buttons As Byte |
Dim i As Long |
|
'NASTAVENI IO |
lata=0xFF |
0220 6889 SETF gbl_lata |
023E 6889 SETF gbl_lata |
|
latb=0 |
0222 6A8A CLRF gbl_latb |
0240 6A8A CLRF gbl_latb |
|
latc=0xFF |
0224 688B SETF gbl_latc |
0242 688B SETF gbl_latc |
|
trisa=0xF0 |
0226 0EF0 MOVLW 0xF0 |
0228 6E92 MOVWF gbl_trisa |
0244 0EF0 MOVLW 0xF0 |
0246 6E92 MOVWF gbl_trisa |
|
trisb=0x3F |
022A 0E3F MOVLW 0x3F |
022C 6E93 MOVWF gbl_trisb |
0248 0E3F MOVLW 0x3F |
024A 6E93 MOVWF gbl_trisb |
|
trisc=0x9F |
022E 0E9F MOVLW 0x9F |
0230 6E94 MOVWF gbl_trisc |
024C 0E9F MOVLW 0x9F |
024E 6E94 MOVWF gbl_trisc |
|
|
'VYPNOUT ADC |
adcon1=0xC6 |
0232 0EC6 MOVLW 0xC6 |
0234 6EC1 MOVWF gbl_adcon1 |
0250 0EC6 MOVLW 0xC6 |
0252 6EC1 MOVWF gbl_adcon1 |
|
adcon0=0xC0 |
0236 0EC0 MOVLW 0xC0 |
0238 6EC2 MOVWF gbl_adcon0 |
0254 0EC0 MOVLW 0xC0 |
0256 6EC2 MOVWF gbl_adcon0 |
|
|
'UART 9600bps |
spbrg=64 |
023A 0E40 MOVLW 0x40 |
023C 6EAF MOVWF gbl_spbrg |
0258 0E40 MOVLW 0x40 |
025A 6EAF MOVWF gbl_spbrg |
|
txsta = txsta & ~(1 << BRGH) |
023E 0EFB MOVLW 0xFB |
0240 14AC ANDWF gbl_txsta, W |
0242 6EAC MOVWF gbl_txsta |
025C 0EFB MOVLW 0xFB |
025E 14AC ANDWF gbl_txsta, W |
0260 6EAC MOVWF gbl_txsta |
|
txsta = txsta | (1 << TXEN) |
0244 0E20 MOVLW 0x20 |
0246 10AC IORWF gbl_txsta, W |
0248 6EAC MOVWF gbl_txsta |
0262 0E20 MOVLW 0x20 |
0264 10AC IORWF gbl_txsta, W |
0266 6EAC MOVWF gbl_txsta |
|
rcsta = rcsta | (1 << CREN) |
024A 0E10 MOVLW 0x10 |
024C 10AB IORWF gbl_rcsta, W |
024E 6EAB MOVWF gbl_rcsta |
0268 0E10 MOVLW 0x10 |
026A 10AB IORWF gbl_rcsta, W |
026C 6EAB MOVWF gbl_rcsta |
|
rcsta = rcsta | (1 << SPEN) |
0250 0E80 MOVLW 0x80 |
0252 10AB IORWF gbl_rcsta, W |
0254 6EAB MOVWF gbl_rcsta |
026E 0E80 MOVLW 0x80 |
0270 10AB IORWF gbl_rcsta, W |
0272 6EAB MOVWF gbl_rcsta |
|
|
motors = 0x00 |
0274 6A01 CLRF main_1_motors |
|
|
leds = 0xFF |
0256 6803 SETF main_1_leds |
lata = 0x0E |
0276 0E0E MOVLW 0x0E |
0278 6E89 MOVWF gbl_lata |
|
leds1 = 0x0F |
0258 0E0F MOVLW 0x0F |
025A 6E04 MOVWF main_1_leds1 |
Call delay(200) |
027A 0EC8 MOVLW 0xC8 |
027C 6E04 MOVWF delay_00000_arg_cas |
027E EC10F001 CALL delay_00000 |
|
lata = 0x0D |
0282 0E0D MOVLW 0x0D |
0284 6E89 MOVWF gbl_lata |
|
motors = 0x00 |
025C 6A01 CLRF main_1_motors |
Call delay(200) |
0286 0EC8 MOVLW 0xC8 |
0288 6E04 MOVWF delay_00000_arg_cas |
028A EC10F001 CALL delay_00000 |
|
|
Do while 1 |
025E label268438595 |
lata = 0x0B |
028E 0E0B MOVLW 0x0B |
0290 6E89 MOVWF gbl_lata |
|
|
buttons = portb |
025E 5081 MOVF gbl_portb, W |
0260 6E05 MOVWF main_1_buttons |
Call delay(200) |
0292 0EC8 MOVLW 0xC8 |
0294 6E04 MOVWF delay_00000_arg_cas |
0296 EC10F001 CALL delay_00000 |
|
|
If (buttons.1)=0 Then |
0262 B205 BTFSC main_1_buttons,1 |
0264 D022 BRA label268438598 |
02AA label268438598 |
lata = 0x07 |
029A 0E07 MOVLW 0x07 |
029C 6E89 MOVWF gbl_lata |
|
i=0 |
0266 6A06 CLRF main_1_i |
0268 6A07 CLRF main_1_i+D'1' |
026A 6A08 CLRF main_1_i+D'2' |
026C 6A09 CLRF main_1_i+D'3' |
Call delay(200) |
029E 0EC8 MOVLW 0xC8 |
02A0 6E04 MOVWF delay_00000_arg_cas |
02A2 EC10F001 CALL delay_00000 |
|
leds1 = leds1 - 1 |
026E 0404 DECF main_1_leds1, W |
0270 6E04 MOVWF main_1_leds1 |
|
lata = leds1 |
0272 5004 MOVF main_1_leds1, W |
0274 6E89 MOVWF gbl_lata |
motors = 0x77 |
02A6 0E77 MOVLW 0x77 |
02A8 6E01 MOVWF main_1_motors |
|
Do while i <= 500000 |
0276 label268438603 |
0276 5009 MOVF main_1_i+D'3', W |
0278 0800 SUBLW 0x00 |
027A E108 BNZ label268438604 |
027C 5008 MOVF main_1_i+D'2', W |
027E 0807 SUBLW 0x07 |
0280 E105 BNZ label268438604 |
0282 5007 MOVF main_1_i+D'1', W |
0284 08A1 SUBLW 0xA1 |
0286 E102 BNZ label268438604 |
0288 5006 MOVF main_1_i, W |
028A 0820 SUBLW 0x20 |
028C label268438604 |
028C E202 BC label4026532463 |
028E AE09 BTFSS main_1_i+D'3',7 |
0290 D008 BRA label268438608 |
0292 label4026532463 |
|
i=i+1 |
0292 2A06 INCF main_1_i, F |
0294 B4D8 BTFSC STATUS,Z |
0296 2A07 INCF main_1_i+D'1', F |
0298 B4D8 BTFSC STATUS,Z |
029A 2A08 INCF main_1_i+D'2', F |
029C B4D8 BTFSC STATUS,Z |
029E 2A09 INCF main_1_i+D'3', F |
Call delay(100) |
02AA 0E64 MOVLW 0x64 |
02AC 6E04 MOVWF delay_00000_arg_cas |
02AE EC10F001 CALL delay_00000 |
|
loop |
02A0 D7EA BRA label268438603 |
02A2 label268438608 |
|
motors = motors + 0x11 |
02A2 0E11 MOVLW 0x11 |
02A4 2401 ADDWF main_1_motors, W |
02A6 6E01 MOVWF main_1_motors |
|
|
elseif (buttons.4)=0 Then |
02A8 D023 BRA label268438619 |
02AA B805 BTFSC main_1_buttons,4 |
02AC D021 BRA label268438619 |
02F0 label268438619 |
Do while 1 |
02B2 label268438640 |
|
i=0 |
02AE 6A06 CLRF main_1_i |
02B0 6A07 CLRF main_1_i+D'1' |
02B2 6A08 CLRF main_1_i+D'2' |
02B4 6A09 CLRF main_1_i+D'3' |
|
leds1 = leds1 + 1 |
02B6 2804 INCF main_1_leds1, W |
02B8 6E04 MOVWF main_1_leds1 |
sensors =0xFF |
02B2 6802 SETF main_1_sensors |
|
lata = leds1 |
02BA 5004 MOVF main_1_leds1, W |
02BC 6E89 MOVWF gbl_lata |
sensors = Call receive() 'prijmi stav cidel senzoru |
02B4 EC02F001 CALL receive_00000 |
02B8 5007 MOVF CompTempVarRet489, W |
02BA 6E02 MOVWF main_1_sensors |
|
Do while i <= 500000 |
02BE label268438624 |
02BE 5009 MOVF main_1_i+D'3', W |
02C0 0800 SUBLW 0x00 |
02C2 E108 BNZ label268438625 |
02C4 5008 MOVF main_1_i+D'2', W |
02C6 0807 SUBLW 0x07 |
02C8 E105 BNZ label268438625 |
02CA 5007 MOVF main_1_i+D'1', W |
02CC 08A1 SUBLW 0xA1 |
02CE E102 BNZ label268438625 |
02D0 5006 MOVF main_1_i, W |
02D2 0820 SUBLW 0x20 |
02D4 label268438625 |
02D4 E202 BC label4026532468 |
02D6 AE09 BTFSS main_1_i+D'3',7 |
02D8 D008 BRA label268438629 |
02DA label4026532468 |
|
i=i+1 |
02DA 2A06 INCF main_1_i, F |
02DC B4D8 BTFSC STATUS,Z |
02DE 2A07 INCF main_1_i+D'1', F |
02E0 B4D8 BTFSC STATUS,Z |
02E2 2A08 INCF main_1_i+D'2', F |
02E4 B4D8 BTFSC STATUS,Z |
02E6 2A09 INCF main_1_i+D'3', F |
|
loop |
02E8 D7EA BRA label268438624 |
02EA label268438629 |
|
motors = motors - 0x11 |
02EA 0E11 MOVLW 0x11 |
02EC 5C01 SUBWF main_1_motors, W |
02EE 6E01 MOVWF main_1_motors |
|
End If |
|
leds = 0xFF |
02F0 6803 SETF main_1_leds |
If (!((sensors.0) and (sensors.1))) Then |
02BC 6A03 CLRF CompTempVar491 |
02BE A202 BTFSS main_1_sensors,1 |
02C0 D003 BRA label268438645 |
02C2 A002 BTFSS main_1_sensors,0 |
02C4 D001 BRA label268438645 |
02C6 2A03 INCF CompTempVar491, F |
02C8 label268438645 |
02C8 5203 MOVF CompTempVar491, F |
02CA E102 BNZ label268438646 |
02D0 label268438646 |
|
sensors =0xFF |
02F2 6802 SETF main_1_sensors |
motors = 0x77 |
02CC 0E77 MOVLW 0x77 |
02CE 6E01 MOVWF main_1_motors |
|
sensors = Call receive() 'prijmi stav cidel senzoru |
02F4 EC07F001 CALL receive_00000 |
02F8 500A MOVF CompTempVarRet489, W |
02FA 6E02 MOVWF main_1_sensors |
End If |
|
If (!(sensors.2)) Then |
02D0 B402 BTFSC main_1_sensors,2 |
02D2 D002 BRA label268438649 |
02D8 label268438649 |
|
'Bity v bajtu sensors |
'BIT3=LEVE SPODNI, BIT2=PRAVE SPODNI, BIT1=LEVE PREDNI, BIT0=PRAVE PREDNI |
'prislusny bit v nule znamena aktivni senzor |
If (sensors.0)=0 Then |
02FC B002 BTFSC main_1_sensors,0 |
02FE D003 BRA label268438643 |
0306 label268438643 |
motors = 0xF7 |
02D4 0EF7 MOVLW 0xF7 |
02D6 6E01 MOVWF main_1_motors |
|
'pravy predni senzor aktivni |
'rozsvit prislusnou LED k senzoru, zatim jen v promenne |
leds = leds & ~(1 << 1) 'led sviti, kdyz se ji bit znuluje |
0300 0EFD MOVLW 0xFD |
0302 1403 ANDWF main_1_leds, W |
0304 6E03 MOVWF main_1_leds |
|
End If |
End If |
|
If (sensors.1)=0 Then |
0306 B202 BTFSC main_1_sensors,1 |
0308 D003 BRA label268438646 |
0310 label268438646 |
If (!(sensors.3)) Then |
02D8 B602 BTFSC main_1_sensors,3 |
02DA D002 BRA label268438652 |
02E0 label268438652 |
|
'levy predni senzor aktivni |
'rozsvit prislusnou LED k senzoru, zatim jen v promenne |
leds = leds & ~(1 << 2) 'led sviti, kdyz se ji bit znuluje |
030A 0EFB MOVLW 0xFB |
030C 1403 ANDWF main_1_leds, W |
030E 6E03 MOVWF main_1_leds |
motors = 0x7F |
02DC 0E7F MOVLW 0x7F |
02DE 6E01 MOVWF main_1_motors |
|
End If |
End If |
|
lata = sensors |
02E0 5002 MOVF main_1_sensors, W |
02E2 6E89 MOVWF gbl_lata |
|
If (sensors.2)=0 Then |
0310 B402 BTFSC main_1_sensors,2 |
0312 D003 BRA label268438649 |
031A label268438649 |
call send(motors) |
02E4 5001 MOVF main_1_motors, W |
02E6 6E04 MOVWF send_00000_arg_c |
02E8 EC0BF001 CALL send_00000 |
|
'pravy spodni senzor aktivni |
'rozsvit prislusnou LED k senzoru, zatim jen v promenne |
leds = leds & ~(1 << 0) 'led sviti, kdyz se ji bit znuluje |
0314 0EFE MOVLW 0xFE |
0316 1403 ANDWF main_1_leds, W |
0318 6E03 MOVWF main_1_leds |
|
End If |
|
If (sensors.3)=0 Then |
031A B602 BTFSC main_1_sensors,3 |
031C D003 BRA label268438652 |
0324 label268438652 |
Loop |
02EC D7E2 BRA label268438640 |
|
'levy spodni senzor aktivni |
'rozsvit prislusnou LED k senzoru, zatim jen v promenne |
leds = leds & ~(1 << 3) 'led sviti, kdyz se ji bit znuluje |
031E 0EF7 MOVLW 0xF7 |
0320 1403 ANDWF main_1_leds, W |
0322 6E03 MOVWF main_1_leds |
|
End Sub |
|
End If |
|
|
lata = leds |
0324 5003 MOVF main_1_leds, W |
0326 6E89 MOVWF gbl_lata |
|
call send(motors) |
0328 5001 MOVF main_1_motors, W |
032A 6E0A MOVWF send_00000_arg_c |
032C EC02F001 CALL send_00000 |
//////////////////////////////////////// |
// Code with no source :-) |
//////////////////////////////////////// |
0200 EF77F001 GOTO _startup |
|
|
|
Loop |
0330 D796 BRA label268438595 |
|
|
|
End Sub |
|
|
//////////////////////////////////////// |
// Code with no source :-) |
//////////////////////////////////////// |
0200 EF99F001 GOTO _startup |
|
02EE _startup |
02EE EF1FF001 GOTO main |
|
0332 _startup |
0332 EF10F001 GOTO main |
|
300000 FEFF DW 0xFEFF |
300002 FEF6 DW 0xFEF6 |
300004 FEFF DW 0xFEFF |