View Single Post
Old 06-02-2006, 10:07 AM   #2
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Code:
MOVLW d’255’
MOVWF delay‐reg1 ; đưa giá trị 255 vào thanh ghi “delay‐reg1”
loop
DECFSZ delay‐reg1,0 ; giảm giá trị thanh ghi “delay‐reg1”và so sánh với 0
GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1”
GOTO next ; nếu đã băng 0 chương trình delay hoàn tất
loop1
MOVLW d’255’
MOVWF delay‐reg2 ; đưa vào thanh ghi “delay‐reg2” giá trị 255
DECFSZ delay‐reg2,0 ; giảm giá trị thanh ghi “delay‐reg2” và so sánh với 0
MOVWF loop1 ; nếu chưa bằng 0 thì nhảy đến label “loop1”
GOTO loop ; nếu bằng 0 thì nhảy đến label “loop”
next
Xin lỗi các bạn vì hiện nay diễn đàn đang được sửa chữa, vì vậy không thể trình bày tốt được.

F sửa luôn đoạn code trên để tránh các bạn mắc lỗi sai. Bản sửa sẽ được NTC cập nhật lại sau:

Code:
MOVLW d’255’
MOVWF delay_reg1 ; đưa giá trị 255 vào thanh ghi “delay_reg1”
loop
DECFSZ delay_reg1, F ; giảm giá trị thanh ghi “delay_reg1”và so sánh với 0 và ghi lại vào delay-reg1
GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1”
GOTO next ; nếu đã băng 0 chương trình delay hoàn tất
loop1
MOVLW d’255’
MOVWF delay_reg2 ; đưa vào thanh ghi “delay_reg2” giá trị 255

DECFSZ delay_reg2, F ; giảm giá trị thanh ghi “delay_reg2” và so sánh với 0 và ghi lại vào delay_reg2
GOTO $-1 ; nếu chưa bằng 0 thì nhảy lên trên để tiếp tục giảm delay_reg2
; vòng lặp này nhằm giảm delay_reg2 về đến 0
; thời gian giảm delay_reg2 chính là thời gian delay_trong vòng lặp con.
GOTO loop ; nếu bằng 0 thì nhảy đến label “loop”
next
Cách viết hai:

À thôi, H hiểu vì sao NTC viết sai rồi... oki,

để F nói NTC sửa lại sau ... sorry cả nhà...

Chúc vui...

thay đổi nội dung bởi: falleaf, 12-02-2006 lúc 01:38 PM.
falleaf vẫn chưa có mặt trong diễn đàn