Subversion Repositories svnkaklik

Compare Revisions

No changes between revisions

Ignore whitespace Rev 5 → Rev 6

/programy/ASM/prenos/16C84.INC
0,0 → 1,102
;
; Definice registru a zakladnich maker pro 16C84
;
processor 16f84
radix D
 
__16C84__: ; Priznak modulu 16C84
 
; Definice registru
 
IND0 equ 00H ; 0&1 Pristup na neprimou adresu
TMR0 equ 01H ; 0 Real Time clock counter
PCL equ 02H ; 0&1 Spodni cast PC
STATUS equ 03H ; 0&1 Stavove bity
_CARRY equ 0
_DC equ 1
_ZERO equ 2
_PD equ 3
_TO equ 4
_RP0 equ 5
_RP1 equ 6
_IRP equ 7
FSR equ 04H ; 0&1 Ukazatel pro neprime adresovani
PORTA equ 05H ; 0&1 Data a rizeni portu A
PORTB equ 06H ; 0&1 Data a rizeni portu B
EEDATA_0 equ 08H ; 0 Data EEPROM
EECON1_1 equ 08H ; 1 Rizeni EEPROM
_EERD equ 0
_EEWR equ 1
_EEWREN equ 2
_EEWRERR equ 3
_EEIF equ 4
EEADR_0 equ 09H ; 0 Adresa EEPROM
EECON2_1 equ 09H ; 1 Aktivacni pseudoregistr
PCLATH equ 0AH ; 0&1 Horni cast PC pro move
INTCON equ 0BH ; 0&1 Rizeni preruseni
_RBIF equ 0 ;
_INTF equ 1
_T0IF equ 2
_RBIE equ 3
_INTE equ 4
_T0IE equ 5
_EEIE equ 6
_GIE equ 7
 
page0 macro
bcf STATUS,_RP0
endm
 
page1 macro
bsf STATUS,_RP0
endm
;
; Sada maker pro porovnani a skoky
;
 
;--- Compare ---
CMP macro ZNAK, PROCEDURA ; if W=ZNAK then goto PROCEDURA
xorlw ZNAK ; if W#ZNAK then zachovej W a neskakej
btfsc STATUS,_ZERO
goto PROCEDURA
xorlw ZNAK
endm
 
;--- Skip if Carry ---
SC macro
btfss STATUS,_CARRY
endm
 
;--- Skip if not Carry ---
SNC macro
btfsc STATUS,_CARRY
endm
 
;--- Skip if Zero ---
SZ macro
btfss STATUS,_ZERO
endm
 
;--- Skip if not Zero ---
SNZ macro
btfsc STATUS,_ZERO
endm
 
;--- Skip if Borrow ( Negative ) --- ( po odecitani )
SB macro
btsfsc STATUS,_CARRY
endm
SN macro
btfsc STATUS,_CARRY
endm
 
;--- Skip if not Borrow ( Positive ) --- ( po odecitani )
SNB macro
btfss STATUS,_CARRY
endm
SP macro
btfss STATUS,_CARRY
endm
 
cblock 0CH ; Prvni volny registr
endc
/programy/ASM/prenos/17C42.H
0,0 → 1,165
NOLIST
 
; rev 1.2 4/06/92
; rev 1.3 4/15/94 removed HIGH and LOW
;***************************************************************
; define special function registers:
#define W 0
#define w 0
#define true 1
#define false 0
#define TRUE 1
#define FALSE 0
;
#define LSB 0
#define MSB 7
;
_INC equ 1
_NO_INC equ 0
_LOW equ 0
_HIGH equ 1
;
cblock 0x00
bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7
endc
 
cblock 0x00 ; define banks
bank0,bank1,bank2,bank3
endc
 
cblock 0x00 ; unbanked registers
indf0,fsr0,pcl,pclath,alusta,rtcsta,cpusta,intsta
indf1,fsr1,wreg,rtccl,rtcch,tblptrl,tblptrh,bsr
endc
 
cblock 0x10 ; bank0 registers
porta,ddrb,portb,rcsta,rcreg,txsta,txreg,spbrg
endc
 
cblock 0x10 ; bank1 registers
ddrc,portc,ddrd,portd,ddre,porte,pir,pie
endc
 
cblock 0x10 ; bank2 registers
tmr1,tmr2,tmr3l,tmr3h,pr1,pr2,pr3l,pr3h
endc
 
ca1l equ 0x16 ; alternate function def
ca1h equ 0x17
 
cblock 0x10 ; define bank3 variables
pw1dcl,pw2dcl,pw1dch,pw2dch,ca2l,ca2h,tcon1,tcon2
endc
 
;***************************************************************
; define commonly used bits:
 
; ALUSTA bit definitions
 
#define _carry alusta,0
#define _c alusta,0
#define _cy alusta,0
#define _dc alusta,1
#define _z alusta,2
#define _ov alusta,3
#define _fs0 alusta,4
#define _fs1 alusta,5
#define _fs2 alusta,6
#define _fs3 alusta,7
 
; RTCSTA bit definitions
 
#define _rtps0 rtcsta,1
#define _rtps1 rtcsta,2
#define _rtps2 rtcsta,3
#define _rtps3 rtcsta,4
#define _tc rtcsta,5
#define _rtedg rtcsta,6
#define _intedg rtcsta,7
 
; CPUSTA bit definitions
 
#define _npd cpusta,2
#define _nto cpusta,3
#define _gint cpusta,4
#define _glintd cpusta,4
#define _stkavl cpusta,5
 
; INTSTA bit definitions
 
#define _intie intsta,0
#define _rtcie intsta,1
#define _rtxie intsta,2
#define _peie intsta,3
#define _intir intsta,4
#define _rtcir intsta,5
#define _rtxir intsta,6
#define _peir intsta,7
 
; PIR Bit definitions
 
#define _rbfl pir,0
#define _tbmt pir,1
#define _ca1ir pir,2
#define _ca2ir pir,3
#define _tm1ir pir,4
#define _tm2ir pir,5
#define _tm3ir pir,6
#define _irb pir,7
 
; PIE Bit definitions
 
#define _rcie pie,0
#define _txie pie,1
#define _ca1ie pie,2
#define _ca2ie pie,3
#define _tm1ie pie,4
#define _tm2ie pie,5
#define _tm3ie pie,6
#define _ieb pie,7
 
; RCSTA bit definitions
 
#define _rcd8 rcsta,0
#define _oerr rcsta,1
#define _ferr rcsta,2
#define _cren rcsta,4
#define _sren rcsta,5
#define _rc89 rcsta,6
#define _spen rcsta,7
; TXSTA bit definitions
 
#define _txd8 txsta,0
#define _trmt txsta,1
#define _sync txsta,4
#define _txen txsta,5
#define _tx89 txsta,6
#define _csrc txsta,7
 
; TCON1 bit definitions
 
#define _tmr1c tcon1,0
#define _tmr2c tcon1,1
#define _tmr3c tcon1,2
#define _tmr16 tcon1,3
#define _ca1ed0 tcon1,4
#define _ca1ed1 tcon1,5
#define _ca2ed0 tcon1,6
#define _ca2ed1 tcon1,7
 
