Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Курсова задача
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=6629
Страница 1 от 2

Автор:  ABSINTH [ Чет Мар 12, 2009 6:42 pm ]
Заглавие:  Курсова задача

Здравейте,
Госпожата по асемблер за микроконтролер ми даде задача да напиша програма за преобразуване на еднобайтови двоични числа в BCD код, но си нямам никаква представа какво да пиша в нея.
Ако може някой да ми помогне ще съм му мн благодарен.

Автор:  bateAz [ Чет Мар 12, 2009 6:55 pm ]
Заглавие: 

Точка Първа:
Няма Асемблер за микроконтролер. Има Асембер за конкретен микроконтролер. Асемблерите са повече от мадамите лятно време по плажа... :)

Автор:  ABSINTH [ Чет Мар 12, 2009 7:06 pm ]
Заглавие: 

ем добре PIC18FXX това ни е диктува госпожата :)

Автор:  BONGO [ Чет Мар 12, 2009 7:59 pm ]
Заглавие: 

В ТЕЕ "Мария Кюри" ли учиш?

Автор:  ABSINTH [ Чет Мар 12, 2009 8:07 pm ]
Заглавие: 

Да но вече се води ПГЕЕ

Автор:  Desert Leo [ Чет Мар 12, 2009 8:54 pm ]
Заглавие: 

Цитат:
Здравейте,
Госпожата по асемблер за микроконтролер ми даде задача да напиша програма за преобразуване на еднобайтови двоични числа в BCD код, но си нямам никаква представа какво да пиша в нея.
Ако може някой да ми помогне ще съм му мн благодарен.


Като начало трябва да знаеш какво е BCD-код.

Автор:  ABSINTH [ Пет Мар 13, 2009 12:38 am ]
Заглавие: 

Знам какво е BCD код знам и как да преобразувам двоичните числа в BCD но само с числа. Само незнам как да напиша програмата

Автор:  Zdrav [ Пет Мар 13, 2009 9:59 am ]
Заглавие: 

ABSINTH написа:
Знам какво е BCD код знам и как да преобразувам двоичните числа в BCD но само с числа. Само незнам как да напиша програмата

Е това е трябвало "госпожата по асемблер" поне да ти покаже как става.
И какво всъщност очакваш като помощ ... ?

Автор:  sukhoi [ Пет Мар 13, 2009 10:22 am ]
Заглавие: 

http://www.piclist.com/techref/microchi ... p-8b3d.htm

виж тук..има и всякакви други преобразувания и сметки

Автор:  ABSINTH [ Пет Мар 13, 2009 10:35 am ]
Заглавие: 

Добре де питах я как става обясни ми горе доло какво трябва да напиша първо да умножа двоичното число по константа след това всичките числа да ги субера, да ги прехвъчрля във WREG и пак да ги сабирам. Ама явно нищо пак несам разбрал. До сега несме правили ( не сме ги писали в тетрадката ) никакви по големи програми, само пишем по един ред и толкова и ся с тая задача абсолютно никой от класа неможа да се справи, е някой си намериха прогамите написани в учебника ама другите сме прецакани щото ги няма.
Да си кажа чесни а и сигорно сте разбрали очаквах да ми я напишете програмата пък и да не е вярна няма значение важното е да имам повече от 2

Автор:  Wise [ Пет Мар 13, 2009 11:46 am ]
Заглавие: 

Погледна ли линка от предния пост? Copy/Paste и понеже госпожата отбира от
английски, колкото от асемблер за PIC18xx, ще стане работата.
Само дано лекарите не учат така, че ................. :evil:

Автор:  ABSINTH [ Пет Мар 13, 2009 5:12 pm ]
Заглавие: 

да видях го мерси! Днес и го показах обаче тя каза че това е програма за C++ и ме върна да си напиша какво съм правил нищо че не е вярно

Автор:  setoy [ Пет Мар 13, 2009 5:14 pm ]
Заглавие: 

:D

Автор:  ps66 [ Пет Мар 13, 2009 5:25 pm ]
Заглавие: 

ABSINTH написа:
да видях го мерси! Днес и го показах обаче тя каза че това е програма за C++ и ме върна да си напиша какво съм правил нищо че не е вярно


дай малко по бавно :)

показал си и "това":
Код:
;********************************
;binary_to_bcd - 8-bits
;
;Input
;  bin  - 8-bit binary number
;   A1*16+A0
;Outputs
; hundreds - the hundreds digit of the BCD conversion
; tens_and_ones - the tens and ones digits of the BCD conversion
binary_to_bcd:

        CLRF    hundreds
        SWAPF   bin, W      ; swap the nibbles
        ADDWF   bin, W      ; so we can add the upper to the lower
        ANDLW   B'00001111' ; lose the upper nibble (W is in BCD from now on)
        SKPNDC              ; if we carried a one (upper + lower > 16)
         ADDLW  0x16        ; add 16 (the place value) (1s + 16 * 10s)
        SKPNDC              ; did that cause a carry from the 1's place?
         ADDLW  0x06        ; if so, add the missing 6 (carry is only worth 10)
        ADDLW   0x06        ; fix max digit value by adding 6
        SKPDC               ; if was greater than 9, DC will be set
         ADDLW  -0x06       ; if if it wasn't, get rid of that extra 6
       
        BTFSC   bin,4       ; 16's place
         ADDLW  0x16 - 1 + 0x6  ; add 16 - 1 and check for digit carry
        SKPDC
         ADDLW  -0x06       ; if nothing carried, get rid of that 6
       
        BTFSC   bin, 5      ; 32nd's place
         ADDLW  0x30        ; add 32 - 2
       
        BTFSC   bin, 6      ; 64th's place
         ADDLW  0x60        ; add 64 - 4
       
        BTFSC   bin, 7      ; 128th's place
         ADDLW  0x20        ; add 128 - 8 % 100
       
        ADDLW   0x60        ; has the 10's place overflowed?
        RLF     hundreds, F ; pop carry in hundreds' LSB
        BTFSS   hundreds, 0 ; if it hasn't
         ADDLW  -0x60       ; get rid of that extra 60
       
        MOVWF   tens_and_ones   ; save result
        BTFSC   bin,7       ; remeber adding 28 - 8 for 128?
         INCF   hundreds, F ; add the missing 100 if bit 7 is set
       
        RETURN              ; all done!


и .... "госпожата":

ABSINTH написа:
каза че това е програма за C++


или нещо ... пропускам :)

Автор:  sukhoi [ Пет Мар 13, 2009 5:36 pm ]
Заглавие: 

обектно ориентирана.... или обектно неориентирана :D

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/