PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 08-04-2009, 03:31 PM   #1
OHayNhi
Đệ tử 1 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 12
:
Có ai phân tích được cái chương trình này giúp mình không :(

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
OHayNhi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2009, 04:25 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn có thể đọc phần phân tích thuật toán ở đây:
http://www.piclist.com/techref/micro...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/micro...-10b4d-eag.htm

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2009, 10:49 AM   #3
OHayNhi
Đệ tử 1 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 12
:
Trích:
Nguyên văn bởi namqn View Post
Bạn có thể đọc phần phân tích thuật toán ở đây:
http://www.piclist.com/techref/micro...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/micro...-10b4d-eag.htm

Thân,
Cảm ơn bác . Thanhk nhiều ^^
OHayNhi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-04-2009, 09:43 AM   #4
nghia_tdh21
Đệ tử 3 túi
 
nghia_tdh21's Avatar
 
Tham gia ngày: Oct 2006
Bài gửi: 46
:
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 đó.
nghia_tdh21 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 11:37 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam