Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Każda instrukcja mikrokontrolerów PIC10F20x jest 12-bitowym słowem podzielonym na kod operacji (ang. opcode = operation code), który określa typ instrukcji oraz jeden lub więcej argumentów, które dalej z kolei określają operację wykonywaną przez daną instrukcję. Formaty każdej z tych kategorii przedstawia poniższy rysunek, natomiast opis pól znajduje się w tabelce:
Ogólne formaty instrukcji
Operacje bajtowe na zestawie rejestrów
d = 0, przeznaczeniem jest rejestr W d = 1, przeznaczeniem jest rejestr f f = 5-bitowy adres rejestru (0...31) |
Operacje bitowe na rejestrach
b = 3-bitowy numer bitu (0...7) f = 5-bitowy adres rejestru (0...31) |
Operacje sterujące i operacje ze stałą
(z wyjątkiem GOTO)
k = 8-bitowa stała (0...255) |
instrukcja GOTO
k = 9-bitowa stała (0...511) |
Pole | Opis |
f | Adres rejestru plikowego (0x00 ... 0x7F). |
W | Rejestr roboczy (akumulator). |
b | Adres bitu wewnątrz 8-bitowego rejestru. |
k | Pole literału, stałe dane lub etykieta. |
x | Pole o nieistotnej zawartości (0 lub 1). Asembler wstawi w takie pole zero. Jest to zalecane dla kompatybilności z przyszłymi narzędziami Microchip'a. |
d | Wybór miejsca docelowego: d = 0 (wynik trafi do W). d = 1 (wynik trafi do rejestru plikowego f). Standardem jest d = 1. |
label | Nazwa etykiety. |
TOS | Szczyt stosu (ang. Top-of-Stack). |
PC | Licznik programu (ang. Program Counter). |
WDT | Timer licznika zegarowego (ang. Watchdog Timer counter). |
TO | Bit zakończenia zliczania w WDT (ang. Time-out bit). |
PD | Bit wyłączenia zasilania (ang. Power-down bit). |
dest | Miejsce docelowe, albo rejestr W, albo określony rejestr plikowy. |
{ } | Opcje. |
( ) | Zawartość. |
← | Przypisanie. |
[ ] | Pole bitowe rejestru. |
kursywa |
termin zdefiniowany przez użytkownika |
Dla instrukcji zorientowanych na bajty 'f' oznacza deskryptor rejestru plikowego, a 'd' oznacza desygnator rejestru docelowego. Desygnator rejestru plikowego określa rejestr plikowy używany przez daną instrukcję. Desygnator rejestru docelowego określa miejsce, do którego trafi wynik operacji. Jeśli 'd' ma wartość zero, to wynik jest umieszczany w rejestrze akumulatora W. Jeśli 'd' ma wartość 1, to wynik jest umieszczany w rejestrze plikowym określonym w instrukcji.
Dla instrukcji zorientowanych na bity 'b' oznacza desygnator pola bitowego, który wybiera bit przetwarzany w operacji, natomiast 'f' oznacza numer rejestru plikowego, w którym dany bit się znajduje.
Dla operacji na literałach oraz operacji sterujących 'k' oznacza 8- lub 9-bitową stałą lub wartość literału.
Wszystkie instrukcje wykonywane są w czasie pojedynczego cyklu rozkazowego, o ile test warunkowy w instrukcji jest prawdziwy lub zmieniany jest licznik programu (ang. Program Counter, PC) w wyniku działania instrukcji. W tym przypadku wykonanie zabiera dwa cykle rozkazowe. Jeden cykl rozkazowy składa się z czterech okresów oscylatora systemu. W ten sposób przy oscylatorze pracującym z częstotliwością 4MHz normalny czas wykonania instrukcji wynosi 1µs. Jeśli test warunkowy jest spełniony lub licznik rozkazu zostaje zmieniony w wyniku działania instrukcji, to czas wykonania wydłuża się do 2µs.
Liczby szesnastkowe przedstawiane są tutaj w formacie używanym w języku C/C++:
0xhhh
gdzie 'h' oznacza cyfrę szesnastkową (0...9, a...h/A...H).
Mnemonik, argumenty | Opis | Cykle | 12-bitowy kod | Znaczniki | Uwagi | |||
ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF |
f, d f, d f — f, d f, d f, d f, d f, d f, d f, d f — f, d f, d f, d f, d f, d |
Dodaj W i f Logiczne AND W z f Zeruj f Zeruj W Neguj f Zmniejsz f o 1 Zmniejsz f o 1, pomiń przy 0 Zwiększ f o 1 Zwiększ f, pomiń przy 0 Logiczne OR W z f Kopiuj f Kopiuj W do f Operacja pusta Obróć f w lewo przez C Obróć f w prawo przez C Odejmij W od f Zamień f Logiczne OR W z f |
1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1 |
0001 0001 0000 0000 0010 0000 0010 0010 0011 0001 0010 0000 0000 0011 0011 0000 0011 0001 |
11df 01df 011f 0100 01df 11df 11df 10df 11df 00df 00df 001f 0000 01df 00df 10df 10df 10df |
ffff ffff ffff 0000 ffff ffff ffff ffff ffff ffff ffff ffff 0000 ffff ffff ffff ffff ffff |
C, DC, Z Z Z Z Z Z Żaden Z Żaden Z Z Żaden Żaden C C C, DC, Z Żaden Z |
1,
2, 4 2, 4 4 2, 4 2, 4 2, 4 2, 4 2, 4 2, 4 1, 4 2, 4 2, 4 1, 2, 4 2, 4 2, 4 |
OPERACJE BITOWE NA REJESTRACH PLIKOWYCH | ||||||||
BCF BSF BTFSC BTFSS |
f, b f, b f, b f, b |
Zeruj bit w f Ustaw bit f Testuj bit w f, pomiń przy wyzerowanym Testuj bit w f, pomiń przy ustawionym |
1 1 1(2) 1(2) |
0100 0101 0110 0111 |
bbbf bbbf bbbf bbbf |
ffff ffff ffff ffff |
Żaden Żaden Żaden Żaden |
2,
4 2, 4 |
OPERACJE STERUJĄCE I LITERAŁOWE | ||||||||
ANDLW CALL CLRWDT GOTO IORLW MOVLW OPTION RETLW SLEEP TRIS XORLW |
k k k k k — k — f k |
Logiczne AND stałej z W Wywołaj podprogram Zeruj timer licznika zegarowego Skocz bezwarunkowo Logiczne OR stałej z W Wpisz stałą do W Ładuj do rejestru OPTION Wróć z podprogramu ze stałą w W Przejdź w tryb uśpienia Ładuj do rejestru TRIS Logiczne OR stałej z W |
1 2 1 2 1 1 1 2 1 1 1 |
1110 1001 0000 101k 1101 1100 0000 1000 0000 0000 |
kkkk kkkk 0000 kkkk kkkk kkkk 0000 kkkk 0000 0000 kkkk |
kkkk kkkk 0100 kkkk kkkk kkkk 0010 kkkk 0011 0fff kkkk |
Z Żaden TO, PD Żaden Z Żaden Żaden Żaden TO, PD Żaden Z |
1 3 |
Uwagi: | 1. | 9-ty bit licznika programu jest zerowany przy każdej instrukcji zapisującej do niego z wyjątkiem GOTO. Zobacz do podrozdziału "Licznik programu PCL". |
2. | Gdy rejestr we/wy zostaje zmodyfikowany jako funkcja samego siebie (np. MOVF PORTB, 1), to użytą wartością będzie aktualny stan końcówek portu. Na przykład, jeśli rejestr zatrzaskowy danych ma stan '1' dla końcówki skonfigurowanej jako wejście, a końcówka ta jest wysterowana stanem niskim przez zewnętrzne źródło, to wpisane z powrotem dane będą miały stan '0'. | |
3. | 3: Instrukcja TRIS f, gdzie f = 6, powoduje zapis zawartości rejestru roboczego W w rejestrach zatrzaskowych stanu wysokiej impedancji portu B. Bit '1' wymusza wysoką impedancję na odpowiadającej mu końcówce portu oraz wyłącza bufor wyjściowy. | |
4. | Jeśli ta instrukcja zostanie wykonana na rejestrze TMR0 (tam, gdzie dozwolone jest d = 1), to preskaler zostanie wyzerowany (jeśli jest przypisany do TMR0). |
Składnia: ADDWF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0001 11df ffff
Operacja: dest ← W + f
Modyfikowane znaczniki stanu: C, DC, Z
Opis: Dodanie zawartości rejestru roboczego W (akumulatora) i rejestru f. Jeśli d jest równe 0, to wynik dodawania zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: ANDLW k
Argumenty: k = 0...255
Kod: 1110 kkkk kkkk
Operacja: W ← W & k
Modyfikowane znaczniki stanu: Z
Opis: Zawartość akumulatora W zostaje poddana bitowej operacji koniunkcji logicznej z 8-bitową stałą k. Wynik jest umieszczany w akumulatorze W.
Składnia: ANDWF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0001 01df ffff
Operacja: dest ← W & f
Modyfikowane znaczniki stanu: Z
Opis: Zawartość akumulatora W zostaje poddana bitowej operacji koniunkcji logicznej z rejestrem f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: BCF f,b
Argumenty: f = 0...31, b = 0...7
Kod: 0100 bbbf ffff
Operacja: f[b] ← 0
Modyfikowane znaczniki stanu: żaden
Opis: Bit b w rejestrze f jest zerowany.
Składnia: BSF f,b
Argumenty: f = 0...31, b = 0...7
Kod: 0101 bbbf ffff
Operacja: f[b] ← 1
Modyfikowane znaczniki stanu: żaden
Opis: Bit b w rejestrze f jest ustawiany na 1.
Składnia: BTFSC f,b
Argumenty: f = 0...31, b = 0...7
Kod: 0110 bbbf ffff
Operacja: pominięcie następnej instrukcji, jeśli f[b] = 0
Modyfikowane znaczniki stanu: żaden
Opis: Jeśli bit b w rejestrze f ma stan 0, to zostaje pominięta następna instrukcja. Jeśli bit ten ma stan 0, to następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) zostaje usunięta z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja BTFSC zajmuje w tym przypadku 2 cykle rozkazowe.
Składnia: BTFSS f,b
Argumenty: f = 0...31, b = 0...7
Kod: 0111 bbbf ffff
Operacja: pominięcie następnej instrukcji, jeśli f[b] = 1
Modyfikowane znaczniki stanu: żaden
Opis: Jeśli bit b w rejestrze f ma stan 1, to zostaje pominięta następna instrukcja. Jeśli bit ten ma stan 1, to następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) zostaje usunięta z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja BTFSS zajmuje w tym przypadku 2 cykle rozkazowe.
Składnia: CALL k
Argumenty: k = 0...255
Kod: 1001 kkkk kkkk
Operacja:
TOS ← PC + 1
PC[7:0] ← k
PC[10:9] ← STATUS[6:5]
PC[8] ← 0
Modyfikowane znaczniki stanu: żaden
Opis: Wywołanie podprogramu. Najpierw na stosie zostaje umieszczony adres powrotny (PC + 1). 8-bitowy adres bezpośredni zostaje załadowany do ośmiu najmłodszych bitów licznika programu (P[7:0]). Górne bity PC[10:9] są ładowane z bitów rejestru stanu STATUS[6:5], bit PC[8] jest zerowany. Wynika z tego, iż podprogram może znajdować się tylko w pierwszej połówce 512-słowowej strony pamięci programu. Instrukcja CALL zajmuje 2 cykle rozkazowe.
Składnia: CLR f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0000 01df ffff
Operacja:
dest ← 00h
Z ← 1
Modyfikowane znaczniki stanu: Z
Opis: Bity rejestru docelowego zostają wyzerowane i jest ustawiany znacznik zera Z. Jeśli d = 0, to zerowany jest rejestr akumulatora W. Jeśli d = 1, to zerowany jest rejestr f.
Składnia: CLRF f
Argumenty: f = 0...31
Kod: 0000 011f ffff
Operacja:
f ←
00h
Z ← 1
Modyfikowane znaczniki stanu: Z
Opis: Bity rejestru f zostają wyzerowane i jest ustawiany znacznik zera Z.
Składnia: CLRW
Argumenty: brak
Kod: 0000 0100 0000
Operacja:
W ←
00h
Z ← 1
Modyfikowane znaczniki stanu: Z
Opis: Bity akumulatora W zostają wyzerowane i jest ustawiany znacznik zera Z.
Instrukcje CLRF i CLRW są tą samą instrukcją CLR f,d. Gdy d = 0, zerowany jest akumulator W. Gdy d = 1, zerowany jest rejestr f.
Składnia: CLRWDT
Argumenty: brak
Kod: 0000 0000 0100
Operacja:
WDT ←
00h
TO ← 1
PD ← 1
Modyfikowane znaczniki stanu: TO, PD
Opis: Instrukcja CLRWDT resetuje licznik zegarowy. Jeśli preskaler został przydzielony do licznika zegarowego, a nie do timera 0, to jest on również resetowany. Ustawiane są znaczniki stanu TO i PD (TO – Time-Out – znacznik sygnalizujący zakończenie czasu zliczania; PD – Power-Down – znacznik sygnalizujący wyłączenie zasilania).
Składnia: COMF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0010 01df ffff
Operacja: dest ← f
Modyfikowane znaczniki stanu: Z
Opis: Wartość bitowa rejestru f zostaje zanegowana. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: DECF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0000 11df ffff
Operacja: dest ← f - 1
Modyfikowane znaczniki stanu: Z
Opis: Wartość rejestru f jest zmniejszana o 1. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: DECFSZ f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0010 11df ffff
Operacja: dest ← f - 1, pominięcie następnej instrukcji przy wyniku zero
Modyfikowane znaczniki stanu: żaden
Opis: Wartość rejestru f jest zmniejszana o 1. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f. Jeśli wynik jest zerowy, to zostaje pominięta następna instrukcja, czyli następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) jest usuwana z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja DECFSZ zajmuje w tym przypadku 2 cykle rozkazowe.
Składnia: GOTO k
Argumenty: k = 0...511
Kod: 101k kkkk kkkk
Operacja:
PC[8:0] ← k
PC[10:9] ← STATUS[6:5]
Modyfikowane znaczniki stanu: żaden
Opis: Instrukcja GOTO jest skokiem bezwarunkowym do nowego miejsca w programie. 9-bitowy adres natychmiastowy zostaje załadowany do dziewięciu najmłodszych bitów rejestru licznika programu PC[8:0]. Górne bity PC są ładowane z bitów rejestru stanu STATUS[6:5]. Instrukcja GOTO zajmuje dwa cykle rozkazowe.
Składnia: DINCF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0010 10df ffff
Operacja: dest ← f + 1
Modyfikowane znaczniki stanu: Z
Opis: Wartość rejestru f jest zwiększana o 1. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: INCFSZ f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0011 11df ffff
Operacja: dest ← f + 1, pominięcie następnej instrukcji przy wyniku zero
Modyfikowane znaczniki stanu: żaden
Opis: Wartość rejestru f jest zwiększana o 1. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f. Jeśli wynik jest zerowy, to zostaje pominięta następna instrukcja, czyli następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) jest usuwana z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja INCFSZ zajmuje w tym przypadku 2 takty zegara.
Składnia: IORLW k
Argumenty: k = 0...255
Kod: 1101 kkkk kkkk
Operacja: W ← W | k
Modyfikowane znaczniki stanu: Z
Opis: Zawartość akumulatora W zostaje poddana bitowej operacji alternatywy logicznej z 8-bitową stałą k. Wynik jest umieszczany w akumulatorze W.
Składnia: IORWF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0001 00df ffff
Operacja: dest ← W | f
Modyfikowane znaczniki stanu: Z
Opis: Wartość akumulatora W zostaje poddana bitowej alternatywie logicznej z rejestrem f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: MOVF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0010 00df ffff
Operacja: dest ← f
Modyfikowane znaczniki stanu: Z
Opis: Zawartość rejestru f jest kopiowana do rejestru przeznaczenia. Jeśli d jest równe 0, to rejestrem przeznaczenia jest akumulator W. Jeśli d jest równe 1, to rejestrem przeznaczenia jest rejestr f. Opcja d = 1 jest wykorzystywana do sprawdzania stanu rejestru f, ponieważ jest ustawiany znacznik zera Z.
Składnia: MOVLW k
Argumenty: k = 0...255
Kod: 1100 kkkk kkkk
Operacja: W ← k
Modyfikowane znaczniki stanu: żaden
Opis: 8-bitowa stała jest ładowana do rejestru akumulatora W.
Składnia: MOVLW k
Argumenty: k = 0...255
Kod: 0000 001f ffff
Operacja: f ← W
Modyfikowane znaczniki stanu: żaden
Opis: Umieszczenie danych W w rejestrze f.
Składnia: NOP
Argumenty: brak
Kod:
0000 0000 0000
Operacja: brak
Modyfikowane znaczniki stanu: żaden
Opis: Instrukcja nie wykonuje żadnej operacji. Zajmuje jeden takt zegara. W rzeczywistości jest to instrukcja MOVWF 0,0, która umieszcza W w W.
Składnia: OPTION
Argumenty: brak
Kod:
0000 0000 0010
Operacja: Option ← W
Modyfikowane znaczniki stanu: żaden
Opis: Zawartość rejestru W jest ładowana do rejestru OPTION.
Składnia: RETLW k
Argumenty: k = 0...255
Kod: 1000 kkkk kkkk
Operacja:
W ← k
PC ← TOS
Modyfikowane znaczniki stanu: żaden
Opis: Do rejestru akumulatora W zostaje załadowana 8-bitowa stała k. Do rejestru licznika programu zostaje załadowany adres powrotny ze szczytu stosu. Instrukcja zajmuje 2 cykle rozkazowe.
Składnia: RLF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0011 01df ffff
Operacja:
Modyfikowane znaczniki stanu: C
Opis: Zawartość rejestru f jest obracana bitowo w lewo poprzez znacznik przeniesienia. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: RRF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0011 00df ffff
Operacja:
Modyfikowane znaczniki stanu: C
Opis: Zawartość rejestru f jest obracana bitowo w prawo poprzez znacznik przeniesienia. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: SLEEP
Argumenty: brak
Kod: 0000 0000 0011
Operacja:
WDT ← 00h
Preskaler WDT ← 0
TO ← 1
PD ← 0
Modyfikowane znaczniki stanu: TO, PD, RBWUF
Opis: Zostaje ustawiony znacznik zakończenia zliczania TO (ang. Time-out Status bit). Znacznik wyłączenia zasilania PD (ang. Power-down Status bit) jest zerowany. Licznik zegarowy i jego preskaler są zerowane. Procesor zostaje wprowadzony w tryb uśpienia z zatrzymanym oscylatorem. Szczegóły znajdziesz w podrozdziale "Tryb wyłączenia zasilania".
Składnia: SUBWF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0000 10df ffff
Operacja: dest ← f - W
Modyfikowane znaczniki stanu: C, DC, Z
Opis: Odejmowanie (metodą uzupełnień do 2) rejestru akumulatora W od rejestru f. Jeśli d jest równe 0, to wynik odejmowania zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: SWAPF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0011 10df ffff
Operacja:
dest[7:4] ← f[3:0]
dest[3:0] ← f[7:4]
Modyfikowane znaczniki stanu: żadne
Opis: Górna i dolna połówka (4 bity) rejestru f zostają zamienione miejscami. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Składnia: TRIS f
Argumenty: f = 6...7
Kod: 0000 0000 0fff
Operacja: rejestr TRIS f ← W
Modyfikowane znaczniki stanu: żadne
Opis: Wybrany rejestr TRIS f zostaje załadowany zawartością akumulatora W.
Składnia: XORLW k
Argumenty: k = 0...255
Kod: 1111 kkkk kkkk
Operacja: W ← k ^ W
Modyfikowane znaczniki stanu: Z
Opis: Zawartość rejestru akumulatora W zostaje poddana operacji sumy modulo 2 ze stałą k. Wynik jest umieszczany w rejestrze W.
Składnia: XORWF f,d
Argumenty: f = 0...31, d = 0...1
Kod: 0001 10df ffff
Operacja: dest ← W ^ f
Modyfikowane znaczniki stanu: Z
Opis: Zawartość rejestru akumulatora W zostaje poddana operacji sumy modulo 2 z rejestrem f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.