Čísla, reprezentace, zjednodušené výpočty Přednáška 4 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 1
Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 1 0000 10h A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 2
Čísla 4, 8 bitová dec bin. hex. 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 1 0000 10h n- dec. 2 n bin. 2 n hex. 2 n dec 0 0000 0001 1 h 1 1 0000 0010 2 h 2 2 0000 0100 4 h 4 3 0000 1000 8 h 8 4 0001 0000 10 h 16 5 0010 0000 20 h 32 6 0100 0000 40 h 64 7 0000 0000 1000 0000 80 h 128 8 0000 0001 0000 0000 1 00 h 256 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 3
Čísla 4, 8, 16 - bitová dec bin. hex. n- dec. 2 n bin. 2 n hex. 2 n dec 0 0000 0 0 0000 0001 1 h 1 1 0001 1 1 0000 0010 2 h 2 2 0010 2 2 0000 0100 4 h 4 3 0011 3 3 0000 1000 8 h 8 4 0100 4 4 0001 0000 10 h 16 5 0101 5 5 0010 0000 20 h 32 6 0110 6 6 0100 0000 40 h 64 7 0111 7 7 0000 0000 1000 0000 80 h 128 8 1000 8 8 0000 0001 0000 0000 1 00 h 256 9 1001 9 9 0000 0010 0000 0000 2 00 h 512 (1/2 k) 10 1010 A 10 0000 0100 0000 0000 4 00 h 1 024 1 k 11 1011 B 11 0000 1000 0000 0000 8 00 h 2 048 2 k 12 1100 C 12 0001 0000 0000 0000 10 00 h 4 096 4 k 13 1101 D 13 0010 0000 0000 0000 20 00 h 8 192 8 k 14 1110 E 14 0100 0000 0000 0000 40 00 h 16 384 16 k 15 1111 F 15 1000 0000 0000 0000 80 00 h 32 768 32 k 16 1 0000 10h 16 1 0000 0000 0000 0000 1 00 00 h 65 536 64 k A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 4
Čísla 10-24 - bitová n- dec. 2 n k / M 2 n hex. 2 n dec největší zobraz. číslo 10 2 10 1 k 4 00 h 1 024 3FF 1 k kilo 11 2 11 2 k 8 00 h 2 048 7FF 12 2 12 4 k 10 00 h 4 096 FFF 13 2 13 8 k 20 00 h 8 192 1FFF 14 2 14 16 k 40 00 h 16 384 3FFF 15 2 15 32 k 00 00 80 00 h 32 768 7FFF 16 2 16 64 k 00 01 00 00 h 65 536 FFFF 64 k adr. u 8051 17 2 17 128 k 00 02 00 00 h 131 072 1 FFFF 18 2 18 256 k 00 04 00 00 h 262 144 3 FFFF 19 2 19 512 k 00 08 00 00 h 524 288 7 FFFF 20 2 20 1 M 00 10 00 00 h 1 048 576 F FFFF 1 M mega 21 2 21 2 M 00 20 00 00 h 2 097 152 1F FFFF 22 2 22 4 M 00 40 00 00 h 4 194 304 3F FFFF 23 2 23 8 M 00 80 00 00 h 8 388 608 7F FFFF 24 2 24 16 M 01 00 00 00 h 16 777 216 FF FFFF A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 5
Čísla 25 až 32 -bitová n- Mega/ Giga 2 n hex. dec. 2 n největší zobraz. číslo 25 2 25 32 M 02 00 00 00 h 33 554 432 1FF FFFF 26 2 26 64 M 04 00 00 00 h 67 108 864 3FF FFFF 27 2 27 128 M 08 00 00 00 h 134 217 728 7FF FFFF 28 2 28 256 M 10 00 00 00 h 268 435 456 FFF FFFF 29 2 29 512 M 20 00 00 00 h 538 870 912 1FFF FFFF 30 2 30 1 G 40 00 00 00 h 1 073 741 824 3FFF FFFF 1024 M -1G 31 2 31 2 G 80 00 00 00 h 2 147 483 648 7FFF FFFF 32 2 32 4 G 1 00 00 00 00 h 4 294 967 296 FFFF FFFF 4 Giga u ARM - Cortex M3 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 6
Úseky paměťového prostoru - bloky délka: dec. hex. poč. - konc. adr. dekadicky adr.sig. 1 024 1 k 4 00 h 00-3 FF h 0-1023 10!! 2 048 2 k 8 00 h 00-7 FF h 0-2 047 11 4 096 4 k 10 00 h 00 - F FF h 0-4 095 12 8 192 8 k 20 00 h 00-1F FF h 0-8 191 13 16 384 16 k 40 00 h 00-3F FF h 0-16 383 14 32 768 32 k 80 00 h 00-7F FF h 0-32 767 15 65 536 64 k 1 00 00 h 00 - FF FF h 0-65 535 16 Příklad: Paměťový blok o délce 8k je umístěn od A000h, na jaké adrese je poslední lokace paměti? první lokace A000 h, poslední A0 00 h + 1F FF h = BF FF h A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 7
Bloky 1k, 1M, 1G délka (dec.) délka (hex.) konc. adr. adr.sig. 1 024 1 k 40 00 h 3 FF h 10!! 65 536 64 k 1 00 00 h FF FF h 16 1 048 576 1 M 10 00 00 h 0F FF FF h 20!! 16 777 216 16 M 1 00 00 00 h FF FF FF h 24 1 073 741 824 1 G 40 00 00 00 h 3F FF FF FF h 30!! 4 294 967 296 4 G 1 00 00 00 00 h FF FF FF FF h 32 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 8
Určení počtu bitů čísla - s. 1 Příklad. Kolik bitů musí mít čítač pro odměřování polohy inkrementálním snímačem s rozlišením polohy na 1um, a délkou 100 mm. Bude postačovat interní 16- bitový čítač v STM32? Řešení 1: Opakovaně dělit číslem 2, dokud výsledek nebude =1 nebo menší. Počet dělení = počet bitů 100000, 50000, 25000, 12500,...,... 6,1035.., 3,051.., 1,5258.., 0,7629.. 1.dělení 2. 3. 14. 15. 16. 17. A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 9
Určení počtu bitů čísla - s. 1 Příklad. Kolik bitů musí mít čítač pro odměřování polohy inkrementálním snímačem s rozlišením polohy na 1um, a délkou 100 mm. Bude postačovat interní 16- bitový čítač v STM32? Řešení 1: Opakovaně dělit číslem 2, dokud výsledek nebude =1 nebo menší. Počet dělení = počet bitů 100000, 50000, 25000, 12500,...,... 6,1035.., 3,051.., 1,5258.., 0,7629.. 1.dělení 2. 3. 14. 15. 16. 17. Řešení 2: Opakovaně násobit 2 x 2 x 2..... mocniny 2 dokud výsledek nebude roven x nebo větší... 2, 4, 8, 16, 32, 64, 128,..., 32768, 65536, 131072 2 1, 2 2 2 3 2 4 2 5 2 6 2 7 2 15 2 16 2 17 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 10
Určení počtu bitů čísla - s.2 Příklad. Kolik bitů musí mít čítač pro odměřování polohy inkrementálním snímačem s rozlišením polohy na 1um, a délkou 100 mm. Bude postačovat interní 16- bitový čítač v STM32? Řešení 3: Převést dek. číslo x =100 000 d na bin. - 1 1000 0110 1010 0000 b, spočítat bity - představuje to 17 bitové číslo A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 11
Určení počtu bitů čísla - s.2 Příklad. Kolik bitů musí mít čítač pro odměřování polohy inkrementálním snímačem s rozlišením polohy na 1um, a délkou 100 mm. Bude postačovat interní 16- bitový čítač v STM32? Řešení 3: Převést dek. číslo x =100 000 d na bin. - 1 1000 0110 1010 0000 b, spočítat bity - představuje to 17 bitové číslo Řešení 4: Určit výpočtem počet bitů, hledá se n, pro které platí 2 n = X, případně nejmenší n, kde 2 n > X n - to je ale logaritmus při základu 2, dvojkový logaritmus jak určit logaritmus se základem 2? log 2 x = ln x / ln 2, (přirozený logaritmus) log 2 x = log x / log 2 (dekadický logaritmus) log 2 = 0,30103 (log 100 000)/ log 2 = 5 / 0,30103= 16, 6 Nutný minimálně 17 bitový čítač A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 12
Určení počtu bitů čísla - s.2 Příklad. Kolik bitů musí mít čítač pro odměřování polohy inkrementálním snímačem s rozlišením polohy na 1um, a délkou 100 mm. Bude postačovat interní 16- bitový čítač v STM32? Řešení 3: Převést dek. číslo x =100 000 d na bin. - 1 1000 0110 1010 0000 b, spočítat bity - představuje to 17 bitové číslo Řešení 4: Určit výpočtem počet bitů, hledá se n, pro které platí 2 n = X, případně nejmenší n, kde 2 n > X n - to je ale logaritmus při základu 2, dvojkový logaritmus jak určit logaritmus se základem 2? log 2 x = ln x / ln 2, (přirozený logaritmus) log 2 x = log x / log 2 (dekadický logaritmus) (log 100 000)/ log 2 = 5 / 0,30103 = 16, 6 Nutný minimálně 17 bitový čítač pamatovat si dek. logaritmus log 2 = 0,30103, (odchylka zaokrouhl. = 4.10-9 ) nebo alespoň log 2 = 0,3 (odchylka abs 0,00103, rel. 0,34 %) A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 13
Určení počtu bitů čísla - s.3 Místo dělení 0,3 je možno násobit 3,32, zaokrouhleně 3,3 log 2 x = log x / log 2 = (1/ log 2) log x = 3,32 log x = ~ 3,3 log x binární číslo má počet míst, který se určí přibližně jako 3,3 násobek dekadického logaritmu čísla ~ 3,3. log x Opačný výpočet kolik dekadických řádů přibližně má n bitové binární číslo log x = log 2.log 2 x = 0,3. log 2 x (počet míst binárního čísla x 0,3) Kolika místný voltmetr by představovalo použití 14 bitového převodníku A/D? (binární čísla 00 0000 0000 0000 až 11 1111 1111 1111)? log x = log 2. log 2 x = 0,3. 14 = 4,2 14 bitů představuje rozlišení více než 4 -místného voltmetru A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 14
Využití logaritmu se základem 2 pro výpočet počtu bitů Dek. logaritmus čísla log 2 = 0,30103, (zaokrouhlení log 2 = 0,3) (opakování: dek. logaritmus čísla log ( 10 m ) = m opakování: log (a * b) = log a + log b, log (a / b)= log a - log b A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 15
Využití logaritmu se základem 2 pro výpočet počtu bitů Dek. logaritmus čísla log 2 = 0,30103, (zaokrouhlení log 2 = 0,3) (opakování: dek. logaritmus čísla log ( 10 m ) = m opakování: log (a * b) = log a + log b, log (a / b)= log a - log b Využití pro zjednodušené výpočty - do kolika bitového binárního čísla se zobrazí dekadická čísla 100, 200, 500,1000, 2000, 5000, 10000, odhad, kolika bitové je bin. číslo představující hodnotu 10 000 000 000 =10 10 m =10 n = log x/ log 2 = 10 / 0,3 = 33,33 tedy 34 bitů Kolik bitů je zapotřebí pro adresování bloku o délce 1 073 741 824 (1G) log 2 (1 073 741 824) = log (073741824) / log 2 = 9,0309.. / 0,30103.. = ~30 číslo 1 073 741 824 = 2 30 - (souhlasí s tabulkou), je třeba 30 bitů A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 16
Využití logaritmu se základem 2 pro odhad odhad n pro čísla typu x 1 = 10 m, x 2 = 2*10 m, x 3 = 0,5*10 m n = log x 1 / log 2 = m / log 2= m / 0,30103 = m * 3,322 = ~ m / 0,3 (zjednodušením 0,301030 na 0,3 vychází odhad logaritmu vyšší o 0,3%) kolika bitové číslo je 1 000 000? n= log (1* 10 6 ) / log 2= 6/0,3 = 20 bitů kolika bitové číslo je 2 000 000? (opakování: log (2 * 10 6 ) = log 10 6 + log 2 ) n = log (2 *10 6 ) / log 2= (log 10 6 + log 2) / log 2= = (log 1*10 6 / log 2) + (log 2/ log 2)= (6 / 0,3) +1=20 + 1= 21 bitů A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 17
Využití logaritmu se základem 2 pro odhad odhad n pro čísla typu x 1 = 10 m, x 2 = 2*10 m, x 3 = 0,5*10 m n = log x 1 / log 2 = m / log 2= m / 0,30103 = m * 3,322 = ~ m / 0,3 (zjednodušením 0,301030 na 0,3 vychází odhad logaritmu vyšší o 0,3%) kolika bitové číslo je 1 000 000? n = log (1*10 6 ) / log 2= 6/0,3 = 20 bitů kolika bitové číslo je 2 000 000? (opakování: log (2 * 10 6 )= log 10 6 + log 2 ) n = log (2 * 10 6 ) / log 2= (log 10 6 + log 2) / log 2 = = (log 1*10 6 / log 2) + (log 2/ log 2)= (6 / 0,3) +1=20 +1= 21 bitů kolika bitové číslo je 500 000 = 0,5* 10 6? log 500 000 = log (1000 000 / 2) = log 1000 000 - log 2 n= (log 500 000)/log 2= (6-0,3) / 0,3= 6 / 0,3-0.3/ 0,3 = 20-1 = 19 bitů A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 18
Určení počtu dekadických míst Opačný výpočet kolik řádů (přibližně) má dekadický ekvivalent n bitového binárního čísla? log x = log 2. log 2 x = 0,3. log 2 x (počet míst binárního čísla x 0,3) Kolika místný voltmetr by představovalo použití 14 bitového převodníku A/D? (binární čísla 00 0000 0000 0000 až 11 1111 1111 1111)? log x = log 2. log 2 x = 0,3. 14 = 4,2 14 bitů odpovídá rozlišení více než 4-místného voltmetru Signálový procesor ASP2185 má pro funkci MAC (multiply and accumulate) registr o délce 48 bitů. Jakému dekadickému číslu (řád) odpovídá maximální možný výsledek (bez znaménka)? log x = 0,3. 48 = 14,4 Výsledek odpovídá řádově číslu 10 14 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 19
Čísla - bez znaménka 8 bitové číslo bez znaménka Dec hex bin 0, 1, 2 až 255 0 FFh 0000 0000 b až 1111 1111 b A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 20
Čísla - bez znaménka 8 bitové číslo bez znaménka Dec hex bin 0, 1, 2 až 255 0 FFh 0000 0000 b až 1111 1111 b 16 bitové číslo bez znaménka Dec hex bin 0, 1, 2 až 65 535 0 FFFFh 0.. b až 1111 1111 1111 1111 b A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 21
Zobrazení kladných a záporných čísel - dvojkový doplněk Kladná čísla - nejvyšší bit 0 záporná čísla - nejvyšší bit 1 kladná čísla - přímo záporná čísla - dvojkový doplněk příklad pro 8 bitů analogicky pro 16, 32, 64 bitů 1111 1111 1000 0000 0111 1111 možnost zobrazení - kladná čísla - v rozsahu 0 až +2 (n-1) -1 (+127; + 32 767; + 2147483647;... záporná čísla - v rozsahu 0 až - 2 (n-1) (- 128; - 32 768; - 2147483648;... -128-1 0 +127 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 22
Čísla- 8 bit bez znam., reprezentace zápor. č. 8 bit se zn. 8 bitové číslo se znaménkem dvojkový doplněk 0, +1,+2. až +127 d 7Fh 0000 0000 b až 0111 1111 b -1, -2, až -128 1111 1111 b až 1000 0000 b Výpočet: kladná čísla - přímo binární ekvivalent záporná -dvojkový doplněk Určení dvojkového doplňku, negace všech bitů a přičtení 1 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 23
Čísla- 8 bit bez znam., reprezentace zápor. č. 8 bit se zn. 8 bitové číslo se znaménkem dvojkový doplněk 0, +1,+2. až +127 d 7Fh 0000 0000 b až 0111 1111 b -1, -2, až -128 1111 1111 b až 1000 0000 b Výpočet: kladná čísla - přímo binární ekvivalent záporná -dvojkový doplněk Určení dvojkového doplňku, negace všech bitů a přičtení 1 Příklad určení dvojkového doplňku pro čísla -1, -128, 1d 0000 0001 b 128 d 1000 0000 b negace 1111 1110 b 0111 1111 b + 0000 0001 + 0000 0001 1111 1111 b = -1 d 1000 0000 = -128 d FFh 80 h A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 24
Čísla -16 bitová se znaménkem, dvojkový doplněk 16 bitové číslo se znaménkem, kladná čísla 0, 1, 2 až 32 767 d 0000 h až 7 F FF h 0000 0000 0000 0000 b až 0111 1111 1111 1111 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 25
Čísla -16 bitová se znaménkem, dvojkový doplněk 16 bitové číslo se znaménkem, kladná čísla 0, 1, 2 až 32 767 d 0000 h až 7 F FF h 0000 0000 0000 0000 b až 0111 1111 1111 1111 reprezentace 1 ve dvojkovém doplňku, záporná čísla 1d 0000 0000 0000 0001 b (1) negace 1111 1111 1111 1110 b + 1 1111 1111 1111 1111 b = -1 d F F F F h (bez znaménka odpovídá 65 535) A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 26
Čísla -16 bitová se znaménkem, dvojkový doplněk 16 bitové číslo se znaménkem, kladná čísla 0, 1, 2 až 32 767 d 0000 h až 7 F FF h 0000 0000 0000 0000 b až 0111 1111 1111 1111 reprezentace 1 ve dvojkovém doplňku, záporná čísla 0000 0000 0000 0001 b (1) negace 1111 1111 1111 1110 b + 1 1111 1111 1111 1111 b = -1 d F F F F h (bez znaménka odpovídá 65 535) 1000 0000 0000 0000 b (32768) negace 0111 1111 1111 1111 b + 1 1000 0000 0000 0000 b = -32 768 d 8 0 0 0 h (bez znaménka by odpovídalo 32 768 ) A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 27
Čísla - se znaménkem, dvojkový doplněk, rekapitulace Záporné číslo nejvyšší bit (MSB) 1, kladné číslo- (MSB) 0 Největší kladné číslo: 0 na nejvyšším bitu a samé 1 0111 1111 Největší zápor. číslo: 1 na nejvyšším bitu a samé 0 1000 0000-1 reprezentované samé 1 1111 1111 (1111 1111 1111 1111) + 1 0000 0001 (0000 0000 0000 0001) A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 28
Čísla - se znaménkem, dvojkový doplněk, rekapitulace Záporné číslo nejvyšší bit (MSB) 1, kladné číslo- (MSB) 0 Největší kladné číslo: 0 na nejvyšším bitu a samé 1 0111 1111 Největší zápor. číslo: 1 na nejvyšším bitu a samé 0 1000 0000-1 reprezentované samé 1 1111 1111 (1111 1111 1111 1111) + 1 0000 0001 (0000 0000 0000 0001) Převod záporného čísla nazpět na kladné - abs. hodnota Podobný způsob, negace a přičíst 1. Nejdříve test na záporné číslo MSB =? 1 a pak až úprava -128d 1000 0000 b -1 d 1111 1111 negace 0111 1111 b 0000 0000 + 1 + 0000 0001 1000 0000 b = 128 d 0000 0001 = 1 d A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 29
Součet čísel Záporné číslo nejvyšší bit (MSB) = 1, kladné číslo- MSB= 0 0001 0000 b +16 d +16 + ( -1) = 15 + 1111 1111 b -1 ( záporné číslo) 1 0000 1111 b = +1 5 d OV= 0 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 30
Součet čísel Záporné číslo nejvyšší bit (MSB) = 1, kladné číslo- MSB= 0 0001 0000 b +16 d +16 + ( -1) = 15 + 1111 1111 b -1 ( záporné číslo) 1 0000 1111 b = +1 5 d OV= 0 Přetečení: 0111 1111 b +127 d +127 +1 - chyba + 0000 0001 b +1 ( záporné číslo) 1 1000 0000 b = -128 chyba OV =1 nastává přenos z D6 do D7, ale není přenos z D7 do C A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 31
Součet čísel Záporné číslo nejvyšší bit (MSB) = 1, kladné číslo- MSB= 0 0001 0000 b +16 d +16 + ( -1) = 15 + 1111 1111 b -1 ( záporné číslo) 1 0000 1111 b = +1 5 d OV= 0 Přetečení: 0111 1111 b +127 d +127 +1 - chyba + 0000 0001 b +1 ( záporné číslo) 1 1000 0000 b = -128 chyba OV =1 nastává přenos z D6 do D7, ale není přenos z D7 do C Příznak OV - Oveflow - nastaven - pokud je součet kladných čísel - záporný, Nastává přenos z D6 do D7, ale není přenos z D7 do C nebo součet záporných čísel- kladný, Nastává přenos z D7 do C, ale není přenos z D6 do D7 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 32
Součet čísel Záporné číslo nejvyšší bit (MSB) = 1, kladné číslo- MSB= 0 0001 0000 b +16 d +16 + ( -1) = 15 + 1111 1111 b -1 ( záporné číslo) 1 0000 1111 b = +1 5 d OV= 0 Přetečení: 0111 1111 b +127 d +127 +1 - chyba + 0000 0001 b +1 ( záporné číslo) 1 1000 0000 b = -128 chyba OV =1 nastává přenos z D6 do D7, ale není přenos z D7 do C Příznak OV - Oveflow - nastaven - pokud je součet kladných čísel - záporný, Nastává přenos z D6 do D7, ale není přenos z D7 do C nebo součet záporných čísel- kladný, Nastává přenos z D7 do C, ale není přenos z D6 do D7 C - Carry přetečení z D7 příznakové bity C, OV ve stavovém slově PSW A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 33
Součet záporných čísel Záporné číslo nejvyšší bit ( MSB) 1, kladné číslo- MSB 0 11111000 b - 8 d - 8 + ( -7) =? + 11111001 b -7 d 11110001 b = -15 d - 8 + ( -7) = -15 správně nastává současně přenos (z D7 do C) i (z D6 do D7), OV=0 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 34
Součet záporných čísel Záporné číslo nejvyšší bit ( MSB) 1, kladné číslo- MSB 0 11111000 b - 8 d - 8 + ( -7) =? + 11111001 b -7 d 11110001 b = -15 d - 8 + ( -7) = -15 správně nastává současně přenos (z D7 do C) i (z D6 do D7), OV=0 1000 0000 b -128 d -127 + (-128) =? + 1000 0001 b -127 d C 1 0000 0001 b = + 1-127 + (-128)= +1 - chyba nastává přetečení C (z D7 do C), ale není současně (z D6 do D7), OV=1 Chyba - součet záporných čísel je kladný A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 35
Součet záporných čísel Záporné číslo nejvyšší bit ( MSB) 1, kladné číslo- MSB 0 11111000 b - 8 d - 8 + ( -7) =? + 11111001 b -7 d 11110001 b = -15 d - 8 + ( -7) = -15 správně nastává současně přenos (z D7 do C) i (z D6 do D7), OV=0 1000 0000 b -128 d -127 + (-128) =? + 1000 0001 b -127 d 0000 0001 b = + 1-127 + (-128)= +1 - chyba nastává přetečení C (z D7 do C), ale není současně (z D6 do D7), OV=1 Chyba - součet záporných čísel je kladný Použití příznaků při sčítání: C - Carry přetečení z D7 chyba součtu (přetečení) čísel bez znaménka OV - overflow - chyba součtu (přetečení) čísel se znaménkem A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 36
Výpočet nastavení SP u AT89C52 Příklad: Jaké je možné max. nastavení ukazatele zásobníku - SP u AT89C52, pokud je zapotřebí 8 zápisů návratové adresy ( 8x CALL za sebou)? Návratová adresa = 16 bitů, 2 Byte, 8 x 2 = 16 Byte dec. = 10 hex interní RAM u 89C52 (IDATA), nepřímo adr. 256 Byte, poslední adresa FFh FFh - 10h = EF h - první lokace použitá pro zásobník, Před zápisem do zásobníku se SP u 8052 nejdříve inkrementuje nastavení SP na EFh - 1 = EE h Řešení MOV SP, # 0EEh blok o délce adr. poč.- konc. dekadicky 256 1 00 h 00 - FF h 0-255 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 37
Určení počtu adresovacích signálů Příklad: Kolik adresových lokací pam. XDATA může adresovat procesor AT89C52? AT89C52 generuje 16 bitových signálů A15 až A0, tedy 2 16 = 65 536 = 64 k Kolik adresových bloků o délce 8K je možno adresovat procesorem AT89C52, jestliže generuje 16 - bitovou adresu 16 bitů - 65 536 dec, 64 K, je možno adresovat celkem 8 bloků po 8 k Kolik adresovacích vstupů povede do bloku 8 k 8 k - 8 x blok 1 K, pro 1 K - 10 adr. signálů, pro číslo 8 jsou 3 sig. celkem 10 + 3 = 13 adresovacích vstupů - signálů Jiný přístup:. 8k- 8 x 1024-8192 = 2 13-13 signálů A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 38
Výpočet délky programového kódu Příklad: Program je umístěn mezi adresami A100 h a A724 h ve vývojové desce. Jak dlouhý je kód a bylo by možno jej umístit do AT89C2051? A7 24 h poslední obsazená adresa - poslední Byte - A1 00 h první obsazená adresa - první Byte 06 24 h rozdíl adres Pozor! celkem je ale obsazeno 624 h +1 = 625 h Vysvětlení 0000 Byte 1 0001 Byte 2 0002 Byte 3 2-0 = 2, 2 + 1 = 3 Byte celkem 625 h = 6 x 2 8 + 2 x 2 4 + 5 = 6 x 256 + 2 x 16 + 5 = 1 536 + 32 + 5 = 1573 Délka kódu je 1573 byte, do prog. paměti AT89C2051 se vejde, protože 1573 je méně něž 2 K = 2048 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 39
Výpočet rozlišení převodníku A/D, průměrování Příklad: Převodník A/D v procesoru STM32 je 12 - bitový, jaký je jeho krok, jestliže jeho rozsah je 3,3 V? 3,3 V/ 4096 = 0.805 664 mv Příklad: Z kolika vzorků je možno jednoduše počítat průměr, jestliže je maximální dosažitelná hodnota každého odměru délky impulsu je 7000 impulsů dec. a využívá se přičítání do 16 -bitového výsledku? 16- bitové číslo - max zobrazitelné číslo (bez znaménka) 65 535 65 535 / 7000 = 9,3 Teoreticky by bylo možno počítat průměr z 9 odměrů, prakticky se využije 8 odměrů. 8 x 7000 = 56 000, = DAC0 h Dělení 8, realizace - posunem 16- bitového součtu v registrech 3x doprava. (Využití laboratorní úloze ve cvičeních.) Obecně, používat dělení, 2, 4,8,16, 32,... A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 40
Zjednodušené výpočty Dělení bin. čísla číslem 2, 4, 8, 16 posun o 1, 2, 3, 4 místa doprava Násobení bin. čísla číslem 2, 4, 8, 16 posun o 1, 2, 3, 4 místa doleva Průměrování z 8 odměrů (binární čísla) součet hodnot z 8 odměrů a posun výsledku o 3 místa doprava (dělení 8) (proto mají osciloskopy průměrování z 2, 4, 8, 16,.. odměrů) Násobení 3x (3 dekadicky = 11 b) 3. n = 2. n + 1.n číslo n binární přičíst k bin. číslu posunutému o 1 místo doprava analogicky možno použít i pro jiná čísla A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 41
Průměrování Průměrování, podstata a použití - výklad na tabuli Snížení působení šumu průměrováním (podmínka- náhodný šumový signál) Šum zde chápán jako náhodný signál, který se přičítá k výsledku měření šum střední hodnota rovna nule Při použití střední hodnoty z nekonečného počtu odměrů vyloučení šumu Reálně konečný počet odměrů pro určení průměru Při n odměrech snížení působení šumu na hodnotu oproti původnímu 16 =4 působení, (16 odměrů, čtvrtinové působení šumů) Průměrování často využíváno v přístrojích viz. funkce osciloskopu Volba počtu vzorků pro průměrování 2, 4, 8, 16, 32 pro snazší realizaci dělení Vedlejší efekt průměrování zvýšení rozlišovací schopnosti Funkce průměrování v laboratorní úloze ohmetr, voltmetr Ohmetr rozlišení bez průměrování na krok po 7 Ohmech ( 7, 14, 21, ) rozlišení s průměrováním z 16 odměrů na jednotky Ohmů 1 n A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 42
Průměrování Průměrování metoda zpracování signálu pro potlačení působení šumu viz. též. http://en.wikipedia.org/wiki/signal_averaging V úloze Ohmetr, Voltmetr - se průměrováním sníží fluktuace výsledku měření A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 43