; TCON2 bit definitions
 
#define _tmr1on tcon2,0
#define _tmr2on tcon2,1
#define _tmr3on tcon2,2
#define _ca1pr3 tcon2,3
#define _pwm1on tcon2,4
#define _pwm2on tcon2,5
#define _ca1ovf tcon2,6
#define _ca2ovf tcon2,7
 
LIST
 
 
/programy/ASM/prenos/FOXUSER.DBF
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/FOXUSER.FPT
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/Kopie (2) - main.asm
0,0 → 1,157
#include 16C84.INC
 
 
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
goto Start
 
#include Delay.asm
 
Start:
page1
movlw 00000000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110011B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
;movlw 2
;movwf volani ; Nastavi pocet volani procedury vybito
;bsf PORT ; Nabiti kondenzatoru1
;bsf PORT ; Nabiti kondenzatoru2
dal:
;btfss PORTA, 1 ; Test kondenzatoru1
;call vibito
bsf PORTB, 3
bsf PORTB, 4
Delay 100
;bsf PORTA, 3
;Delay 250
;bcf PORTA, 3
 
bsf PORTA, 2
Delay 250
bcf PORTA, 2
 
Delay 250
Delay 250
Delay 250
Delay 250
Delay 250
 
bsf PORTA, 2
Delay 250
bcf PORTA, 2
 
;bsf PORTA, 3
;Delay 250
bcf PORTA, 3
bcf PORTB, 3
bcf PORTB, 4
Delay 250
;btfss PORTB, 6 ; Test kondenzatoru2
;call vibito
;incf Ramec, f
;goto dal
goto MainLoop
;---------------
 
 
Sinchro:
;bsf PORTB, 1
;call Delay10us
;call Delay10us
;call Delay10us
;bcf PORTB, 1 ; 1. impuls (30ms)
;call Delay10us
;call Delay10us
;call Delay10us
;bsf PORTB, 1
;call Delay10us
;call Delay10us
;bcf PORTB, 1 ; 2. impuls (20ms)
;call Delay10us
;call Delay10us
;bsf PORTB, 1
;call Delay10us
;bcf PORTB, 1 ; 3. impuls (10ms)
;call Delay10us
;return
 
;-------------------------
Protokol:
movlw 8
movwf Bity ; nastaveni slova
call Sinchro
VysBit:
btfss Ramec, 0
call frek0
call frek1
Rotace:
rrf Ramec, f
decfsz Bity, f
goto VysBit
return
 
;-------------------------
frek0:
; 2000 Hz 45 impulsu
;-------------------------
frek1:
; 1500 Hz 60 impulsu
;-------------------------
vibito:
movlw 4
movwf CT1 ; uvolneni mista
zapis:
rlf Ramec, f
decfsz CT1, f
goto zapis
decfsz volani, f
return
call Protokol
call MainLoop
 
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
Bity
Ramec
volani
XXX
 
endc
 
end
/programy/ASM/prenos/MAIN.$$$
0,0 → 1,110
#include 16C84.INC
 
vys EQU 1 ;vystupni portB protokol.asm
C1 EQU 2 ;pripojeni C1 na port B
C2 EQU 3 ;ptipojeni C2 na port B
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
goto Start
 
#include Delay.asm
#include Protokol.asm
Start:
page1
movlw 00000000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110011B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
movlw 2
movwf volani ; Nastavi pocet volani procedury vybito
bsf PORTB, C1 ; Nabiti kondenzatoru1
bsf PORTB, C2 ; Nabiti kondenzatoru2
dal:
;btfss PORTA, 1 ; Test kondenzatoru1
;call vibito
bsf PORTB, 3
bsf PORTB, 4
Delay 100
;bsf PORTA, 3
;Delay 250
;bcf PORTA, 3
 
bsf PORTA, 2
Delay 250
bcf PORTA, 2
 
Delay 250
Delay 250
Delay 250
Delay 250
Delay 250
 
bsf PORTA, 2
Delay 250
bcf PORTA, 2
 
;bsf PORTA, 3
;Delay 250
bcf PORTA, 3
bcf PORTB, 3
bcf PORTB, 4
Delay 250
;btfss PORTB, 6 ; Test kondenzatoru2
;call vibito
;incf Ramec, f
;goto dal
goto MainLoop
;---------------
 
vibito:
movlw 4
movwf CT1 ; uvolneni mista
zapis:
rlf Ramec, f
decfsz CT1, f
goto zapis
decfsz volani, f
return
call Protokol
call MainLoop
 
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
volani
 
endc
 
