![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ 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 |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
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 |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
Trích:
![]() |
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 3 túi
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 đó.
|
![]() |
![]() |
![]() |
|
|