Blame | Last modification | View Log | Download
MPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 1LOC OBJECT CODE LINE SOURCE TEXTVALUE00001 #include 16C84.INC00001 ;00002 ; Definice registru a zakladnich maker pro 16C8400003 ;00004 processor 16f8400005 radix D000060000 00007 __16C84__: ; Priznak modulu 16C840000800009 ; Definice registru0001000000000 00011 IND0 equ 00H ; 0&1 Pristup na neprimou adresu00000001 00012 TMR0 equ 01H ; 0 Real Time clock counter00000002 00013 PCL equ 02H ; 0&1 Spodni cast PC00000003 00014 STATUS equ 03H ; 0&1 Stavove bity00000000 00015 _CARRY equ 000000001 00016 _DC equ 100000002 00017 _ZERO equ 200000003 00018 _PD equ 300000004 00019 _TO equ 400000005 00020 _RP0 equ 500000006 00021 _RP1 equ 600000007 00022 _IRP equ 700000004 00023 FSR equ 04H ; 0&1 Ukazatel pro neprime adresovani00000005 00024 PORTA equ 05H ; 0&1 Data a rizeni portu A00000006 00025 PORTB equ 06H ; 0&1 Data a rizeni portu B00000008 00026 EEDATA_0 equ 08H ; 0 Data EEPROM00000008 00027 EECON1_1 equ 08H ; 1 Rizeni EEPROM00000000 00028 _EERD equ 000000001 00029 _EEWR equ 100000002 00030 _EEWREN equ 200000003 00031 _EEWRERR equ 300000004 00032 _EEIF equ 400000009 00033 EEADR_0 equ 09H ; 0 Adresa EEPROM00000009 00034 EECON2_1 equ 09H ; 1 Aktivacni pseudoregistr0000000A 00035 PCLATH equ 0AH ; 0&1 Horni cast PC pro move0000000B 00036 INTCON equ 0BH ; 0&1 Rizeni preruseni00000000 00037 _RBIF equ 0 ;00000001 00038 _INTF equ 100000002 00039 _T0IF equ 200000003 00040 _RBIE equ 300000004 00041 _INTE equ 400000005 00042 _T0IE equ 500000006 00043 _EEIE equ 600000007 00044 _GIE equ 70004500046 page0 macro00047 bcf STATUS,_RP000048 endm0004900050 page1 macro00051 bsf STATUS,_RP000052 endmMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 2LOC OBJECT CODE LINE SOURCE TEXTVALUE00053 ;00054 ; Sada maker pro porovnani a skoky00055 ;0005600057 ;--- Compare ---00058 CMP macro ZNAK, PROCEDURA ; if W=ZNAK then goto PROCEDURA00059 xorlw ZNAK ; if W#ZNAK then zachovej W a neskakej00060 btfsc STATUS,_ZERO00061 goto PROCEDURA00062 xorlw ZNAK00063 endm0006400065 ;--- Skip if Carry ---00066 SC macro00067 btfss STATUS,_CARRY00068 endm0006900070 ;--- Skip if not Carry ---00071 SNC macro00072 btfsc STATUS,_CARRY00073 endm0007400075 ;--- Skip if Zero ---00076 SZ macro00077 btfss STATUS,_ZERO00078 endm0007900080 ;--- Skip if not Zero ---00081 SNZ macro00082 btfsc STATUS,_ZERO00083 endm0008400085 ;--- Skip if Borrow ( Negative ) --- ( po odecitani )00086 SB macro00087 btsfsc STATUS,_CARRY00088 endm00089 SN macro00090 btfsc STATUS,_CARRY00091 endm0009200093 ;--- Skip if not Borrow ( Positive ) --- ( po odecitani )00094 SNB macro00095 btfss STATUS,_CARRY00096 endm00097 SP macro00098 btfss STATUS,_CARRY00099 endm0010000101 cblock 0CH ; Prvni volny registr00102 endc0000200003 #define debug 000004MPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 3LOC OBJECT CODE LINE SOURCE TEXTVALUE00005 #include delaymac.inc00001 ;--- Macro na spozdeni 1ms az 255ms ---00002 Delay1ms macro _ms00003 if debug == 000004 movlw _ms00005 movwf _delay_ms00006 call _delay1ms00007 endif00008 endm0000900010 ;--- Macro na spozdeni 10us az 2,55ms ---00011 Delay10us macro _us00012 if debug == 000013 movlw _us00014 movwf _delay_us00015 call _delay10us00016 endif00017 endm000180000600000001 00007 Dozadu EQU 100000002 00008 Dopredu EQU 20000900010 ;--- Macro na spozdeni 1ms az 255ms ---00011 Delay macro ms00012 Delay1ms ms00013 ; movlw ms00014 ; movwf _delay_ms00015 ; call _delay1ms00016 endm00017 ;--------------------------------------00018 Vpred_ON macro00019 bsf PORTA, Dopredu00020 endm00021 ;--------------------------------------00022 Vpred_OFF macro00023 bcf PORTA, Dopredu00024 Delay 5000025 bsf PORTA, Dozadu ;zabrzdi00026 Delay 12500027 bcf PORTA, Dozadu00028 endm00029 ;--------------------------------------00030 Vpred macro d00031 movlw d ; x dlazdicek00032 movwf CT300033 call Vpred000034 endm0003500036 ;--------------------------------------0000 00037 org 0000380000 2804 00039 goto StartMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 4LOC OBJECT CODE LINE SOURCE TEXTVALUE00040 ;--------------------0004 00041 org 400042 ;--------------------0004 00043 Start:00044 page10004 1683 M bsf STATUS,_RP00005 3000 00045 movlw 00000000B ; inicializace citace a prescaleru0006 0081 00046 movwf TMR00007 3000 00047 movlw 00000000B ; konfigurace preruseni0008 008B 00048 movwf INTCON0004900050 page10009 1683 M bsf STATUS,_RP0000A 30F1 00051 movlw 11110001B ; nastaveni portu na vstup nebo vystup000B 0085 00052 movwf PORTA ; 1=vstup 0=vystup000C 30F6 00053 movlw 11110110B000D 0086 00054 movwf PORTB00055000E 1781 00056 bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)0005700058 page0000F 1283 M bcf STATUS,_RP0000590010 0103 00060 clrw ; vynulovani portu0011 0085 00061 movwf PORTA0012 0086 00062 movwf PORTB000630013 1586 00064 bsf PORTB, 3 ; Pridrz napajeni000650014 1585 00066 bsf PORTA, 3 ; Rozsvit LED00067 Delay 250M Delay1ms 250M if debug == 00015 30FA M movlw 2500016 008C M movwf _delay_ms0017 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0018 1185 00068 bcf PORTA, 3 ; Zhasni LED000690019 00070 MainLoop:00071 Vpred 120019 300C M movlw 12 ; x dlazdicek001A 008E M movwf CT3001B 204A M call Vpred000072 Delay 200M Delay1ms 200M if debug == 0001C 30C8 M movlw 200001D 008C M movwf _delay_ms001E 207F M call _delay1msMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 5LOC OBJECT CODE LINE SOURCE TEXTVALUEM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms001F 206E 00073 call Celemvzat00074 Delay 50M Delay1ms 50M if debug == 00020 3032 M movlw 500021 008C M movwf _delay_ms0022 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00075 Vpred 80023 3008 M movlw 8 ; x dlazdicek0024 008E M movwf CT30025 204A M call Vpred000076 Delay 50M Delay1ms 50M if debug == 00026 3032 M movlw 500027 008C M movwf _delay_ms0028 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0029 2075 00077 call Vlevo00078 Vpred 8002A 3008 M movlw 8 ; x dlazdicek002B 008E M movwf CT3002C 204A M call Vpred000079 Delay 50M Delay1ms 50M if debug == 0002D 3032 M movlw 50002E 008C M movwf _delay_ms002F 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00080 Vpred 10030 3001 M movlw 1 ; x dlazdicek0031 008E M movwf CT30032 204A M call Vpred000081 Delay 50M Delay1ms 50M if debug == 00033 3032 M movlw 500034 008C M movwf _delay_msMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 6LOC OBJECT CODE LINE SOURCE TEXTVALUE0035 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0036 2065 00082 call Vpravo00083 Delay 50M Delay1ms 50M if debug == 00037 3032 M movlw 500038 008C M movwf _delay_ms0039 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00084 Vpred 8003A 3008 M movlw 8 ; x dlazdicek003B 008E M movwf CT3003C 204A M call Vpred000085 Delay 50M Delay1ms 50M if debug == 0003D 3032 M movlw 50003E 008C M movwf _delay_ms003F 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0040 2075 00086 call Vlevo00087 Delay 50M Delay1ms 50M if debug == 00041 3032 M movlw 500042 008C M movwf _delay_ms0043 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00088 Vpred 30044 3003 M movlw 3 ; x dlazdicek0045 008E M movwf CT30046 204A M call Vpred00047 206E 00089 call Celemvzat0048 1186 00090 bcf PORTB, 3 ; Vypni napajeni0049 00091 Smycka:0049 2849 00092 goto Smycka00093 ;----------------0009400095 ;--- Popojede o n dlazdic vpred ---004A 00096 Vpred0:MPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 7LOC OBJECT CODE LINE SOURCE TEXTVALUE00097 Vpred_ON004A 1505 M bsf PORTA, Dopredu00098 Delay 175M Delay1ms 175M if debug == 0004B 30AF M movlw 175004C 008C M movwf _delay_ms004D 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms004E 1406 00099 bsf PORTB, 000100 Delay 15M Delay1ms 15M if debug == 0004F 300F M movlw 150050 008C M movwf _delay_ms0051 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0052 1006 00101 bcf PORTB, 000102 Delay 175M Delay1ms 175M if debug == 00053 30AF M movlw 1750054 008C M movwf _delay_ms0055 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00103 Vpred_OFF0056 1105 M bcf PORTA, DopreduM Delay 50M Delay1ms 50M if debug == 00057 3032 M movlw 500058 008C M movwf _delay_ms0059 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms005A 1485 M bsf PORTA, Dozadu ;zabrzdiM Delay 125M Delay1ms 125M if debug == 0005B 307D M movlw 125005C 008C M movwf _delay_ms005D 207F M call _delay1msMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 8LOC OBJECT CODE LINE SOURCE TEXTVALUEM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms005E 1085 M bcf PORTA, Dozadu00104 Delay 50M Delay1ms 50M if debug == 0005F 3032 M movlw 500060 008C M movwf _delay_ms0061 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0062 0B8E 00105 decfsz CT3, f0063 284A 00106 goto Vpred00064 0008 00107 return001080065 00109 Vpravo:0065 1406 00110 bsf PORTB, 000111 Delay 250M Delay1ms 250M if debug == 00066 30FA M movlw 2500067 008C M movwf _delay_ms0068 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00112 Delay 60M Delay1ms 60M if debug == 00069 303C M movlw 60006A 008C M movwf _delay_ms006B 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms006C 1006 00113 bcf PORTB, 0006D 0008 00114 return0011500116 ;---------------------------------------006E 00117 Celemvzat:006E 2065 00118 call Vpravo006F 1406 00119 bsf PORTB, 000120 Delay 125M Delay1ms 125M if debug == 00070 307D M movlw 1250071 008C M movwf _delay_msMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 9LOC OBJECT CODE LINE SOURCE TEXTVALUE0072 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms0073 1006 00121 bcf PORTB, 00074 0008 00122 return00123 ;---------------------------------------0075 00124 Vlevo:0075 2065 00125 call Vpravo0076 1406 00126 bsf PORTB, 000127 Delay 250M Delay1ms 250M if debug == 00077 30FA M movlw 2500078 008C M movwf _delay_ms0079 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms00128 Delay 70M Delay1ms 70M if debug == 0007A 3046 M movlw 70007B 008C M movwf _delay_ms007C 207F M call _delay1msM endifM ; movlw msM ; movwf _delay_msM ; call _delay1ms007D 1006 00129 bcf PORTB, 0007E 0008 00130 return0013100132 #include delayfce.inc00001 ;--- Spozdeni v nasobcich 1ms ----007F 00002 _delay1ms:007F 3064 00003 movlw 100 ; 1 ms0080 008D 00004 movwf _delay_us0081 2085 00005 call _delay10us000060082 0B8C 00007 decfsz _delay_ms, f0083 287F 00008 goto _delay1ms0084 0008 00009 return0001000011 ;--- Spozdeni v nasobcich 10us ----0085 00012 _delay10us: ; Prodleva (CT1 * 10us)+3us0085 0000 00013 nop0086 0000 00014 nop0087 0000 00015 nop0088 0000 00016 nop0089 0000 00017 nop008A 0000 00018 nopMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 10LOC OBJECT CODE LINE SOURCE TEXTVALUE008B 0000 00019 nop008C 0B8D 00020 decfsz _delay_us, f008D 2885 00021 goto _delay10us008E 0008 00022 return0002300024 ;----------------------------00025 ; Definice promenych pro spozdeni00026 ;----------------------------00027 cblock0000000C 00028 _delay_ms ; Citac ms0000000D 00029 _delay_us ; Citac 10us00030 endc000310013300134 ;----------------------------00135 ; Definice promenych00136 ;----------------------------00137 cblock0000000E 00138 CT3 ;Citac poctu dlazdicek00139 endc0014000141 endMPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 11SYMBOL TABLELABEL VALUECMPCT3 0000000ECelemvzat 0000006EDelayDelay10usDelay1msDopredu 00000002Dozadu 00000001EEADR_0 00000009EECON1_1 00000008EECON2_1 00000009EEDATA_0 00000008FSR 00000004IND0 00000000INTCON 0000000BMainLoop 00000019PCL 00000002PCLATH 0000000APORTA 00000005PORTB 00000006SBSCSNSNBSNCSNZSPSTATUS 00000003SZSmycka 00000049Start 00000004TMR0 00000001Vlevo 00000075Vpravo 00000065VpredVpred0 0000004AVpred_OFFVpred_ON_CARRY 00000000_DC 00000001_EEIE 00000006_EEIF 00000004_EERD 00000000_EEWR 00000001_EEWREN 00000002_EEWRERR 00000003_GIE 00000007_INTE 00000004_INTF 00000001_IRP 00000007_PD 00000003_RBIE 00000003_RBIF 00000000MPASM 02.80 Released MAIN.ASM 7-12-2002 15:23:36 PAGE 12SYMBOL TABLELABEL VALUE_RP0 00000005_RP1 00000006_T0IE 00000005_T0IF 00000002_TO 00000004_ZERO 00000002__16C84__ 00000000__16F84 00000001_delay10us 00000085_delay1ms 0000007F_delay_ms 0000000C_delay_us 0000000Ddebug 0page0page1MEMORY USAGE MAP ('X' = Used, '-' = Unused)0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX0080 : XXXXXXXXXXXXXXX- ---------------- ---------------- ----------------All other memory blocks unused.Program Memory Words Used: 140Program Memory Words Free: 884Errors : 0Warnings : 0 reported, 0 suppressedMessages : 0 reported, 0 suppressed