end
/programy/ASM/prenos/MAIN.COD
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/MAIN.ERR
--- MAIN.HEX (nonexistent)
+++ MAIN.HEX (revision 6)
@@ -0,0 +1,17 @@
+:020000004D2889
+:080008004D2863308C000C2030
+:100010008D0B052800000800000000000000000013
+:100020000000000000008C0B0C2800000800861463
+:100030000C200C200C2086100C200C200C20861488
+:100040000C200C2086100C200C2086140C2086100E
+:100050000C2008308F001720101C33204020900CFB
+:100060008F0B2C2808003C308E00861432308D0017
+:100070000520861032308D0005208E0B35282F206C
+:100080002D308E00861496308D0005208610963017
+:100090008D0005208E0B42282F2083160030810012
+:1000A00000308B008316F3308500F1308600811715
+:1000B00083120301850086008515861006118611BE
+:1000C0000230910006158615051D6B20861D6B20DC
+:1000D000900A6428602804309200900D920B6D28DD
+:0600E000910B29206028AD
+:00000001FF
/programy/ASM/prenos/MAIN.LST
0,0 → 1,483
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 1
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00001 #include 16C84.INC
00001 ;
00002 ; Definice registru a zakladnich maker pro 16C84
00003 ;
00004 processor 16f84
00005 radix D
00006
0000 00007 __16C84__: ; Priznak modulu 16C84
00008
00009 ; Definice registru
00010
00000000 00011 IND0 equ 00H ; 0&1 Pristup na neprimou adresu
00000001 00012 TMR0 equ 01H ; 0 Real Time clock counter
00000002 00013 PCL equ 02H ; 0&1 Spodni cast PC
00000003 00014 STATUS equ 03H ; 0&1 Stavove bity
00000000 00015 _CARRY equ 0
00000001 00016 _DC equ 1
00000002 00017 _ZERO equ 2
00000003 00018 _PD equ 3
00000004 00019 _TO equ 4
00000005 00020 _RP0 equ 5
00000006 00021 _RP1 equ 6
00000007 00022 _IRP equ 7
00000004 00023 FSR equ 04H ; 0&1 Ukazatel pro neprime adresovani
00000005 00024 PORTA equ 05H ; 0&1 Data a rizeni portu A
00000006 00025 PORTB equ 06H ; 0&1 Data a rizeni portu B
00000008 00026 EEDATA_0 equ 08H ; 0 Data EEPROM
00000008 00027 EECON1_1 equ 08H ; 1 Rizeni EEPROM
00000000 00028 _EERD equ 0
00000001 00029 _EEWR equ 1
00000002 00030 _EEWREN equ 2
00000003 00031 _EEWRERR equ 3
00000004 00032 _EEIF equ 4
00000009 00033 EEADR_0 equ 09H ; 0 Adresa EEPROM
00000009 00034 EECON2_1 equ 09H ; 1 Aktivacni pseudoregistr
0000000A 00035 PCLATH equ 0AH ; 0&1 Horni cast PC pro move
0000000B 00036 INTCON equ 0BH ; 0&1 Rizeni preruseni
00000000 00037 _RBIF equ 0 ;
00000001 00038 _INTF equ 1
00000002 00039 _T0IF equ 2
00000003 00040 _RBIE equ 3
00000004 00041 _INTE equ 4
00000005 00042 _T0IE equ 5
00000006 00043 _EEIE equ 6
00000007 00044 _GIE equ 7
00045
00046 page0 macro
00047 bcf STATUS,_RP0
00048 endm
00049
00050 page1 macro
00051 bsf STATUS,_RP0
00052 endm
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 2
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00053 ;
00054 ; Sada maker pro porovnani a skoky
00055 ;
00056
00057 ;--- Compare ---
00058 CMP macro ZNAK, PROCEDURA ; if W=ZNAK then goto PROCEDURA
00059 xorlw ZNAK ; if W#ZNAK then zachovej W a neskakej
00060 btfsc STATUS,_ZERO
00061 goto PROCEDURA
00062 xorlw ZNAK
00063 endm
00064
00065 ;--- Skip if Carry ---
00066 SC macro
00067 btfss STATUS,_CARRY
00068 endm
00069
00070 ;--- Skip if not Carry ---
00071 SNC macro
00072 btfsc STATUS,_CARRY
00073 endm
00074
00075 ;--- Skip if Zero ---
00076 SZ macro
00077 btfss STATUS,_ZERO
00078 endm
00079
00080 ;--- Skip if not Zero ---
00081 SNZ macro
00082 btfsc STATUS,_ZERO
00083 endm
00084
00085 ;--- Skip if Borrow ( Negative ) --- ( po odecitani )
00086 SB macro
00087 btsfsc STATUS,_CARRY
00088 endm
00089 SN macro
00090 btfsc STATUS,_CARRY
00091 endm
00092
00093 ;--- Skip if not Borrow ( Positive ) --- ( po odecitani )
00094 SNB macro
00095 btfss STATUS,_CARRY
00096 endm
00097 SP macro
00098 btfss STATUS,_CARRY
00099 endm
00100
00101 cblock 0CH ; Prvni volny registr
00102 endc
00002
00000001 00003 vys EQU 1 ;vystupni portB protokol.asm
00000002 00004 C1 EQU 2 ;pripojeni C1 na port B
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 3
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00000003 00005 C2 EQU 3 ;ptipojeni C2 na port B
00006
0000 00007 org 0
00008
0000 284D 00009 goto Start
00010 ;--------------------
0004 00011 org 4
00012 ;--------------------
0004 284D 00013 goto Start
00014
00015 #include Delay.asm
00001 ;Pro krystal 4Mhz
00002
00003 ;--- Macro na spozdeni 1ms az 255ms ---
00004 Delay macro ms
00005 movlw ms
00006 movwf xxx
00007 call Delay1ms
00008 endm
00009
00010 ;--- Macro na spozdeni 0,1ms az 2,5ms (10-250) ---
00011 Delay01 macro us
00012 movlw us
00013 movwf yyy
00014 call Delay10us
00015
00016 nop
00017 nop ; Z duvodu vyrovnani poctu potrebnych taktu jako na Delay1ms
00018 nop
00019 return
00020 endm
00021 ;--- Spozdeni v nasobcich 1ms+2us ----
00022
0005 00023 Delay1ms:
0005 3063 00024 movlw 99 ; 1 ms
0006 008C 00025 movwf yyy ; goto 2 takty decfsz 1 kdyz 1 jinak 2
0007 200C 00026 call Delay10us
00027
0008 0B8D 00028 decfsz xxx, f
0009 2805 00029 goto Delay1ms
000A 0000 00030 nop
00031 ;---------------------------------
000B 0008 00032 return ;2us
00033
00034 ;--- Spozdeni v nasobcich 10us ----
000C 00035 Delay10us: ; Prodleva (CT1 * 10us)
000C 0000 00036 nop
000D 0000 00037 nop
000E 0000 00038 nop
000F 0000 00039 nop
0010 0000 00040 nop
0011 0000 00041 nop
0012 0000 00042 nop
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 4
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
0013 0B8C 00043 decfsz yyy, f
0014 280C 00044 goto Delay10us
0015 0000 00045 nop
0016 0008 00046 return
00047 ;-------------------------
00048
00049 ;----------------------------
00050 ; Definice promenych
00051 ;----------------------------
00052
00053 cblock
00054
0000000C 00055 yyy
0000000D 00056 xxx
00057
00058 endc
00059
00016 #include Protokol.asm
0017 00001 Sinchro:
0017 1486 00002 bsf PORTB, vys
0018 200C 00003 call Delay10us
0019 200C 00004 call Delay10us
001A 200C 00005 call Delay10us
001B 1086 00006 bcf PORTB, vys ; 1. impuls (30us)
001C 200C 00007 call Delay10us
001D 200C 00008 call Delay10us
001E 200C 00009 call Delay10us
001F 1486 00010 bsf PORTB, vys
0020 200C 00011 call Delay10us
0021 200C 00012 call Delay10us
0022 1086 00013 bcf PORTB, vys ; 2. impuls (20us)
0023 200C 00014 call Delay10us
0024 200C 00015 call Delay10us
0025 1486 00016 bsf PORTB, vys
0026 200C 00017 call Delay10us
0027 1086 00018 bcf PORTB, vys ; 3. impuls (10us)
0028 200C 00019 call Delay10us
00020
00021 ;return
00022
00023 ;-------------------------
0029 00024 Protokol:
0029 3008 00025 movlw 8
002A 008F 00026 movwf Bity ; nastaveni slova
002B 2017 00027 call Sinchro
002C 00028 VysBit:
002C 1C10 00029 btfss Ramec, 0
002D 2033 00030 call frek0
002E 2040 00031 call frek1
002F 00032 Rotace:
002F 0C90 00033 rrf Ramec, f
0030 0B8F 00034 decfsz Bity, f
0031 282C 00035 goto VysBit
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 5
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
0032 0008 00036 return
00037
00038 ;-------------------------
0033 00039 frek0:
0033 303C 00040 movlw 60
0034 008E 00041 movwf Frek
0035 00042 smycka1:
0035 1486 00043 bsf PORTB, vys ; 2000 Hz 60 impulsu
00044 Delay 50
0036 3032 M movlw 50
0037 008D M movwf xxx
0038 2005 M call Delay1ms
0039 1086 00045 bcf PORTB, vys
00046 Delay 50
003A 3032 M movlw 50
003B 008D M movwf xxx
003C 2005 M call Delay1ms
003D 0B8E 00047 decfsz Frek,f
003E 2835 00048 goto smycka1
003F 202F 00049 call Rotace
00050 ;-------------------------
0040 00051 frek1:
0040 302D 00052 movlw 45
0041 008E 00053 movwf Frek
0042 00054 smycka2:
0042 1486 00055 bsf PORTB, vys ; 1500 Hz 45 impulsu
00056 Delay 150
0043 3096 M movlw 150
0044 008D M movwf xxx
0045 2005 M call Delay1ms
0046 1086 00057 bcf PORTB, vys
00058 Delay 150
0047 3096 M movlw 150
0048 008D M movwf xxx
0049 2005 M call Delay1ms
004A 0B8E 00059 decfsz Frek,f
004B 2842 00060 goto smycka2
004C 202F 00061 call Rotace
00062 ;-------------------------
00063
00064
00065 ;----------------------------
00066 ; Definice promenych
00067 ;----------------------------
00068
00069 cblock
00070
0000000E 00071 Frek
0000000F 00072 Bity
00000010 00073 Ramec
00074
00075 endc
004D 00017 Start:
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 6
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00018 page1
004D 1683 M bsf STATUS,_RP0
004E 3000 00019 movlw 00000000B ; inicializace citace a prescaleru
004F 0081 00020 movwf TMR0
0050 3000 00021 movlw 00000000B ; konfigurace preruseni
0051 008B 00022 movwf INTCON
00023
00024 page1
0052 1683 M bsf STATUS,_RP0
0053 30F3 00025 movlw 11110011B ; nastaveni portu na vstup nebo vystup
0054 0085 00026 movwf PORTA ; 1=vstup 0=vystup
0055 30F1 00027 movlw 11110001B
0056 0086 00028 movwf PORTB
00029
0057 1781 00030 bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
00031
00032 page0
0058 1283 M bcf STATUS,_RP0
00033
0059 0103 00034 clrw ; vynulovani portu
005A 0085 00035 movwf PORTA
005B 0086 00036 movwf PORTB
00037
005C 1585 00038 bsf PORTA, 3 ; Pull-Up na tlacitka
00039
005D 1086 00040 bcf PORTB, 1 ; zhasnuti LED
005E 1106 00041 bcf PORTB, 2
005F 1186 00042 bcf PORTB, 3
00043
0060 00044 MainLoop:
0060 3002 00045 movlw 2
0061 0091 00046 movwf volani ; Nastavi pocet volani procedury vybito
0062 1506 00047 bsf PORTB, C1 ; Nabiti kondenzatoru1
0063 1586 00048 bsf PORTB, C2 ; Nabiti kondenzatoru2
0064 00049 dal:
0064 1D05 00050 btfss PORTA, C1 ; Test kondenzatoru1
0065 206B 00051 call vibito
00052
0066 1D86 00053 btfss PORTB, C2 ; Test kondenzatoru2
0067 206B 00054 call vibito
00055
0068 0A90 00056 incf Ramec, f
0069 2864 00057 goto dal
006A 2860 00058 goto MainLoop
00059 ;---------------
00060
006B 00061 vibito:
006B 3004 00062 movlw 4
006C 0092 00063 movwf CT1 ; uvolneni mista
006D 00064 zapis:
006D 0D90 00065 rlf Ramec, f
006E 0B92 00066 decfsz CT1, f
006F 286D 00067 goto zapis
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 7
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
0070 0B91 00068 decfsz volani, f
00069
0071 2029 00070 call Protokol
00071
0072 2860 00072 goto MainLoop
00073
00074
00075 ;----------------------------
00076 ; Definice promenych
00077 ;----------------------------
00078
00079 cblock
00080
00000011 00081 volani
00000012 00082 CT1
00083
00084 endc
00085
00086 end
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 8
 
 
SYMBOL TABLE
LABEL VALUE
 
