Ðăng Nhập

View Full Version : Có ai phân tích được cái chương trình này giúp mình không :(


OHayNhi
08-04-2009, 03:31 PM
Convert: ; Takes number in NumH:NumL
; Returns decimal in
; TenK:Thou:Hund:Tens:Ones
swapf NumH, w
iorlw B'11110000'
movwf Thou
addwf Thou,f
addlw 0XE2
movwf Hund
addlw 0X32
movwf Ones

movf NumH,w
andlw 0X0F
addwf Hund,f
addwf Hund,f
addwf Ones,f
addlw 0XE9
movwf Tens
addwf Tens,f
addwf Tens,f

swapf NumL,w
andlw 0X0F
addwf Tens,f
addwf Ones,f

rlf Tens,f
rlf Ones,f
comf Ones,f
rlf Ones,f

movf NumL,w
andlw 0X0F
addwf Ones,f
rlf Thou,f

movlw 0X07
movwf TenK

; At this point, the original number is
; equal to
; TenK*10000+Thou*1000+Hund*100+Tens*10+Ones
; if those entities are regarded as two's
; complement binary. To be precise, all of
; them are negative except TenK. Now the number
; needs to be normalized, but this can all be
; done with simple byte arithmetic.

movlw 0X0A ; Ten
Lb1:
addwf Ones,f
decf Tens,f
btfss 3,0
goto Lb1
Lb2:
addwf Tens,f
decf Hund,f
btfss 3,0
goto Lb2
Lb3:
addwf Hund,f
decf Thou,f
btfss 3,0
goto Lb3
Lb4:
addwf Thou,f
decf TenK,f
btfss 3,0
goto Lb4

retlw 0x00

namqn
08-04-2009, 04:25 PM
Bạn có thể đọc phần phân tích thuật toán ở đây:
http://www.piclist.com/techref/microchip/math/radix/b2bu-16b5d.htm

Bạn đã có một câu hỏi ở một luồng khác về chuyển đổi giá trị ADC 10-bit thành các chữ số thập phân, với vấn đề đó bạn chỉ cần dùng thuật toán chuyển đổi 10-bit nhị phân thành 4 số BCD, link cho mã nguồn ở đây:
http://www.piclist.com/techref/microchip/math/radix/b2bu-10b4d-eag.htm

Thân,

nghia_tdh21
09-04-2009, 09:43 AM
Theo mình để hiểu một đoạn chương trình là nên vẽ lại lưu đồ hoạt động của nó dựa trên các nhãn trong trong đó.

OHayNhi
09-04-2009, 10:49 AM
Bạn có thể đọc phần phân tích thuật toán ở đây:
http://www.piclist.com/techref/microchip/math/radix/b2bu-16b5d.htm

Bạn đã có một câu hỏi ở một luồng khác về chuyển đổi giá trị ADC 10-bit thành các chữ số thập phân, với vấn đề đó bạn chỉ cần dùng thuật toán chuyển đổi 10-bit nhị phân thành 4 số BCD, link cho mã nguồn ở đây:
http://www.piclist.com/techref/microchip/math/radix/b2bu-10b4d-eag.htm

Thân,

Cảm ơn bác :D. Thanhk nhiều ^^