Převod Bin do BCD pomocí Hornerova schématu

Podobné dokumenty
Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

Číslo materiálu. Datum tvorby Srpen 2012

Fz =a z + a z +...+a z +a z =

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

Převody mezi číselnými soustavami

Komunikace modulu s procesorem SPI protokol

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Číselné soustavy a převody mezi nimi

v aritmetické jednotce počíta

Mikroprocesorová technika (BMPT)

Způsoby realizace této funkce:

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

ČÍSELNÉ SOUSTAVY PŘEVODY

Struktura a architektura počítačů (BI-SAP) 5

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Analogově-číslicové převodníky ( A/D )

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

KOMBINAČNÍ LOGICKÉ OBVODY

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY

Základní jednotky používané ve výpočetní technice

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

ČÍSELNÉ SOUSTAVY. Číselnou soustavu, která pro reprezentaci čísel využívá pouze dvou číslic, nazýváme soustavou dvojkovou nebo binární.

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Kódováni dat. Kódy používané pro strojové operace

Pokud není uvedeno jinak, uvedený materiál je z vlastních zdrojů autora

Architektury počítačů

Aritmetické operace a obvody pro jejich realizaci

Čísla a číselné soustavy.

1. Základní pojmy a číselné soustavy

Číselné soustavy. Binární číselná soustava

Násobení. MI-AAK(Aritmetika a kódy)

Téma 2 Principy kryptografie

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Vícebytová celočíselná aritmetika

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

1 z :27

Číselné soustavy. Jedná se o způsob reprezentace čísel.

Digitalizace dat metodika

VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola a Střední odborné učiliště, Dubno

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/

Čísla, reprezentace, zjednodušené výpočty

Title: IX 6 11:27 (1 of 6)

2.8 Kodéry a Rekodéry

Zobrazení dat Cíl kapitoly:

PB002 Základy informačních technologií

Přednáška 2: Čísla v počítači. Práce s počítačem. Číselné soustavy. Převody mezi soustavami. Aritmetické operace. Uložení čísel v paměti počítače

( ) Jako základ mocnin nemusíme používat jen 10. Pokud není jasné, že číslo je uvedeno v desítkové soustavě, píšeme jej takto: ( ) 10

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Číslicový zobrazovač CZ 5.1

Model ver SYSTEM EXCLUSIVE KOMUNIKACE CHD Elektroservis

Dělení. INP 2008 FIT VUT v Brně

Čísla v počítači Výpočetní technika I

Čísla, reprezentace, zjednodušené výpočty

Číselné soustavy - Teorie

Reprezentace dat. INP 2008 FIT VUT v Brně

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

ČÍSLICOVÁ TECHNIKA OBSAH KAPITOLA 1 ČÍSELNÉ SOUSTAVY A KÓDY

Číselné soustavy. Prvopočátky. Starověký Egypt a Mezopotámie. Již staří Římané

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Závěrečná zkouška z informatiky 2011

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

RS485/MODBUS-RTU ver. 4 s rozšířením pro R24

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Obsah. Popis funkcí. RS485/MODBUS-RTU ver Komunikace s převodníkem probíhá na principu MASTER - SLAVE. Protokol MODBUS mát tuto strukturu:

1.5.1 Číselné soustavy

[1] samoopravné kódy: terminologie, princip

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

1.5.2 Číselné soustavy II

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

Principy počítačů I Reprezentace dat

Algoritmizace a programování

Řešení úloh z TSP MU SADY S 1

Základy číslicové techniky z, zk

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

1.2 Realizace èekání pomocí jednoduché programové smyèky Pøíklad 3: Chceme-li, aby dítì blikalo baterkou v co nejpøesnìjším intervalu, øekneme mu: Roz

Binární logika Osnova kurzu

Logické funkce a obvody, zobrazení výstupů

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

Střídací tabule na fotbal

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

VZOROVÝ TEST PRO 1. ROČNÍK (1. A, 3. C)

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Princip funkce počítače

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují.

ZŠ ÚnO, Bratří Čapků 1332

2 Ukládání dat do paměti počítače

Kontrolní test Číslicová technika 1/2. 1.Převeďte číslo 87 z desítkové soustavy z= 10 do soustavy dvojkové z=2

5. Sekvenční logické obvody

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

OD NULY K NEKONEâNU Poãítej jako EgypÈan âíslice, které nestárnou

Transkript:

Převod Bin do BCD pomocí Hornerova schématu Každé číslo ve dvojkové soustavě můžeme vyjádřit výrazem: N = ((a m *2+a n-1 )*2+a n-2 )*2+...+a 0 Pokud bychom neaplikovali dekadickou korekci, dostali bychom hodnotu binárního čísla. Pokud při sčítání aplikujeme dekadickou korekci, je-li hodnota čtveřice bitů větší než, přičteme k ní 0110 (), abychom dostali BCD kód. BCD kód je desítkové číslo, jehož každá číslice je vyjádřena čtyřbitovým dvojkovým číslem. (číslo)10 (číslo)bcd (číslo)bin BIN -->BCD 0 0000 0000 0000 0000 BIN 1 0000 0001 0000 0001 BIN... 0000 1001 0000 1001 BIN 10 0001 0000 0000 1010 11 0001 0001 0000 1011... 15 0001 0101 0000 1111 1 0001 0110 0001 0000 17 0001 0111 0001 0001... 31 0011 0001 0001 1111 32 0011 0010 0010 0000 33 0011 0011 0010 0001... BIN + 0110 dekadická korekce Při převodu z BIN do BCD s využitím Hornerova schématu (http://forum.mcontrollers.com/download.php?id=31&sid=77b33a3c78b158b104c1d0012d7a4) posouváme číslo vlevo a přitom kontrolujeme, zda čtveřice je větší než. Pokud ano, provedeme v ní dekadickou korekci. Posuv děláme tolikrát, kolikati bitové binární číslo převádíme. Postup převodu vidíme v následujících tabulkách. operace b100 b10 b1 BIN 000110110100 shift 1 0 001 1011 0100 shift 4 0001 1011 0100 shift 5 0 0011 011 0100 shift 00 0110 11 0100 00 1001 11 0100 shift 7 001 0011 1 0100 shift 8 0010 0111 0100 0010 1010 0100 shift 0 0101 0100 100 +3 10 0 1000 0100 100 shift 10 01 0000 1001 00 01 0000 1100 00 shift 11 010 0001 1000 0 010 0001 1011 0 shift 12 0100 0011 0110 4 3 operace b100 b10 b1 BIN 000111111111 xshift 00 0111 111111 00 1010 111111 7. shift 001 0101 11111 001 1000 11111 8. shift 0011 0001 1111. shift 0 0110 0011 111 0 1001 0011 111 10. 01 0010 0111 11 shift 01 0010 1010 11 11. 010 0101 0101 1 shift 12. shift 010 1000 1000 1 0101 0001 0001 5 1 1 Na základě tohoto algoritmu vytvoříme konkrétní postup, který bude převod devítibitové hodnoty do BCD kódu řešit. 1 Jiří Hrbáček

Navržený algoritmus ověříme simulací v následující tabulce. nshift b w2 w1 bcd3 bcd21 b3 b2 činnost 0000 0000 0000 0000 0000 0000 0001 11111111 bcd3 = 0 0000 0000 0111 111111 2 x w1 = w1 + w1 0000 0111 bcd21 = b3 0000 0111 b=bcd21&00001111 0000 1010 b >4, bcd21+0011 0000 0000 b=bcd21&11110000 0000 1010 b <4(0100 0000) 0000 0000 111111 b3=0 0001 11111 w1=w1+w1 0000 0000 0001 0100 w2=w2+w2 0000 0000 0001 0101 0000 0001 11111 b3>0, w2=w2+1 5 0000 0000 0001 0101 numposun 1, >0 0000 0101 b=bcd21&00001111 0000 0000 0001 1000 b >4, bcd21+0011 0001 0000 b=bcd21&11110000 0000 0000 0001 1000 b <4 0001 1111 w1=w1+w1 0000 0000 0011 0000 w2=w2+w2 0000 0000 0011 0001 b3>0, w2=w2+1 4 0000 0000 0011 0001 numposun 1, >0 0011 0001 b=bcd21&00001111 0011 0001 b <4 0011 0001 b=bcd21&11110000 0011 0001 b <4 0001 111 w1=w1+w1 0000 0000 0110 0010 w2=w2+w2 0000 0000 0110 0011 b3>0, w2=w2+1 3 0000 0000 0110 0011 numposun 1, >0 0000 0011 b=bcd21&00001111 0000 0000 0110 0011 b <4 0110 0000 +0011 0000 b=bcd21&11110000 0000 0000 1001 0011 b >4, bcd21+0011 0000 0001 11 w1=w1+w1 0000 0001 0010 0110 w2=w2+w2 2 Jiří Hrbáček

0000 0001 0010 0111 b3>0, w2=w2+1 2 0000 0001 0010 0111 numposun 1, >0 0000 0111 b=bcd21&00001111 0000 0001 0010 1010 b >4, bcd21+0011 0010 0000 b=bcd21&11110000 b <4 0000 0001 0010 1010 0001 1 w1=w1+w1 0000 0010 0101 0100 w2=w2+w2 0000 0010 0101 0101 b3>0, w2=w2+1 1 0000 0010 0101 0101 numposun 1, >0 0000 0101 b=bcd21&00001111 0000 0010 0101 1000 b >4, bcd21+0011 0101 0000 +0011 0000 b=bcd21&11110000 0000 0010 1000 1000 b >4, bcd21+0011 0000 0001 w1=w1+w1 0000 0101 0001 0000 w2=w2+w2 0000 0101 0001 0001 b3>0, w2=w2+1 0 0000 0101 0001 0001 0000 0000 numposun 1, >0 5 1 1 výsledek 3 Jiří Hrbáček

Převod Bin do BCD s využitím softwarového dekadického čítače Tento způsob převodu je jednoduchý ale může trvat relativně dlouho (velký počet instrukčních kroků). Devítibitové číslo může mít maximální hodnotu 511. Obecně je-li n počet bitů binárního čísla, největší hodnota je pak 2 n -1. Počet cyklů, potřebných pro převod je dán právě maximální hodnotou binárního čísla. Pro převod osmibitového čísla je třeba maximálně 511 cyklů. V každém cyklu je provedeno přičtení jedničky (inkrementace) do besítkového čítače. Desítkový čítač realizujeme snadno. Vždy po přičtení jedničky je třeba zjistit, zda je nejnižší digit větší než. Dekadická korekce v prvním případě je následující: Pokud je, přičteme k němu. Poté testujeme následující digit a opět provedeme dekadickou korekci. Je-li jeho hodnota větší než (je 0Ah), přičteme k němu. Dekadická korekce ve verzi 2 je následující: Je-li číslo v bytu, kde je digit větší než (je 0Ah), digit vynulujeme a do následujícího digitu přičteme 1. Poté provádíme tutéž korekci pro vyšší digit. Ukažme si výše uvedené algoritmy na příkladech. Na levo je BCD číslo ve dvou bytech (třech půlbytech), na pravé straně pak ve třech bytech. cyklus b100 b10 b1 BIN operace cyklus b100 b10 b1 BIN operace 0000 0000 0000 111111111 00 00 00 111111111 1. 0000 0000 0001 111111110 1. 01 111111110 2. 0010 111111101 2. 02 111111101. 0000 1001 111110110. 0 111110110 10. 0000 1010 111110101 větší než 10. 0A 111110101 větší než 0001 0000 01 00 11. 0001 0001 111110100 11. 01 01 111110100 1. 0001 1001 111101100 1. 01 0 111101100 20. 0001 1010 111101011 větší než 20. 01 0A 111101011 větší než 0010 0000 02 00. 1001 1001 110011100. 0 0 110011100 100. 1001 1010 110011011 větší než 100. 0 0A 110011011 větší než 0000 1010 0000 větší než 0A 00 větší než 0001 0000 0000 01 00 00 101. 0001 0000 0001 110011010 101. 01 110011010 511. 0101 0001 0001 000000000 511. 05 01 01 000000000 2 5 5 2 5 5 Algoritmus převodu však můžeme zkrátit až o 25 kroků následujícím postupem. Je-li devátý bit v jedničce, bude převáděné číslo 25 a větší. Výchozí hodnotu BCD čísla tedy nastavíme na 25h (0010 0101 0110). Bude-li v nule, pak převáděné číslo bude menší než 255. Výchozí hodnotu BCD čísla tedy nastavíme na 000h (0000 0000 0000). Nyní můžeme inkrementovat výsledek pouze podle dolních 8 bitů čísla. 4 Jiří Hrbáček

Konkrétní postup ukazují následující vývojové diagramy. První způsob umožňuje snadné zobrazení, jsou-li výstupy připojeny na dekodéry 7 segmentovýcgh zobrazovacích jednotek, nebo přímo na LED. Verze 2, kdy je každý digit v jednom bytu je vhodný, potřebujeme-li číslo zobrazit na LCD inteligentním display, kdy potřebujeme BCD hodnotu vyjádřit v ASCII kódu. 5 Jiří Hrbáček

Převod Bin do BCD sčítáním vah bitů s jedničkou Tento způsob vychází z klasického převodu binárního čísla na dekadické. Potřebujeme-li vyjádřit desítkovou hodnotu binárního čísla, postupně sčítáme hodnotu bitu s jeho váhou bity čislujeme od 0 po 8 (devítibitové číslo). Bit 0 je LSB a bit 8 MSB. bit 8*2 8 +bit 7*2 7 +bit *2 +bit 5*2 5 +bit 4*2 4 +bit 3*2 3 +bit 2*2 2 +bit 1*2 1 +bit 0*2 0 = digit 2*10 2 +digit 1*10 1 +digit 0*10 0 Jednoduše řečeno při převodu desítkově sčítáme váhy bitů binárního čísla, ve kterých je jednička. cyklus b100 b10 b1 BIN operace 00 00 00 111111111 1. +2 +5 + 111111111 02 05 0 součet 2. +1 +2 +8 111111111 03 07 0E součet +1 + (b1+) &0F, b10+1 03 08 04 3. + +4 111111111 03 0E 08 součet +1 + (b10+) &0F, b100+1 04 04 08 4. +3 +2 111111111 04 07 0A součet +1 + (b1+) &0F, b10+1 04 08 00 součet 5. +1 + 111111111 04 0 0 součet. +8 11111111 04 0 0E součet +1 + (b1+) &0F, b10+1 04 0A 04 +1 + (b10+) &0F, b100+1 05 00 04 7. +4 111111111 05 00 08 součet 8. +2 111111111 05 00 0A (b1+) &0F, b10+1 +1 + součet 05 01 00. +1 111111111 05 01 01 finální výsledek Jiří Hrbáček