Převod HEX na ASCII pro zobrazení hodnoty AD přev. na LCD

Cau, mam program kterej mi sejme ze 2 A/D vstupu 10b hodnotu a zobrazi na LCD 2x8, vsechno funguje jak ma akorat sem nikde nenasel hotovej progran na prevod hex na ascii, tady sem nasel na prevod 16b HEX do BCD (prevody cisel),tak sem to trochu poupravil (nebo sprasil :blush: ) na prevod do ASCII a aby se nozobrazovali zbytecny nuly ,a je s toho docela rozsahla patlanina! neslo by to nak skatit ? celej prevod 16b trva pri 4Mhz nakejch 250 us :open_mouth: je to v asm pro 16F628A,samotnej funkcni prevod je tady

:arrow_right: administrator: přesunuto z "Ostatní"
:arrow_right: administrator: přejmenováno z "Prevod HEX na ASCII"
PREVOD HEX TO ASCII 16b.ASM (3.45 KB)

Martin Vonášek používal ve svém seriálu Miniškola programování mikrokontrolérů PIC v dnes již neexistujícím časopise KTE velmi dobré rutiny pro zobrazování číselných hodnot na LCD. Doporučuji ti, prostuduj si poslední ročníky KTE.

Pokud si dobře vzpomínám, rutiny jsou velmi dobře konfigurovatelné a jednoduchou změnou několika logických hodnot se změní zarovnání, počet nul nebo velikost výstupu. Rutiny jsou pro PIC16F877, což znamená, že jsou bez problémů použitelné na PIC16F628A.

?? 250us snad neni tak moc kdyz si vezmes ze 16b je az 5 radu…

ja pouzivam:
0.vynulovat registry radu

  1. rozsdekat 16b odecitanim 10000,1000,100,10 a 1 do registru ktery pak smeruju na vypis na LCD
  2. poinkrementovat vyssi rasdy pri preteceni nekteryho nizsiho radu
  3. pricist 30-H kvuli zobrazeni cisel
  4. od leva kontrolovat kdyz nula = nezopbrazit a dalsi, kdyz nenula = vyskok z podprogramu

tech cca ±250 instrukci to ma taky zkracovat to asi uz moc nepujde…