Bity 0000000F
C1 00000002
C2 00000003
CMP
CT1 00000012
Delay
Delay01
Delay10us 0000000C
Delay1ms 00000005
EEADR_0 00000009
EECON1_1 00000008
EECON2_1 00000009
EEDATA_0 00000008
FSR 00000004
Frek 0000000E
IND0 00000000
INTCON 0000000B
MainLoop 00000060
PCL 00000002
PCLATH 0000000A
PORTA 00000005
PORTB 00000006
Protokol 00000029
Ramec 00000010
Rotace 0000002F
SB
SC
SN
SNB
SNC
SNZ
SP
STATUS 00000003
SZ
Sinchro 00000017
Start 0000004D
TMR0 00000001
VysBit 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 00000000
MPASM 02.80 Released MAIN.ASM 8-9-2002 12:26:04 PAGE 9
 
 
SYMBOL TABLE
LABEL VALUE
 
_RP0 00000005
_RP1 00000006
_T0IE 00000005
_T0IF 00000002
_TO 00000004
_ZERO 00000002
__16C84__ 00000000
__16F84 00000001
dal 00000064
frek0 00000033
frek1 00000040
page0
page1
smycka1 00000035
smycka2 00000042
vibito 0000006B
volani 00000011
vys 00000001
xxx 0000000D
yyy 0000000C
zapis 0000006D
 
 
MEMORY USAGE MAP ('X' = Used, '-' = Unused)
 
0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXX-------------
 
All other memory blocks unused.
 
Program Memory Words Used: 112
Program Memory Words Free: 912
 
 
Errors : 0
Warnings : 0 reported, 0 suppressed
Messages : 0 reported, 0 suppressed
 
/programy/ASM/prenos/PRG.BAT
0,0 → 1,8
@echo off
picpgr reset PIC16F84
picpgr erase PIC16F84
cls
picpgr program main.hex hex PIC16f84 XT_ON PWRTE_ON WDTE_OFF CP_OFF
picpgr run
pause
picpgr stop
/programy/ASM/prenos/PRG.PIF
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/PROTOKOL.$$$
0,0 → 1,75
Sinchro:
bsf PORTB, vys
call Delay10us
call Delay10us
call Delay10us
bcf PORTB, vys ; 1. impuls (30us)
call Delay10us
call Delay10us
call Delay10us
bsf PORTB, vys
call Delay10us
call Delay10us
bcf PORTB, vys ; 2. impuls (20us)
call Delay10us
call Delay10us
bsf PORTB, vys
call Delay10us
bcf PORTB, vys ; 3. impuls (10us)
call Delay10us
;return
 
;-------------------------
Protokol:
movlw 8
movwf Bity ; nastaveni slova
call Sinchro
VysBit:
btfss Ramec, 0
call frek0
call frek1
Rotace:
rrf Ramec, f
decfsz Bity, f
goto VysBit
return
 
;-------------------------
frek0:
movlw 60
movwf Frek
smycka1:
bsf PORTB, vys ; 2000 Hz 60 impulsu
Delay 50
bcf PORTB, vys
Delay 50
decfsz Frek,f
goto smycka1
call Rotace
;-------------------------
frek1:
movlw 45
movwf Frek
smycka2:
bsf PORTB, vys ; 1500 Hz 45 impulsu
Delay 150
bcf PORTB, vys
Delay 150
decfsz Frek,f
goto smycka2
call Rotace
;-------------------------
 
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
Frek
Bity
Ramec
endc
/programy/ASM/prenos/RUN.PIF
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/delay.asm
0,0 → 1,59
;Pro krystal 4Mhz
 
