![]() |
|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#11 |
Đệ tử 1 túi
Tham gia ngày: Nov 2006
Bài gửi: 19
: |
Báo cáo với bác namqn là cái datasheet mà tôi tham khảo là DS39582B. Còn đoạn code đầy đủ của nó tôi đã đưa lên nhờ bác xem giúp rồi đó.
Code:
LOOP..... . . INCF EEADR,F MOVF EEADR,W ANDLW 0X03 XORLW 0X03 BTFSC STATUS,Z GOTO LOOP - Thứ nhât: Giá trị thanh ghi EEADR được tăng trước khi nó được kiểm tra, cho nên nó không bao giờ tăng đủ giá trị cần thiết cả (tăng 4 địa chỉ so với địa chỉ ban đầu). - Thứ hai: Khi dùng câu lệnh BTFSC STATUS,Z GOTO LOOP Đoạn code này chỉ được thực hiện một lần duy nhất. Trong khi đó để ghi vào bộ nhớ Flash thì cần phải thực hiện ghi dữ liệu vào 4 thanh ghi đệm của nó ( Đoạn code trên cần phải được thực hiện 4 lần). Tôi đã thực hiện sửa lại đoạn code trên một cách đơn giản như sau: Code:
LOOP..... . . MOVF EEADR,W ANDLW 0X03 XORLW 0X03 BTFSC STATUS,Z RETURN INCF EEADR,F GOTO LOOP thay đổi nội dung bởi: namqn, 13-02-2007 lúc 09:22 PM. |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Chuỗi được lưu trong Flash | bien_van_khat | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 24 | 15-12-2010 09:43 AM |
về Pickit 1 FLASH Starter Kit | hawinter | Cơ bản về vi điều khiển và PIC | 2 | 19-12-2006 01:16 AM |