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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 03-10-2006, 10:19 AM   #4
newuser
Đệ tử 4 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 66
:
Ta biết rằng nhãn LOOP ở đỉa chỉ 0000h và nhãn DELAY ở địa chỉ 0804h, cả hai lệnh CALL và GOTO đều sử dụng đến nội dung các bit PCLATH<4:3>
Vậy thì sau khi thiết lập PCLATH, thực thi xong chương trình DELAY, lệnh GOTO LOOP sẽ được thực thi? Câu trả lời là KHÔNG! Tại sao vậy?
Để lệnh GOTO LOOP hoạt động đúng thì địa chỉ trỏ đến của lệnh này phải là 00h, tuy nhiên do giá trị của PCLATH vẫn là 0000 1000, điều này có nghĩa là lệnh GOTO LOOP sẽ trỏ đến địa chỉ 0800h chứ không phải là 0000h như ta mong muốn!Sửa chữa? Ta có thể Reset giá trị PCLATH trước khi quay trở về từ chương trình con như thế này:
Code:
ORG 0x00
LOOP	MOVLW	HIGH(DELAY)	;W=08H
	MOVWF	PCLATH		;PCLATH=0000 1000B
	CALL	DELAY
	GOTO	LOOP
	.
	.
	.
	ORG 0X0800
ERROR	GOTO	ERROR
	NOP
	NOP
	NOP
DELAY	NOP
	NOP
	CLRF PCLATH
	RETURN
bạn hãy yên tâm là chương trình của bạn sẽ quay về đúng chỗ vì 13 bit PC đã được cất vào ngăn xếp trước đó, khi RETURN, 13 bit này được trả lại cho PC và PCLATH chẳng liên quan gì đến việc này (datasheet có nói đó: Nội dung PCLATH không đổi khi quay trở về từ ngắt và chương trình con.)
Trên đây là phần lược dịch của mình, do trình độ Anh ngữ và chuyên môn hạn hẹp nên có thể có vài từ ngữ chuyên môn không dịch đúng hoặc không hiểu đúng-->dịch sai.Còn rất nhiều những vấn đề khác mong được các bạn viết bài hưởng ứng, để những NEWUSER như mình có dịp học hỏi!

thay đổi nội dung bởi: newuser, 03-10-2006 lúc 10:23 AM.
newuser vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
sách về 8051 111985 Trao đổi ngoài luồng 0 28-11-2006 08:26 AM
8051 thanhcong138 Trao đổi ngoài luồng 2 17-09-2006 12:25 AM
chút xíu về 8051 levan8421 Trao đổi ngoài luồng 2 11-07-2006 11:12 PM


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


Đượ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