;--- Macro na spozdeni 1ms az 255ms ---
Delay macro ms
movlw ms
movwf xxx
call Delay1ms
endm
 
;--- Macro na spozdeni 0,1ms az 2,5ms (10-250) ---
Delay01 macro us
movlw us
movwf yyy
call Delay10us
nop
nop ; Z duvodu vyrovnani poctu potrebnych taktu jako na Delay1ms
nop
return
endm
;--- Spozdeni v nasobcich 1ms+2us ----
 
Delay1ms:
movlw 99 ; 1 ms
movwf yyy ; goto 2 takty decfsz 1 kdyz 1 jinak 2
call Delay10us
 
decfsz xxx, f
goto Delay1ms
nop
;---------------------------------
return ;2us
 
;--- Spozdeni v nasobcich 10us ----
Delay10us: ; Prodleva (CT1 * 10us)
nop
nop
nop
nop
nop
nop
nop
decfsz yyy, f
goto Delay10us
nop
return
;-------------------------
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
yyy
xxx
 
endc
 
/programy/ASM/prenos/main.asm
0,0 → 1,86
#include 16C84.INC
 
vys EQU 1 ;vystupni portB protokol.asm
C1 EQU 2 ;pripojeni C1 na port B
C2 EQU 3 ;ptipojeni C2 na port B
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
goto Start
 
#include Delay.asm
#include Protokol.asm
Start:
page1
movlw 00000000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110011B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
movlw 2
movwf volani ; Nastavi pocet volani procedury vybito
bsf PORTB, C1 ; Nabiti kondenzatoru1
bsf PORTB, C2 ; Nabiti kondenzatoru2
dal:
btfss PORTA, C1 ; Test kondenzatoru1
call vibito
 
btfss PORTB, C2 ; Test kondenzatoru2
call vibito
 
incf Ramec, f
goto dal
goto MainLoop
;---------------
 
vibito:
movlw 4
movwf CT1 ; uvolneni mista
zapis:
rlf Ramec, f
decfsz CT1, f
goto zapis
decfsz volani, f
 
call Protokol
 
goto MainLoop
 
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
volani
CT1
 
endc
 
end
/programy/ASM/prenos/main.pjt
0,0 → 1,101
[PROJECT]
Target=MAIN.HEX
Development_Mode=1
Processor=0x684a
ToolSuite=Microchip
 
[Fuses]
Frequency=4000000.000000
ClockSource=1
Mode=0
WDTEnable=0
WDTBreak=0
WDTPrescale=710
StackBreak=0
Freeze=1
EmulatorMemory=1
ShortWrites=0
PwrSetting=0
OSC_Settings=0
ProgBankRegEnable=0
BankRegStartAddress=0
BankRegEndAddress=0
DisableIoPins=0
12CXXX_MCLR_ENABLE=0
CPP2_ENABLE=0
LPSC_ENABLE=0
MCLRPU_ENABLE=0
 
[Directories]
Include=.
Library=
LinkerScript=
 
[Target Data]
FileList=MAIN.ASM;
BuildTool=MPASM
OptionString=
AdditionalOptionString=·pÿo
BuildRequired=0
 
[SERVO.ASM]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
 
[Trace-Config]
GetAddress=1
AddressWidth=5.000000
GetOpcode=1
OpcodeWidth=5.000000
GetLabel=1
LabelWidth=8.000000
GetInstruction=1
InstructionWidth=10.000000
InstructionRaw=1
GetSrcAddr=1
SrcAddrWidth=4.000000
SrcAddrRaw=1
GetSrcValue=1
SrcValueWidth=4.000000
GetDstAddr=1
DstAddrWidth=4.000000
DstAddrRaw=1
GetDstValue=1
DstValueWidth=4.000000
GetExtInputs=1
ExtInputsWidth=9.000000
ExtInputsHexFmt=0
GetTimeStamp=1
TimeStampWidth=11.000000
TimeStampDiplay=0
TraceLines=100
TraceFull=0
CodeCoverageReset=1
 
[]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
 
[MAIN.ASM]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
 
[mru-list]
1=d:\@kaklik\programy\prenos\protokol.asm
2=d:\@kaklik\programy\prenos\prijimac\prijimac.asm
3=d:\@kaklik\programy\prenos\main.asm
4=d:\@kaklik\programy\prenos\servo.asm
5=d:\@kaklik\programy\prenos\delay.asm
 
/programy/ASM/prenos/prijimac/16C84.INC
0,0 → 1,102
;
; Definice registru a zakladnich maker pro 16C84
;
processor 16f84
radix D
 
__16C84__: ; Priznak modulu 16C84
 
; Definice registru
 
IND0 equ 00H ; 0&1 Pristup na neprimou adresu
TMR0 equ 01H ; 0 Real Time clock counter
PCL equ 02H ; 0&1 Spodni cast PC
STATUS equ 03H ; 0&1 Stavove bity
_CARRY equ 0
_DC equ 1
_ZERO equ 2
_PD equ 3
_TO equ 4
_RP0 equ 5
_RP1 equ 6
_IRP equ 7
FSR equ 04H ; 0&1 Ukazatel pro neprime adresovani
PORTA equ 05H ; 0&1 Data a rizeni portu A
PORTB equ 06H ; 0&1 Data a rizeni portu B
EEDATA_0 equ 08H ; 0 Data EEPROM
EECON1_1 equ 08H ; 1 Rizeni EEPROM
_EERD equ 0
_EEWR equ 1
_EEWREN equ 2
_EEWRERR equ 3
_EEIF equ 4
EEADR_0 equ 09H ; 0 Adresa EEPROM
EECON2_1 equ 09H ; 1 Aktivacni pseudoregistr
PCLATH equ 0AH ; 0&1 Horni cast PC pro move
INTCON equ 0BH ; 0&1 Rizeni preruseni
_RBIF equ 0 ;
_INTF equ 1
_T0IF equ 2
_RBIE equ 3
_INTE equ 4
_T0IE equ 5
_EEIE equ 6
_GIE equ 7
 
page0 macro
bcf STATUS,_RP0
endm
 
page1 macro
bsf STATUS,_RP0
endm
;
; Sada maker pro porovnani a skoky
;
 
;--- Compare ---
CMP macro ZNAK, PROCEDURA ; if W=ZNAK then goto PROCEDURA
xorlw ZNAK ; if W#ZNAK then zachovej W a neskakej
btfsc STATUS,_ZERO
goto PROCEDURA
xorlw ZNAK
endm
 
;--- Skip if Carry ---
SC macro
btfss STATUS,_CARRY
endm
 
;--- Skip if not Carry ---
SNC macro
btfsc STATUS,_CARRY
endm
 
;--- Skip if Zero ---
SZ macro
btfss STATUS,_ZERO
endm
 
;--- Skip if not Zero ---
SNZ macro
btfsc STATUS,_ZERO
endm
 
;--- Skip if Borrow ( Negative ) --- ( po odecitani )
SB macro
btsfsc STATUS,_CARRY
endm
SN macro
btfsc STATUS,_CARRY
endm
 
;--- Skip if not Borrow ( Positive ) --- ( po odecitani )
SNB macro
btfss STATUS,_CARRY
endm
SP macro
btfss STATUS,_CARRY
endm
 
cblock 0CH ; Prvni volny registr
endc
/programy/ASM/prenos/prijimac/PRIJIMAC.$$$
0,0 → 1,99
#include 16C84.INC
 
PRYJM EQU 0 ;portb
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
goto Start
 
#include delay.asm
 
 
Start:
page1
movlw 00101000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110111B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
;bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
btfss PORTB, PRYJM ;cekani na impuls1
goto MainLoop
 
call Delay10us
call Delay10us
 
btfss PORTB, PRYJM ;potvrzeni impulsu1
goto MainLoop
 
call Delay10us
call Delay10us
smycka:
btfsc PORTB, PRYJM
goto smycka
;sinchronizace
call Delay10us
 
smycka1: ;2impuls
btfss PORTB, PRYJM
goto smycka1
call Delay10us
 
smycka2:
btfss PORTB, PRYJM
goto MainLoop
 
mezera2:
btfsc PORTB, PRYJM
goto mezera2
 
impuls3:
btfss PORTB, PRYJM
goto impuls3
 
mezera3:
btfsc PORTB, PRYJM
goto mezera3
call Delay10ms
clrf TMR0
Delay
;-------------------------
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
CT1
CT2
 
endc
 
end
/programy/ASM/prenos/prijimac/PRIJIMAC.COD
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/prijimac/PRIJIMAC.ERR
--- prijimac/PRIJIMAC.HEX (nonexistent)
+++ prijimac/PRIJIMAC.HEX (revision 6)
@@ -0,0 +1,10 @@
+:020000001728BF
+:08000800172863308C000C2066
+:100010008D0B052800000800000000000000000013
+:100020000000000000008C0B0C2800000800831664
+:100030002830810000308B008316F7308500F130C6
+:10004000860083120301850086008515861006113F
+:100050008611061C29280C200C20061C29280C209F
+:100060000C20061831280C20061C34280C20061CF5
+:0E007000292806183928061C3B2806183D28AA
+:00000001FF
/programy/ASM/prenos/prijimac/PRIJIMAC.LST
0,0 → 1,383
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 1
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00001 #include 16C84.INC
00001 ;
00002 ; Definice registru a zakladnich maker pro 16C84
00003 ;
00004 processor 16f84
00005 radix D
00006
0000 00007 __16C84__: ; Priznak modulu 16C84
00008
00009 ; Definice registru
00010
00000000 00011 IND0 equ 00H ; 0&1 Pristup na neprimou adresu
00000001 00012 TMR0 equ 01H ; 0 Real Time clock counter
00000002 00013 PCL equ 02H ; 0&1 Spodni cast PC
00000003 00014 STATUS equ 03H ; 0&1 Stavove bity
00000000 00015 _CARRY equ 0
00000001 00016 _DC equ 1
00000002 00017 _ZERO equ 2
00000003 00018 _PD equ 3
00000004 00019 _TO equ 4
00000005 00020 _RP0 equ 5
00000006 00021 _RP1 equ 6
00000007 00022 _IRP equ 7
00000004 00023 FSR equ 04H ; 0&1 Ukazatel pro neprime adresovani
00000005 00024 PORTA equ 05H ; 0&1 Data a rizeni portu A
00000006 00025 PORTB equ 06H ; 0&1 Data a rizeni portu B
00000008 00026 EEDATA_0 equ 08H ; 0 Data EEPROM
00000008 00027 EECON1_1 equ 08H ; 1 Rizeni EEPROM
00000000 00028 _EERD equ 0
00000001 00029 _EEWR equ 1
00000002 00030 _EEWREN equ 2
00000003 00031 _EEWRERR equ 3
00000004 00032 _EEIF equ 4
00000009 00033 EEADR_0 equ 09H ; 0 Adresa EEPROM
00000009 00034 EECON2_1 equ 09H ; 1 Aktivacni pseudoregistr
0000000A 00035 PCLATH equ 0AH ; 0&1 Horni cast PC pro move
0000000B 00036 INTCON equ 0BH ; 0&1 Rizeni preruseni
00000000 00037 _RBIF equ 0 ;
00000001 00038 _INTF equ 1
00000002 00039 _T0IF equ 2
00000003 00040 _RBIE equ 3
00000004 00041 _INTE equ 4
00000005 00042 _T0IE equ 5
00000006 00043 _EEIE equ 6
00000007 00044 _GIE equ 7
00045
00046 page0 macro
00047 bcf STATUS,_RP0
00048 endm
00049
00050 page1 macro
00051 bsf STATUS,_RP0
00052 endm
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 2
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00053 ;
00054 ; Sada maker pro porovnani a skoky
00055 ;
00056
00057 ;--- Compare ---
00058 CMP macro ZNAK, PROCEDURA ; if W=ZNAK then goto PROCEDURA
00059 xorlw ZNAK ; if W#ZNAK then zachovej W a neskakej
00060 btfsc STATUS,_ZERO
00061 goto PROCEDURA
00062 xorlw ZNAK
00063 endm
00064
00065 ;--- Skip if Carry ---
00066 SC macro
00067 btfss STATUS,_CARRY
00068 endm
00069
00070 ;--- Skip if not Carry ---
00071 SNC macro
00072 btfsc STATUS,_CARRY
00073 endm
00074
00075 ;--- Skip if Zero ---
00076 SZ macro
00077 btfss STATUS,_ZERO
00078 endm
00079
00080 ;--- Skip if not Zero ---
00081 SNZ macro
00082 btfsc STATUS,_ZERO
00083 endm
00084
00085 ;--- Skip if Borrow ( Negative ) --- ( po odecitani )
00086 SB macro
00087 btsfsc STATUS,_CARRY
00088 endm
00089 SN macro
00090 btfsc STATUS,_CARRY
00091 endm
00092
00093 ;--- Skip if not Borrow ( Positive ) --- ( po odecitani )
00094 SNB macro
00095 btfss STATUS,_CARRY
00096 endm
00097 SP macro
00098 btfss STATUS,_CARRY
00099 endm
00100
00101 cblock 0CH ; Prvni volny registr
00102 endc
00002
00000000 00003 PRYJM EQU 0 ;portb
00004
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 3
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
0000 00005 org 0
00006
0000 2817 00007 goto Start
00008 ;--------------------
0004 00009 org 4
00010 ;--------------------
0004 2817 00011 goto Start
00012
00013 #include delay.asm
00001 ;Pro krystal 4Mhz
00002
00003 ;--- Macro na spozdeni 1ms az 255ms ---
00004 Delay macro ms
00005 movlw ms
00006 movwf xxx
00007 call Delay1ms
00008 endm
00009
00010 ;--- Macro na spozdeni 0,1ms az 2,5ms (10-250) ---
00011 Delay01 macro us
00012 movlw us
00013 movwf yyy
00014 call Delay10us
00015
00016 nop
00017 nop ; Z duvodu vyrovnani poctu potrebnych taktu jako na Delay1ms
00018 nop
00019 return
00020 endm
00021 ;--- Spozdeni v nasobcich 1ms+2us ----
00022
0005 00023 Delay1ms:
0005 3063 00024 movlw 99 ; 1 ms
0006 008C 00025 movwf yyy ; goto 2 takty decfsz 1 kdyz 1 jinak 2
0007 200C 00026 call Delay10us
00027
0008 0B8D 00028 decfsz xxx, f
0009 2805 00029 goto Delay1ms
000A 0000 00030 nop
00031 ;---------------------------------
000B 0008 00032 return ;2us
00033
00034 ;--- Spozdeni v nasobcich 10us ----
000C 00035 Delay10us: ; Prodleva (CT1 * 10us)
000C 0000 00036 nop
000D 0000 00037 nop
000E 0000 00038 nop
000F 0000 00039 nop
0010 0000 00040 nop
0011 0000 00041 nop
0012 0000 00042 nop
0013 0B8C 00043 decfsz yyy, f
0014 280C 00044 goto Delay10us
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 4
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
0015 0000 00045 nop
0016 0008 00046 return
00047 ;-------------------------
00048
00049 ;----------------------------
00050 ; Definice promenych
00051 ;----------------------------
00052
00053 cblock
00054
0000000C 00055 yyy
0000000D 00056 xxx
00057
00058 endc
00059
00014
00015
0017 00016 Start:
00017 page1
0017 1683 M bsf STATUS,_RP0
0018 3028 00018 movlw 00101000B ; inicializace citace a prescaleru
0019 0081 00019 movwf TMR0
001A 3000 00020 movlw 00000000B ; konfigurace preruseni
001B 008B 00021 movwf INTCON
00022
00023 page1
001C 1683 M bsf STATUS,_RP0
001D 30F7 00024 movlw 11110111B ; nastaveni portu na vstup nebo vystup
001E 0085 00025 movwf PORTA ; 1=vstup 0=vystup
001F 30F1 00026 movlw 11110001B
0020 0086 00027 movwf PORTB
00028
00029 ;bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
00030
00031 page0
0021 1283 M bcf STATUS,_RP0
00032
0022 0103 00033 clrw ; vynulovani portu
0023 0085 00034 movwf PORTA
0024 0086 00035 movwf PORTB
00036
0025 1585 00037 bsf PORTA, 3 ; Pull-Up na tlacitka
00038
0026 1086 00039 bcf PORTB, 1 ; zhasnuti LED
0027 1106 00040 bcf PORTB, 2
0028 1186 00041 bcf PORTB, 3
00042
0029 00043 MainLoop:
0029 1C06 00044 btfss PORTB, PRYJM ;cekani na impuls1
002A 2829 00045 goto MainLoop
00046
002B 200C 00047 call Delay10us
002C 200C 00048 call Delay10us
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 5
 
 
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
 
