Blame | Last modification | View Log | Download
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 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 PRIJIMAC.ASM 8-8-2002 19:29:29 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 endc0000200000000 00003 PRYJM EQU 0 ;portb00004MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 3LOC OBJECT CODE LINE SOURCE TEXTVALUE0000 00005 org 0000060000 2817 00007 goto Start00008 ;--------------------0004 00009 org 400010 ;--------------------0004 2817 00011 goto Start0001200013 #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 nop0013 0B8C 00043 decfsz yyy, f0014 280C 00044 goto Delay10usMPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 4LOC OBJECT CODE LINE SOURCE TEXTVALUE0015 0000 00045 nop0016 0008 00046 return00047 ;-------------------------0004800049 ;----------------------------00050 ; Definice promenych00051 ;----------------------------0005200053 cblock000540000000C 00055 yyy0000000D 00056 xxx0005700058 endc0005900014000150017 00016 Start:00017 page10017 1683 M bsf STATUS,_RP00018 3028 00018 movlw 00101000B ; inicializace citace a prescaleru0019 0081 00019 movwf TMR0001A 3000 00020 movlw 00000000B ; konfigurace preruseni001B 008B 00021 movwf INTCON0002200023 page1001C 1683 M bsf STATUS,_RP0001D 30F7 00024 movlw 11110111B ; nastaveni portu na vstup nebo vystup001E 0085 00025 movwf PORTA ; 1=vstup 0=vystup001F 30F1 00026 movlw 11110001B0020 0086 00027 movwf PORTB0002800029 ;bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)0003000031 page00021 1283 M bcf STATUS,_RP0000320022 0103 00033 clrw ; vynulovani portu0023 0085 00034 movwf PORTA0024 0086 00035 movwf PORTB000360025 1585 00037 bsf PORTA, 3 ; Pull-Up na tlacitka000380026 1086 00039 bcf PORTB, 1 ; zhasnuti LED0027 1106 00040 bcf PORTB, 20028 1186 00041 bcf PORTB, 3000420029 00043 MainLoop:0029 1C06 00044 btfss PORTB, PRYJM ;cekani na impuls1002A 2829 00045 goto MainLoop00046002B 200C 00047 call Delay10us002C 200C 00048 call Delay10usMPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 5LOC OBJECT CODE LINE SOURCE TEXTVALUE00049002D 1C06 00050 btfss PORTB, PRYJM ;potvrzeni impulsu1002E 2829 00051 goto MainLoop00052002F 200C 00053 call Delay10us0030 200C 00054 call Delay10us0031 00055 smycka:0031 1806 00056 btfsc PORTB, PRYJM0032 2831 00057 goto smycka00058 ;sinchronizace0033 200C 00059 call Delay10us000600034 00061 smycka1: ;2impuls0034 1C06 00062 btfss PORTB, PRYJM0035 2834 00063 goto smycka10036 200C 00064 call Delay10us000650037 00066 smycka2:0037 1C06 00067 btfss PORTB, PRYJM0038 2829 00068 goto MainLoop000690039 00070 mezera2:0039 1806 00071 btfsc PORTB, PRYJM003A 2839 00072 goto mezera200073003B 00074 impuls3:003B 1C06 00075 btfss PORTB, PRYJM003C 283B 00076 goto impuls300077003D 00078 mezera3:003D 1806 00079 btfsc PORTB, PRYJM003E 283D 00080 goto mezera3000810008200083 ;-------------------------0008400085 ;----------------------------00086 ; Definice promenych00087 ;----------------------------0008800089 cblock000900000000E 00091 CT10000000F 00092 CT20009300094 endc0009500096 endMPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 6SYMBOL TABLELABEL VALUECMPCT1 0000000ECT2 0000000FDelayDelay01Delay10us 0000000CDelay1ms 00000005EEADR_0 00000009EECON1_1 00000008EECON2_1 00000009EEDATA_0 00000008FSR 00000004IND0 00000000INTCON 0000000BMainLoop 00000029PCL 00000002PCLATH 0000000APORTA 00000005PORTB 00000006PRYJM 00000000SBSCSNSNBSNCSNZSPSTATUS 00000003SZStart 00000017TMR0 00000001_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 00000000_RP0 00000005_RP1 00000006_T0IE 00000005_T0IF 00000002_TO 00000004_ZERO 00000002__16C84__ 00000000MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 7SYMBOL TABLELABEL VALUE__16F84 00000001impuls3 0000003Bmezera2 00000039mezera3 0000003Dpage0page1smycka 00000031smycka1 00000034smycka2 00000037xxx 0000000Dyyy 0000000CMEMORY USAGE MAP ('X' = Used, '-' = Unused)0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX-All other memory blocks unused.Program Memory Words Used: 60Program Memory Words Free: 964Errors : 0Warnings : 0 reported, 0 suppressedMessages : 0 reported, 0 suppressed