| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| BIN16BCD5 - някакви идеи ?! http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=2874 |
Страница 1 от 1 |
| Автор: | me40 [ Пон Сеп 11, 2006 1:23 pm ] |
| Заглавие: | BIN16BCD5 - някакви идеи ?! |
Здравейте ! Някакви други идеи за преобразуване на 16 бит. число в двойно-десетично. Аз го правя по следният начин: BIN16BCD5 macro BIN_DIG_H, BIN_DIG_L local end_conv local ch_10000 local ch_1000 local ch_100 local ch_10 local lp_1000 local lp_100 local lp_10 movff BIN_DIG_H,DIG_10 movff BIN_DIG_L,DIG_1 clrf DIG_100 clrf DIG_1000 clrf DIG_10000 ch_10000 SUBLF D'10000',DIG_10,DIG_1 bnc ch_1000 incf DIG_10000,f bra ch_10000 ch_1000 ADDLF D'10000',DIG_10,DIG_1 lp_1000 SUBLF D'1000',DIG_10,DIG_1 bnc ch_100 incf DIG_1000,f bra lp_1000 ch_100 ADDLF D'1000',DIG_10,DIG_1 lp_100 SUBLF D'100',DIG_10,DIG_1 bnc ch_10 incf DIG_100,f bra lp_100 ch_10 ADDLF D'100',DIG_10,DIG_1 lp_10 movlw D'10' subwf DIG_1,w bnc end_conv movwf DIG_1 incf DIG_10,f bra lp_10 end_conv endm SUBLF macro Literal_16, Dest_H, Dest_L movlw LOW (Literal_16) subwf Dest_L,f movlw HIGH (Literal_16) subwfb Dest_H,f endm ADDLF macro Literal_16, Dest_H, Dest_L movlw LOW (Literal_16) addwf Dest_L,f movlw HIGH (Literal_16) addwfc Dest_H,f endm Но в действителност проц. ми увисва, а при преобразуването на 8-бит нямам никакви проблеми (по същият метод) Ако някой може да приложи код (по друг начин) или да сподели идея. |
|
| Автор: | Ки4о [ Пон Сеп 11, 2006 1:48 pm ] |
| Заглавие: | |
Аз ползвам следното : Входни регистри: binh_reg binl_reg Изходни регистри: tenk_reg thous_reg hund_reg tens_reg ones_reg Програма: conv_16bin_bcd banksel binh_reg swapf binh_reg,w andlw B'00001111' addlw B'11110000' movwf thous_reg addwf thous_reg,f addlw H'E2' movwf hund_reg addlw H'32' movwf ones_reg movf binh_reg,w andlw B'00001111' addwf hund_reg,f addwf hund_reg,f addwf ones_reg,f addlw H'E9' movwf tens_reg addwf tens_reg,f addwf tens_reg,f swapf binl_reg,w andlw B'00001111' addwf tens_reg,f addwf ones_reg,f rlf tens_reg,f rlf ones_reg,f comf ones_reg,f rlf ones_reg,f movf binl_reg,w andlw B'00001111' addwf ones_reg,f rlf thous_reg,f movlw H'07' movwf tenk_reg movlw H'0A' label1 addwf ones_reg,f decf tens_reg,f btfss STATUS,C goto label1 label2 addwf tens_reg,f decf hund_reg,f btfss STATUS,C goto label2 label3 addwf hund_reg,f decf thous_reg,f btfss STATUS,C goto label3 label4 addwf thous_reg,f decf tenk_reg,f btfss STATUS,C goto label4 retlw 0 Работи без проблеми.Айде успех |
|
| Автор: | Gogo [ Пон Сеп 11, 2006 2:11 pm ] |
| Заглавие: | |
Търси тук: http://www.piclist.com/techref/microchip/routines.htm - има всичко каквото ти трябва Е това ми харесва: [url]http://www.piclist.org/techref/postbot.asp?by=time&id=piclist\1999\06\05\113527a[/url] |
|
| Автор: | me40 [ Пон Сеп 11, 2006 3:04 pm ] |
| Заглавие: | |
Да, 24 - бит и на мен ми допада ! Довечера ще пробвам. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|