/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 |