Čí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. 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 16 1 0000
hex. 0 1 2 3 4 5 6 7 8 9 A B C D E F 10h
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
2
Čísla 4, 8 bitová dec bin. 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 16 1 0000
hex. 0 1 2 3 4 5 6 7 8 9 A B C D E F 10h
2n bin. 0000 0001 0000 0010 0000 0100 0000 1000 0001 0000 0010 0000 0100 0000 0000 0000 1000 0000 0000 0001 0000 0000 n- dec.
0 1 2 3 4 5 6 7 8
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
2n hex. 1h 2h 4h 8h 10 h 20 h 40 h 80 h 1 00 h
2n dec 1 2 4 8 16 32 64 128 256
3
Čísla 4, 8, 16 - bitová dec bin. 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 16 1 0000
hex. 0 1 2 3 4 5 6 7 8 9 A B C D E F 10h
n- dec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1
0000 0000 0000 0001 0000 0010 0000 0100 0000 1000 0001 0000 0010 0000 0100 0000 1000 0000 0000 0000
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
2n bin. 0000 0001 0000 0010 0000 0100 0000 1000 0001 0000 0010 0000 0100 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
2n hex. 2n dec 1h 1 2h 2 4h 4 8h 8 10 h 16 20 h 32 40 h 64 80 h 128 1 00 h 256 2 00 h 512 (1/2 k) 4 00 h 1 024 1 k 8 00 h 2 048 2 k 10 00 h 4 096 4 k 20 00 h 8 192 8 k 40 00 h 16 384 16 k 80 00 h 32 768 32 k 1 00 00 h 65 536 64 k 4
Čísla 10 - 24 - bitová n- dec. 2n k / M 10 210 1k 11 211 2k 12 212 4k 13 213 8k 14 214 16 k 15 215 32 k 16 216 64 k 17 217 128 k 18 218 256 k 19 219 512 k 20 220 1M 21 221 2M 4M 22 222 23 223 8M 16 M 24 224
2n hex. 4 00 h 8 00 h 10 00 h 20 00 h 40 00 h 00 00 80 00 h 00 01 00 00 h 00 02 00 00 h 00 04 00 00 h 00 08 00 00 h 00 10 00 00 h 00 20 00 00 h 00 40 00 00 h 00 80 00 00 h 01 00 00 00 h
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
2n dec největší zobraz. číslo 1 024 3FF 1 k „kilo“ 2 048 7FF 4 096 FFF 8 192 1FFF 16 384 3FFF 32 768 7FFF 65 536 FFFF 64 k adr. u 8051 131 072 1 FFFF 262 144 3 FFFF 524 288 7 FFFF 1 048 576 F FFFF 1 M „mega“ 2 097 152 1F FFFF 4 194 304 3F FFFF 8 388 608 7F FFFF 16 777 216 FF FFFF 5
Čísla 25 až 32 -bitová
n25 26 27 28 29 30 31 32
Mega/ Giga 225 226 227 228 229 230 231 232
2n hex.
32 M 02 00 64 M 04 00 128 M 08 00 256 M 10 00 512 M 20 00 1G 40 00 2G 80 00 4 G 1 00 00
00 00 h 00 00 h 00 00 h 00 00 h 00 00 h 00 00 h 00 00 h 00 00 h
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
dec. 2n 33 554 432 67 108 864 134 217 728 268 435 456 538 870 912 1 073 741 824 2 147 483 648 4 294 967 296
největší zobraz. číslo 1FF FFFF 3FF FFFF 7FF FFFF FFF FFFF 1FFF FFFF 3FFF FFFF 1024 M -1G 7FFF FFFF FFFF FFFF 4 Giga u ARM - Cortex M3
6
Úseky paměťového prostoru - bloky délka: dec. 1 024 2 048 4 096 8 192 16 384 32 768 65 536
1k 2k 4k 8k 16 k 32 k 64 k
hex. 4 00 h 8 00 h 10 00 h 20 00 h 40 00 h 80 00 h 1 00 00 h
poč. - konc. adr. 00 00 00 00 00 00 00 -
3 FF h 7 FF h F FF h 1F FF h 3F FF h 7F FF h FF FF h
dekadicky
adr.sig.
0 - 1023 0 - 2 047 0 - 4 095 0 - 8 191 0 - 16 383 0 - 32 767 0 - 65 535
10 !! 11 12 13 14 15 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.) 1 024
1k
65 536 64 k
délka (hex.)
konc. adr.
adr.sig.
40 00 h
3 FF h
1 00 00 h
FF FF h
16
FF FF h
20 !!
1 048 576
1M
10 00 00 h
16 777 216
16 M
1 00 00 00 h
FF FF FF h
1G
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
1 073 741 824
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
0F
10 !!
24
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 21, 22 23 24 25 26 27 215 216 217
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í 2n = X, případně nejmenší n, kde 2n > 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í 2n = X, případně nejmenší n, kde 2n > 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 ( 10m ) = m opakování: log (a * b) = log a + log b,
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
log (a / b)= log a - log b
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 ( 10m ) = 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 =1010 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) log2 (1 073 741 824) = log (073741824) / log 2 = 9,0309.. / 0,30103.. = ~30 číslo 1 073 741 824 = 230 - (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 x1= 10m, x2 = 2*10m, x3 = 0,5*10m n = log x1/ 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* 106) / log 2= 6/0,3 = 20 bitů kolika bitové číslo je 2 000 000 ? (opakování: log (2 * 106) = log 106 + log 2 ) n = log (2 *106) / log 2= (log 106 + log 2) / log 2= = (log 1*106 / 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 x1= 10m, x2 = 2*10m, x3 = 0,5*10m n = log x1/ 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*106) / log 2= 6/0,3 = 20 bitů kolika bitové číslo je 2 000 000 ? (opakování: log (2 * 106)= log 106 + log 2 ) n = log (2 * 106) / log 2= (log 106 + log 2) / log 2 = = (log 1*106 / log 2) + (log 2/ log 2)= (6 / 0,3) +1=20 +1= 21 bitů kolika bitové číslo je 500 000 = 0,5* 106 ? 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 1014
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
19
Čísla - bez znaménka 8 bitové číslo bez znaménka Dec hex 0, 1, 2 až 255 0 – FFh
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
bin 0000 0000 b až 1111 1111 b
20
Čísla - bez znaménka 8 bitové číslo bez znaménka Dec hex 0, 1, 2 až 255 0 – FFh
bin 0000 0000 b až 1111 1111 b
16 bitové číslo bez znaménka Dec hex 0, 1, 2 až 65 535 0 – FFFFh
bin 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
-128
-1 0
+127
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; ... 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 A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
80 h 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 +1
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
1111 1111 (1111 1111 1111 1111) 0000 0001 (0000 0000 0000 0001)
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 +1
1111 1111 (1111 1111 1111 1111) 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
+ 1
0001 0000 b +16 d 1111 1111 b -1 ( záporné číslo) 0000 1111 b = +1 5 d
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
+16 + ( -1) = 15 OV= 0
30
Součet čísel Záporné číslo – nejvyšší bit (MSB) = 1, kladné číslo- MSB= 0
+ 1
0001 0000 b +16 d 1111 1111 b -1 ( záporné číslo) 0000 1111 b = +1 5 d
Přetečení: 0111 1111 b +127 d + 0000 0001 b +1 ( záporné číslo) 1 1000 0000 b = -128 chyba
+16 + ( -1) = 15 OV= 0
+127 +1 - 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
+ 1
0001 0000 b +16 d 1111 1111 b -1 ( záporné číslo) 0000 1111 b = +1 5 d
Přetečení: 0111 1111 b +127 d + 0000 0001 b +1 ( záporné číslo) 1 1000 0000 b = -128 chyba
+16 + ( -1) = 15 OV= 0
+127 +1 - 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
+ 1
0001 0000 b +16 d 1111 1111 b -1 ( záporné číslo) 0000 1111 b = +1 5 d
Přetečení: 0111 1111 b +127 d + 0000 0001 b +1 ( záporné číslo) 1 1000 0000 b = -128 chyba
+16 + ( -1) = 15 OV= 0
+127 +1 - 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 -8d - 8 + ( -7) = ? + 11111001 b -7 d 11110001 b = -15 d - 8 + ( -7) = -15 nastává současně přenos (z D7 do C) i (z D6 do D7),
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
správně OV=0
34
Součet záporných čísel Záporné číslo – nejvyšší bit ( MSB) 1, kladné číslo- MSB 0
11111000 b -8d - 8 + ( -7) = ? + 11111001 b -7 d 11110001 b = -15 d - 8 + ( -7) = -15 nastává současně přenos (z D7 do C) i (z D6 do D7),
správně 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 -8d - 8 + ( -7) = ? + 11111001 b -7 d 11110001 b = -15 d - 8 + ( -7) = -15 nastává současně přenos (z D7 do C) i (z D6 do D7),
správně 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 256
1 00 h
adr. poč.- konc. 00 - FF h
A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření
dekadicky 0 - 255 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 216 = 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 1 Při n odměrech – snížení působení šumu na hodnotu oproti původnímu
n působení, (16 odměrů, 16 = 4 č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ů 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