thêm caracters cho hiển thị thông báo

S

sarus

Guest
<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Trung lập" border="0" />

là có bất kỳ hop để thêm vào nhiều nhân vật (ít thì 32) để chương trình này:
http://www.elektronikce.com/Download/pic0504.asm
trang chính là cô: http://elektronikce.com/7_16.html
thank u

 
chào,

i tăng dòng (retlw B'0xxxxxxx ') dòng
nhưng quy định tại số dòng nó dừng lại và lặp đi lặp lại từ init.

Sau khi tìm kiếm về việc này, tôi thấy rằng vấn đề từ dòng

addwf PCL, 1

và tôi nghĩ rằng các giải pháp trong những từ này:

Mã số:Một Caution PIC hội cho lập trình viênCó một điểm tinh tế mà bạn nên lưu ý khi viết

chương trình của bạn lắp ráp cho các chip PIC. Chương trình truy cập là

a 13-bit unsigned integer, nhưng hầu hết những lệnh mà thay đổi

giá trị của chương trình cung cấp truy cập ít hơn 13 bit.

Các lệnh CALL và GOTO chỉ cung cấp 11 bit, và hoạt động bất kỳ

như ADDWF áp dụng cho PCL cung cấp chỉ có 8 bit. Việc còn lại của

của 13 bit thu được từ PCLATH đăng ký, mà là

ban đầu 0 Do đó,. CALL và GOTO sẽ hoạt động chỉ trong vòng

đầu tiên 2K bộ nhớ và các ADDWF PCL, f đường mà chúng tôi sử dụng

để thực hiện các bảng tra cứu tác phẩm chỉ trong 256 từ đầu năm

bộ nhớ một cách rõ ràng, trừ khi chúng tôi thiết lập PCLATH với giá trị thích hợp.

Kể từ khi chương trình của bạn không có khả năng vượt quá giới hạn 2K từ,

chúng tôi chỉ cần phải lo lắng về tình hình nơi ADDWF PCL, f dòng

của một bảng tra cứu được đẩy vượt ra ngoài địa chỉ 100H. Nếu bạn

thêm mã để proto.asm và đột nhiên thấy rằng chương trình dừng

làm việc hoàn toàn, có thể là do bạn đã đẩy các ADDWF PCL, f

dòng được dùng trong động cơ thường lệ đến một địa điểm vượt ra ngoài 255 byte

giới hạn.Để kiểm tra xem có vấn đề, xem file lst. Rằng lắp ráp

sản xuất và kiểm tra tất cả các dòng của ADDWF mẫu PCL hay ADDWF PCL, f

và kiểm tra địa chỉ của nó (số đầu tiên trên đường kẻ, nó là tại

hệ thập lục phân). Nếu con số lớn hơn 0FFh, chương trình

Số lượt truy cập sẽ được đặt cho một số địa chỉ tại đầu của

chương trình thay vì một vài từ hơn nữa trong các mã nơi bạn muốn

nó để đi. Để khắc phục được vấn đề, chèn dòngMovlw 1

Movwf PCLATHmột nơi nào đó chỉ là trước khi bạn đã sẵn sàng để thực thi ADDWF PCL. Bạn

cũng sẽ muốn viết những dòngMovlw 0

Movwf PCLATHlúc bắt đầu của vòng chính vì vậy mà ADDWF PCL hướng dẫn

trong 255 từ đầu tiên của bộ nhớ sẽ hoạt động tốt.Nếu mã của bạn được như vậy lớn mà bạn tìm thấy một ADDWF PCL chỉ dẫn

tại một địa chỉ giữa 200h và 2FFh, bạn sẽ sử dụng movlw 2 thay vì

của movlw 1, vv Tương tự như vậy,. nếu chương trình của bạn sẽ nhận được như vậy

lớn mà một chỉ lệnh CALL hoặc GOTO hoặc cư trú tại một địa điểm

với một địa chỉ ngoài 7FFh hoặc nhảy đến một địa điểm ngoài 7FFh,

bạn sẽ phải chènMovlw n

Movwf PCLATHtrong đó n là kết quả của bộ phận thể các mục tiêu địa chỉ

do 256. (Thả 2 chữ số cuối thập lục phân của địa chỉ được

nhảy lên hoặc được gọi là để có được n.) Một lần nữa, hãy chắc chắn rằng PCLATH là

thiết lập đúng với giá trị quyền trước khi mọi CALL và GOTO và

ADDWF PCL. (Bạn không phải lo lắng về CALL và GOTO hướng dẫn

PCLATH mặc dù được thiết để xử lý ADDWF PCL hướng dẫn nếu

các chương trình của bạn sẽ thấp hơn 2048 hướng dẫn dài.)Cũng lưu ý rằng khi ADDWF PCL thực hiện, nếu số trong W và

PCL thêm vào một số lượng lớn hơn 255, bit thực hiện được

vứt bỏ và chương trình truy cập sẽ nhảy ngược trở lại thay vì

của chuyển tiếp. Đây là lý do tại sao các bảng tra cứu toàn bộ phải không

sự dang chân ra một địa chỉ đó là chia hết cho 256.

 

Welcome to EDABoard.com

Sponsor

Back
Top