00049
002D 1C06 00050 btfss PORTB, PRYJM ;potvrzeni impulsu1
002E 2829 00051 goto MainLoop
00052
002F 200C 00053 call Delay10us
0030 200C 00054 call Delay10us
0031 00055 smycka:
0031 1806 00056 btfsc PORTB, PRYJM
0032 2831 00057 goto smycka
00058 ;sinchronizace
0033 200C 00059 call Delay10us
00060
0034 00061 smycka1: ;2impuls
0034 1C06 00062 btfss PORTB, PRYJM
0035 2834 00063 goto smycka1
0036 200C 00064 call Delay10us
00065
0037 00066 smycka2:
0037 1C06 00067 btfss PORTB, PRYJM
0038 2829 00068 goto MainLoop
00069
0039 00070 mezera2:
0039 1806 00071 btfsc PORTB, PRYJM
003A 2839 00072 goto mezera2
00073
003B 00074 impuls3:
003B 1C06 00075 btfss PORTB, PRYJM
003C 283B 00076 goto impuls3
00077
003D 00078 mezera3:
003D 1806 00079 btfsc PORTB, PRYJM
003E 283D 00080 goto mezera3
00081
00082
00083 ;-------------------------
00084
00085 ;----------------------------
00086 ; Definice promenych
00087 ;----------------------------
00088
00089 cblock
00090
0000000E 00091 CT1
0000000F 00092 CT2
00093
00094 endc
00095
00096 end
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 6
 
 
SYMBOL TABLE
LABEL VALUE
 
CMP
CT1 0000000E
CT2 0000000F
Delay
Delay01
Delay10us 0000000C
Delay1ms 00000005
EEADR_0 00000009
EECON1_1 00000008
EECON2_1 00000009
EEDATA_0 00000008
FSR 00000004
IND0 00000000
INTCON 0000000B
MainLoop 00000029
PCL 00000002
PCLATH 0000000A
PORTA 00000005
PORTB 00000006
PRYJM 00000000
SB
SC
SN
SNB
SNC
SNZ
SP
STATUS 00000003
SZ
Start 00000017
TMR0 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__ 00000000
MPASM 02.80 Released PRIJIMAC.ASM 8-8-2002 19:29:29 PAGE 7
 
 
SYMBOL TABLE
LABEL VALUE
 
__16F84 00000001
impuls3 0000003B
mezera2 00000039
mezera3 0000003D
page0
page1
smycka 00000031
smycka1 00000034
smycka2 00000037
xxx 0000000D
yyy 0000000C
 
 
MEMORY USAGE MAP ('X' = Used, '-' = Unused)
 
0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX-
 
All other memory blocks unused.
 
Program Memory Words Used: 60
Program Memory Words Free: 964
 
 
Errors : 0
Warnings : 0 reported, 0 suppressed
Messages : 0 reported, 0 suppressed
 
/programy/ASM/prenos/prijimac/delay.asm
0,0 → 1,59
;Pro krystal 4Mhz
 
;--- Macro na spozdeni 1ms az 255ms ---
Delay macro ms
movlw ms
movwf xxx
call Delay1ms
endm
 
;--- Macro na spozdeni 0,1ms az 2,5ms (10-250) ---
Delay01 macro us
movlw us
movwf yyy
call Delay10us
nop
nop ; Z duvodu vyrovnani poctu potrebnych taktu jako na Delay1ms
nop
return
endm
;--- Spozdeni v nasobcich 1ms+2us ----
 
Delay1ms:
movlw 99 ; 1 ms
movwf yyy ; goto 2 takty decfsz 1 kdyz 1 jinak 2
call Delay10us
 
decfsz xxx, f
goto Delay1ms
nop
;---------------------------------
return ;2us
 
;--- Spozdeni v nasobcich 10us ----
Delay10us: ; Prodleva (CT1 * 10us)
nop
nop
nop
nop
nop
nop
nop
decfsz yyy, f
goto Delay10us
nop
return
;-------------------------
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
yyy
xxx
 
endc
 
/programy/ASM/prenos/prijimac/main.pjt
0,0 → 1,97
[PROJECT]
Target=PRIJIMAC.HEX
Development_Mode=1
Processor=0x684a
ToolSuite=Microchip
 
[Fuses]
Frequency=4000000.000000
ClockSource=1
Mode=0
WDTEnable=0
WDTBreak=0
WDTPrescale=710
StackBreak=0
Freeze=1
EmulatorMemory=1
ShortWrites=0
PwrSetting=0
OSC_Settings=0
ProgBankRegEnable=0
BankRegStartAddress=0
BankRegEndAddress=0
DisableIoPins=0
12CXXX_MCLR_ENABLE=0
CPP2_ENABLE=0
LPSC_ENABLE=0
MCLRPU_ENABLE=0
 
