PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Nộp bài tập "Hoc PIC trong 1 ngày" (http://www.picvietnam.com/forum/showthread.php?t=33)

teo 28-05-2005 01:56 PM

Nộp bài tập "Hoc PIC trong 1 ngày"
 
Bác falleaf ơi, mấy bửa nay theo dõi bài viết của bác, em cũng bắt đầu nghiên cứu xem sao, nhưng có phần vẫn chưa hiểu về công thức tính delay của bác, em nộp bài tập này nhờ bác xem giúp coi ntn :p
PHP Code:

Bài 1:
******************************
delay:
    
movlw    d'250'
    
movwf    count1
del_trong1
:
    
movlw    d'100'
    
movwf    counta        
del_trong2
:    
    
decfsz    counta
    
goto    del_trong2    
    decfsz    count1
    
goto    del_trong1
    
return
;
tinh toan delay
;    call 2
;     return = 2
;    del_trong2 = (100-2)+(98+98*2)+393
;    del_trong1 248+(248+248*2)+993
;    --------------------------------------
;    
total 2+2+393*993 290951
**********************************
Bài 2:
**********************************
loop:    
    
movlw    b'100000000'
    
movwf    LEDPORT
    call     delay
    movlw    
b'010000000'
    
movwf    LEDPORT
    call     delay
    movlw    
b'001000000'
    
movwf    LEDPORT
    call     delay
    movlw    
b'000100000'
    
movwf    LEDPORT
    call     delay
    movlw    
b'000010000'
    
movwf    LEDPORT
    call     delay
    movlw    
b'000001000'
    
movwf    LEDPORT
    call     delay
    movlw    
b'000000100'
    
movwf    LEDPORT
    call     delay
    movlw    
b'000000010'
    
movwf    LEDPORT
    call     delay
    movlw    
b'000000001'
    
movwf    LEDPORT
           
             
goto       loop
********************************** 

:) :) :)

falleaf 29-05-2005 07:38 PM

Cám ơn tèo.. hihi..

Anh sẽ xem lại cho chú sau. Nhưng lần sau, chú gửi bài lên, chú nhớ gửi kèm file .zip cả phần source của chương trình chú viết, để anh đỡ mất công copy qua lại nhé. Vì sau này có nhiều phần lằng nhằng trong bài tập dính đến các phần phía trên thì post rất dài.

Chú gửi dạng gửi file đính kèm lên đây.

falleaf 31-05-2005 02:30 AM

Công thức em tính bị sai rồi TEO, vì vòng lặp ở trong anh viết công thức tính ở bên kia sai, cho nên em xem lại cách tính của anh.

COUNT_L anh ký hiệu cho giá trị ban đầu nhập vào
DECFSZ và GOTO là số chu kỳ máy cần thực hiện của hai lệnh này.

Như vậy, khi bắt đầu lệnh DECFSZ đầu tiên, anh giả sử COUNT_L ban đầu = 2 đi, thì rõ ràng sẽ tốn 5 chu kỳ máy trước khi nhảy đến lệnh RETURN, chứ không phải 2 chu kỳ máy giống như công thức ban đầu anh viết. Có thể do viết bài dài và không tập trung, nên lúc viết mặc dù cố gắng cẩn thận, những cũng không tránh khỏi sai sót như thế này.

Vòng lặp delay_trong2 của em, giống y như bài cơ bản. Do vậy, nó sẽ là 99*3 + 2 = 300 chu kỳ chứ không phải 393 chu kỳ như cách em tính

Vì em lưu ý rằng, nếu kết quả phép trừ của DECFSZ là khác không, thì lệnh này chỉ tốn 1 chu kỳ máy, như bất kỳ lệnh nào khác. Nhưng khi kết quả bằng 0, thì thay vì nó thực hiện lện GOTO thì nó thực hiện lệnh NOP, như vậy, nó giống như trở thành lệnh 2 chu kỳ, chứ không phải nó là một lệnh 2 chu kỳ.

Em xem lại cách tính nhé.

noisePIC 31-05-2005 11:13 AM

Bài tập 8 led
 
1 Attachment(s)
Nộp bài tập
....
Em đề nghị anh falleaf nâng giá lên một chút nhé 10K một bài tập hoàn chỉnh.Tiền bây giờ rớt giá lắm
Đề nghị anh falleft sửa nút TAB giống..trong text editor nhé!

Falleaf sửa: Nếu bạn muốn copy và paste một đoạn code, bạn cứ đánh dấu bằng lệnh

[code ]

.. code cua ban o day

[/code ]

Nhớ viết liền lại, không có khoảng trắng chỗ dấu ] thì bạn sẽ thấy nó hiển thị đúng.

teo 01-06-2005 10:43 AM

A bây giờ thì em đã hiểu rùi, cám ơn bác falleaf :)

falleaf 02-06-2005 01:11 AM

Ghi nhận ý kiến của bạn Noise PIC về việc thay biểu tượng code, sẽ cố gắng sửa trong thời gian sớm nhất có thể.

Noise PIC, bạn vẫn chưa tính toán số chu kỳ hao tổn của vòng lặp.

Tèo, sau khi tính lại, em gửi lại kết quả cuối cùng lên nhé.

Chúc vui.

PS> Các bạn gửi bài, như tôi đã nói về việc soạn thảo tutorial, các bạn nên gửi kèm theo một file đầy đủ, đã test của các bài tập. Cái tôi cần là các bạn đã test, có hình chụp và gửi. Bởi vì khi các bạn thuyết phục tôi bằng mạch test, cũng giống như sau này tôi sẽ thuyết phục người đọc bằng chính những bức hình của các bạn vậy. Hôm nay các bạn làm bài thiếu hình ảnh cụ thể minh họa, nhưng ngày mai các bạn khóa sau sẽ có hình ảnh của các bạn là những minh họa cụ thể nhất.

Mẫu chương trình tôi đã đăng, nhưng không hiểu sao các bạn lười copy lại hay sao ấy, mà vẫn chỉ viết một cách cẩu thả.

Tôi không cần sự chứng minh khả năng các bạn có thể làm được bài tập nhanh hay mau, mà cần khả năng làm việc của các bạn có thể kế thừa được không. Tôi là người kế thừa của các bạn đầu tiên, vì tôi sẽ dùng nó để soạn tutorial.. các bạn trở thành những ông giáo bất đắc dĩ.


Múi giờ GMT. Hiện tại là 06:34 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam