Blame | Last modification | View Log | Download
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 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 8-9-2002 12:26:04 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 endc0000200000001 00003 vys EQU 1 ;vystupni portB protokol.asm00000002 00004 C1 EQU 2 ;pripojeni C1 na port BMPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 3LOC OBJECT CODE LINE SOURCE TEXTVALUE00000003 00005 C2 EQU 3 ;ptipojeni C2 na port B000060000 00007 org 0000080000 284D 00009 goto Start00010 ;--------------------0004 00011 org 400012 ;--------------------0004 284D 00013 goto Start0001400015 #include Delay.asm00001 ;Pro krystal 4Mhz0000200003 ;--- Macro na spozdeni 1ms az 255ms ---00004 Delay macro ms00005 movlw ms00006 movwf xxx00007 call Delay1ms00008 endm0000900010 ;--- Macro na spozdeni 0,1ms az 2,5ms (10-250) ---00011 Delay01 macro us00012 movlw us00013 movwf yyy00014 call Delay10us0001500016 nop00017 nop ; Z duvodu vyrovnani poctu potrebnych taktu jako na Delay1ms00018 nop00019 return00020 endm00021 ;--- Spozdeni v nasobcich 1ms+2us ----000220005 00023 Delay1ms:0005 3063 00024 movlw 99 ; 1 ms0006 008C 00025 movwf yyy ; goto 2 takty decfsz 1 kdyz 1 jinak 20007 200C 00026 call Delay10us000270008 0B8D 00028 decfsz xxx, f0009 2805 00029 goto Delay1ms000A 0000 00030 nop00031 ;---------------------------------000B 0008 00032 return ;2us0003300034 ;--- Spozdeni v nasobcich 10us ----000C 00035 Delay10us: ; Prodleva (CT1 * 10us)000C 0000 00036 nop000D 0000 00037 nop000E 0000 00038 nop000F 0000 00039 nop0010 0000 00040 nop0011 0000 00041 nop0012 0000 00042 nopMPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 4LOC OBJECT CODE LINE SOURCE TEXTVALUE0013 0B8C 00043 decfsz yyy, f0014 280C 00044 goto Delay10us0015 0000 00045 nop0016 0008 00046 return00047 ;-------------------------0004800049 ;----------------------------00050 ; Definice promenych00051 ;----------------------------0005200053 cblock000540000000C 00055 yyy0000000D 00056 xxx0005700058 endc0005900016 #include Protokol.asm0017 00001 Sinchro:0017 1486 00002 bsf PORTB, vys0018 200C 00003 call Delay10us0019 200C 00004 call Delay10us001A 200C 00005 call Delay10us001B 1086 00006 bcf PORTB, vys ; 1. impuls (30us)001C 200C 00007 call Delay10us001D 200C 00008 call Delay10us001E 200C 00009 call Delay10us001F 1486 00010 bsf PORTB, vys0020 200C 00011 call Delay10us0021 200C 00012 call Delay10us0022 1086 00013 bcf PORTB, vys ; 2. impuls (20us)0023 200C 00014 call Delay10us0024 200C 00015 call Delay10us0025 1486 00016 bsf PORTB, vys0026 200C 00017 call Delay10us0027 1086 00018 bcf PORTB, vys ; 3. impuls (10us)0028 200C 00019 call Delay10us0002000021 ;return0002200023 ;-------------------------0029 00024 Protokol:0029 3008 00025 movlw 8002A 008F 00026 movwf Bity ; nastaveni slova002B 2017 00027 call Sinchro002C 00028 VysBit:002C 1C10 00029 btfss Ramec, 0002D 2033 00030 call frek0002E 2040 00031 call frek1002F 00032 Rotace:002F 0C90 00033 rrf Ramec, f0030 0B8F 00034 decfsz Bity, f0031 282C 00035 goto VysBitMPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 5LOC OBJECT CODE LINE SOURCE TEXTVALUE0032 0008 00036 return0003700038 ;-------------------------0033 00039 frek0:0033 303C 00040 movlw 600034 008E 00041 movwf Frek0035 00042 smycka1:0035 1486 00043 bsf PORTB, vys ; 2000 Hz 60 impulsu00044 Delay 500036 3032 M movlw 500037 008D M movwf xxx0038 2005 M call Delay1ms0039 1086 00045 bcf PORTB, vys00046 Delay 50003A 3032 M movlw 50003B 008D M movwf xxx003C 2005 M call Delay1ms003D 0B8E 00047 decfsz Frek,f003E 2835 00048 goto smycka1003F 202F 00049 call Rotace00050 ;-------------------------0040 00051 frek1:0040 302D 00052 movlw 450041 008E 00053 movwf Frek0042 00054 smycka2:0042 1486 00055 bsf PORTB, vys ; 1500 Hz 45 impulsu00056 Delay 1500043 3096 M movlw 1500044 008D M movwf xxx0045 2005 M call Delay1ms0046 1086 00057 bcf PORTB, vys00058 Delay 1500047 3096 M movlw 1500048 008D M movwf xxx0049 2005 M call Delay1ms004A 0B8E 00059 decfsz Frek,f004B 2842 00060 goto smycka2004C 202F 00061 call Rotace00062 ;-------------------------000630006400065 ;----------------------------00066 ; Definice promenych00067 ;----------------------------0006800069 cblock000700000000E 00071 Frek0000000F 00072 Bity00000010 00073 Ramec0007400075 endc004D 00017 Start:MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 6LOC OBJECT CODE LINE SOURCE TEXTVALUE00018 page1004D 1683 M bsf STATUS,_RP0004E 3000 00019 movlw 00000000B ; inicializace citace a prescaleru004F 0081 00020 movwf TMR00050 3000 00021 movlw 00000000B ; konfigurace preruseni0051 008B 00022 movwf INTCON0002300024 page10052 1683 M bsf STATUS,_RP00053 30F3 00025 movlw 11110011B ; nastaveni portu na vstup nebo vystup0054 0085 00026 movwf PORTA ; 1=vstup 0=vystup0055 30F1 00027 movlw 11110001B0056 0086 00028 movwf PORTB000290057 1781 00030 bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)0003100032 page00058 1283 M bcf STATUS,_RP0000330059 0103 00034 clrw ; vynulovani portu005A 0085 00035 movwf PORTA005B 0086 00036 movwf PORTB00037005C 1585 00038 bsf PORTA, 3 ; Pull-Up na tlacitka00039005D 1086 00040 bcf PORTB, 1 ; zhasnuti LED005E 1106 00041 bcf PORTB, 2005F 1186 00042 bcf PORTB, 3000430060 00044 MainLoop:0060 3002 00045 movlw 20061 0091 00046 movwf volani ; Nastavi pocet volani procedury vybito0062 1506 00047 bsf PORTB, C1 ; Nabiti kondenzatoru10063 1586 00048 bsf PORTB, C2 ; Nabiti kondenzatoru20064 00049 dal:0064 1D05 00050 btfss PORTA, C1 ; Test kondenzatoru10065 206B 00051 call vibito000520066 1D86 00053 btfss PORTB, C2 ; Test kondenzatoru20067 206B 00054 call vibito000550068 0A90 00056 incf Ramec, f0069 2864 00057 goto dal006A 2860 00058 goto MainLoop00059 ;---------------00060006B 00061 vibito:006B 3004 00062 movlw 4006C 0092 00063 movwf CT1 ; uvolneni mista006D 00064 zapis:006D 0D90 00065 rlf Ramec, f006E 0B92 00066 decfsz CT1, f006F 286D 00067 goto zapisMPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 7LOC OBJECT CODE LINE SOURCE TEXTVALUE0070 0B91 00068 decfsz volani, f000690071 2029 00070 call Protokol000710072 2860 00072 goto MainLoop000730007400075 ;----------------------------00076 ; Definice promenych00077 ;----------------------------0007800079 cblock0008000000011 00081 volani00000012 00082 CT10008300084 endc0008500086 endMPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 8SYMBOL TABLELABEL VALUEBity 0000000FC1 00000002C2 00000003CMPCT1 00000012DelayDelay01Delay10us 0000000CDelay1ms 00000005EEADR_0 00000009EECON1_1 00000008EECON2_1 00000009EEDATA_0 00000008FSR 00000004Frek 0000000EIND0 00000000INTCON 0000000BMainLoop 00000060PCL 00000002PCLATH 0000000APORTA 00000005PORTB 00000006Protokol 00000029Ramec 00000010Rotace 0000002FSBSCSNSNBSNCSNZSPSTATUS 00000003SZSinchro 00000017Start 0000004DTMR0 00000001VysBit 0000002C_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 8-9-2002 12:26:04 PAGE 9SYMBOL TABLELABEL VALUE_RP0 00000005_RP1 00000006_T0IE 00000005_T0IF 00000002_TO 00000004_ZERO 00000002__16C84__ 00000000__16F84 00000001dal 00000064frek0 00000033frek1 00000040page0page1smycka1 00000035smycka2 00000042vibito 0000006Bvolani 00000011vys 00000001xxx 0000000Dyyy 0000000Czapis 0000006DMEMORY USAGE MAP ('X' = Used, '-' = Unused)0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXX-------------All other memory blocks unused.Program Memory Words Used: 112Program Memory Words Free: 912Errors : 0Warnings : 0 reported, 0 suppressedMessages : 0 reported, 0 suppressed