[Directories]
Include=.
Library=
LinkerScript=
 
[Target Data]
FileList=PRIJIMAC.ASM;
BuildTool=MPASM
OptionString=
AdditionalOptionString=qWp
BuildRequired=1
 
[PRIJIMAC.ASM]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
 
[Trace-Config]
GetAddress=1
AddressWidth=5.000000
GetOpcode=1
OpcodeWidth=5.000000
GetLabel=1
LabelWidth=8.000000
GetInstruction=1
InstructionWidth=10.000000
InstructionRaw=1
GetSrcAddr=1
SrcAddrWidth=4.000000
SrcAddrRaw=1
GetSrcValue=1
SrcValueWidth=4.000000
GetDstAddr=1
DstAddrWidth=4.000000
DstAddrRaw=1
GetDstValue=1
DstValueWidth=4.000000
GetExtInputs=1
ExtInputsWidth=9.000000
ExtInputsHexFmt=0
GetTimeStamp=1
TimeStampWidth=11.000000
TimeStampDiplay=0
TraceLines=100
TraceFull=0
CodeCoverageReset=1
 
[]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
 
[mru-list]
1=d:\@kaklik\programy\prenos\prijimac\prijimac.asm
2=d:\@kaklik\programy\prenos\prijimac\delay.asm
3=d:\@kaklik\programy\prenos\protokol.asm
4=d:\@kaklik\programy\prenos\main.asm
5=d:\@kaklik\programy\prenos\servo.asm
 
[Windows]
1=0000 d:\@kaklik\programy\prenos\prijimac\prijimac.asm 0 0 638 324 3 0
0=0004 22 22 660 346 3 0
 
/programy/ASM/prenos/prijimac/prijimac.asm
0,0 → 1,101
#include 16C84.INC
 
PRYJM EQU 0 ;portb
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
goto Start
 
#include delay.asm
 
 
Start:
page1
movlw 00101000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110111B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
;bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
btfss PORTB, PRYJM ;cekani na impuls1
goto MainLoop
 
call Delay10us
call Delay10us
 
btfss PORTB, PRYJM ;potvrzeni impulsu1
goto MainLoop
 
call Delay10us
call Delay10us
smycka:
btfsc PORTB, PRYJM
goto smycka
;sinchronizace
call Delay10us
 
smycka1: ;2impuls
btfss PORTB, PRYJM
goto smycka1
call Delay10us
 
smycka2:
btfss PORTB, PRYJM
goto MainLoop
 
mezera2:
btfsc PORTB, PRYJM
goto mezera2
 
impuls3:
btfss PORTB, PRYJM
goto impuls3
 
mezera3:
btfsc PORTB, PRYJM
goto mezera3
 
call Delay10ms
clrf TMR0
Delay
;-------------------------
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
CT1
CT2
 
endc
 
end
/programy/ASM/prenos/prijimac/vssver.scc
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/ASM/prenos/protokol.asm
0,0 → 1,76
Sinchro:
bsf PORTB, vys
call Delay10us
call Delay10us
call Delay10us
bcf PORTB, vys ; 1. impuls (30us)
call Delay10us
call Delay10us
call Delay10us
bsf PORTB, vys
call Delay10us
call Delay10us
bcf PORTB, vys ; 2. impuls (20us)
call Delay10us
call Delay10us
bsf PORTB, vys
call Delay10us
bcf PORTB, vys ; 3. impuls (10us)
call Delay10us
;return
 
;-------------------------
Protokol:
movlw 8
movwf Bity ; nastaveni slova
call Sinchro
VysBit:
btfss Ramec, 0
call frek0
call frek1
;-------------------------
Rotace:
rrf Ramec, f
decfsz Bity, f
goto VysBit
return
 
;-------------------------
frek0:
movlw 60
movwf Frek
smycka1:
bsf PORTB, vys ; 2000 Hz 60 impulsu
Delay 50
bcf PORTB, vys
Delay 50
decfsz Frek,f
goto smycka1
goto Rotace
;-------------------------
frek1:
movlw 45
movwf Frek
smycka2:
bsf PORTB, vys ; 1500 Hz 45 impulsu
Delay 150
bcf PORTB, vys
Delay 150
decfsz Frek,f
goto smycka2
goto Rotace
;-------------------------
 
 
;----------------------------
; Definice promenych
;----------------------------
 
cblock
Frek
Bity
Ramec
endc
/programy/ASM/prenos/run.BAT
0,0 → 1,11
@echo off
picpgr stop
pause
picpgr run
pause
picpgr stop
pause
picpgr run
pause
picpgr stop
pause
/programy/ASM/prenos/servo.asm
0,0 → 1,163
#include 16C84.INC
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
 
Start:
page1
movlw 00000000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110111B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
movlw 2
movwf volani ; Nastavi pocet volani procedury vibito
;bsf PORT ; Nabiti kondenzatoru1
;bsf PORT ; Nabiti kondenzatoru2
dal:
btfss PORTA, 1 ; Test kondenzatoru1
call vibito
bsf PORTB, 2
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
bcf PORTB, 2
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
 
bsf PORTB, 2
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
bcf PORTB, 2
 
 
 
 
btfss PORTB, 6 ; Test kondenzatoru2
call vibito
incf Ramec, f
goto dal
;---------------
 
Delay10us: ; Prodleva (DELAY10 * 10us)+3us
nop
nop
nop
nop
nop
nop
nop
decfsz CT1, 1
goto Delay10us
return
;-------------------------
Sinchro:
bsf PORTB, 1
call Delay10ms
call Delay10ms
call Delay10ms
bcf PORTB, 1 ; 1 impuls (30ms)
call Delay10ms
call Delay10ms
call Delay10ms
bsf PORTB, 1
call Delay10ms
call Delay10ms
bcf PORTB, 1 ; 2 impuls (20ms)
call Delay10ms
call Delay10ms
bsf PORTB, 1
call Delay10ms
bcf PORTB, 1 ; 3 impuls (10ms)
call Delay10ms
return
;-------------------------
Delay10ms:
movlw 100
movwf CT2
call Delay10us
decfsz CT2, f
goto Delay10ms
return
;-------------------------
Protokol:
movlw 8
movwf Bity ; nastaveni slova
call Sinchro
VysBit:
btfss Ramec, 0
call frek0
call frek1
rrf Ramec, f
decfsz Bity, f
goto VysBit
return
 
;-------------------------
frek0:
;-------------------------
frek1:
;-------------------------
vibito:
movlw 4
movwf CT1 ; uvolneni mista
zapis:
rlf Ramec, f
decfsz CT1, f
goto zapis
decfsz volani, f
return
call Protokol
call MainLoop
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
CT1
CT2
Bity
Ramec
volani
XXX
 
endc
 
end
/programy/ASM/prenos/servo.inc
0,0 → 1,11
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
CT1
CT2
XXX
 
endc
/programy/ASM/prenos/vssver.scc
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property