Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
La mulți ani @Piniuli!

Pret inghetata corso kaufland?

La multi ani @Constantin si Elena...

La mulți ani @Ion_Bumbu!
 Obiecte vechi și inutile car...

Mentenanta Acoperis

Cheder deteriorat , zgariat, cum ...

Laptop HP 15-AF001NQ, AMD E1-6015...
 Blat de bucatarie lungime 4,60 m

Termostat incalzire si racire

Configurare retea cu modem Vodafo...

Curtea Penala Internationala soli...
 Sunt obligate bancile sa opteze p...

Pensie anticipata partiala cu cer...

Ce abonamente aveți?

Cat ar costa acest poster, se poa...
 

conversie binar-bcd

- - - - -
  • Please log in to reply
3 replies to this topic

#1
thedeady

thedeady

    Member

  • Grup: Members
  • Posts: 587
  • Înscris: 22.01.2007
Buna ziua tuturor!
Am de realizat un montaj cu acest tip de microcontroller (PIC16F877A) ce se doreste a fi un regulator de temperatura, avand ca intrari 4 senzori de temperatura si un keypad de unde se va introduce o alta temperatura de catre utilizator urmand ca, in functie de diferenta dintre acestea sa se activeze un sistem incalzire sau racire.
Problema intervine tocmai la aceasta comparatie. Dati fiind senzorii cu o plaja limitata de temperatura (0-50 grade Celsius), cu o variatie de 10 mV / grad si referinta ADC-ului de 2.048 V, rezulta o rezolutie de 2 mV / bit (toate canalele A/D sunt pe 10 biti). Dintre acesti 10 biti, eu utilizez doar 8, conform cu scala de temperaturi mentionata, deci in registrul ADRESH (rezultatul e left justified) am valori intre 0-250, cu o variatie in BCD 0-50. Cum as putea realiza conversia dintre valorile binare si cele in format BCD in assembler? (formatul BCD este necesar pentru ca temperatura medie de pe senzori ar trebui afisata pe 2 display-uri LED 7 segmente, la apasarea uneia dintre taste.

Va multumesc anticipat pentru ajutor,
Bogdan

#2
ozyl

ozyl

    Junior Member

  • Grup: Members
  • Posts: 46
  • Înscris: 09.08.2007
;*******************************************************
bin_to_bcd
;intrarea in temp0
;iesirea in W

;bin =temp0
;hundreds =temp1
;tens_and_ones =temp2
CLRF    temp1
SWAPF   temp0, W ;w  = A0*16+A1
ADDWF   temp0, W ;w  = A0+A1
ANDLW   0x0f ;w  = A0+A1 % 16
SKPNDC ;if A0+A1 > 16
ADDLW  0x16 ;  w  += 16
SKPNDC ;if w % 16 > 10
ADDLW  0x06 ;  w  += 6
ADDLW   0x06 ;w  += 6
SKPDC ;if w < 10
ADDLW  -0x06 ;  w  -= 6

BTFSC   temp0,4
ADDLW   0x16 - 1 + 0x6
SKPDC
ADDLW  -0x06

BTFSC   temp0, 5
ADDLW  0x30

BTFSC   temp0, 6
ADDLW  0x60

BTFSC   temp0, 7
ADDLW  0x20

ADDLW   0x60
RLF     temp1, F
BTFSS   temp1, 0
ADDLW  -0x60
return

#3
t1000_Android

t1000_Android

    Junior Member

  • Grup: Members
  • Posts: 239
  • Înscris: 26.08.2007
Sa nu mai incep alt topic, am sa pun o intrebare pe topicul acesta:
Cum se face o convertire din BCD in binar si invers?
Am gasit pe net niste explicatii dar erau vagi, sau nu le-am inteles eu. Am gasit metoda aceea in care muti de 3 ori la stanga si dupa aia aduni 3 si asa mai departe dar mie nu-mi iese. Ati putea sa-mi explicati asa, mai pe larg?
Imi trebuie si convertirea BCD - binar si invers. Vreau sa fac un inmultitor pentru un turometru electronic care masoara turatia o data pe secunda si afiseaza numarul de turatii pe minut si vreau sa implementez functia de imnultire x*60 dar vreau sa o fac din porti, registre si alte chestii. Deci trebuie sa stiu aceasta convertire cum se face pe hartie.

Multumesc Anticipat! :D

#4
berty_a

berty_a

    Junior Member

  • Grup: Members
  • Posts: 31
  • Înscris: 11.07.2006
Pentru conversia binar la BCD poti folosi o subrutina de la:
http://www.module.ro/library.html

Edited by berty_a, 18 January 2010 - 10:13.


Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate