PDA

View Full Version : Lưu dữ liệu EEPROM cho PIC


lequocbao
14-11-2008, 04:35 PM
Mình muốn làm 1 cái timer với pic6f877a có 02 nút nhấn đầu vào và 01 led hiển thị ngõ ra.
02 nút nhấn để tăng giảm thời gian cài đặt cho timer.Vấn đề ở đây là khi mình cài thời gian là 10s nhưng khi cúp nguồn thì làm sao sau khi có nguồn lại pic vẫn giữ được giá trị mà mình đã cài đặt trước đó(10s).Ai rành về vụ này hướng dẫn giúp mình với!
Mình nghe nói là phải lưu vào bộ nhớ epprom của pic nhưng mìng không biết làm như thế nào?

namqn
14-11-2008, 05:15 PM
Mình muốn làm 1 cái timer với pic6f877a có 02 nút nhấn đầu vào và 01 led hiển thị ngõ ra.
02 nút nhấn để tăng giảm thời gian cài đặt cho timer.Vấn đề ở đây là khi mình cài thời gian là 10s nhưng khi cúp nguồn thì làm sao sau khi có nguồn lại pic vẫn giữ được giá trị mà mình đã cài đặt trước đó(10s).Ai rành về vụ này hướng dẫn giúp mình với!
Mình nghe nói là phải lưu vào bộ nhớ epprom của pic nhưng mìng không biết làm như thế nào?
Bạn dùng ngôn ngữ gì để viết code cho PIC? Nếu dùng hợp ngữ, datasheet của PIC16F877A có sẵn ví dụ để đọc/ghi EEPROM. Nếu dùng ngôn ngữ cấp cao (C, Pascal, hay Basic chẳng hạn), các trình biên dịch thường cung cấp các hàm để thực hiện tác vụ này.

Thân,

lequocbao
15-11-2008, 10:57 AM
Mình dùng C và mình đã tìm ra 02 hàm read_eeprom(address); và write_eeprom(address,value); Vậy cho mình hỏi là cái address mình chỉ cho pic lưu vào vùng nhớ của thanh ghi mục đích chung được không ? Nếu không thì mình phải lưu dữ liệu vào đâu?

namqn
15-11-2008, 04:07 PM
Mình dùng C và mình đã tìm ra 02 hàm read_eeprom(address); và write_eeprom(address,value); Vậy cho mình hỏi là cái address mình chỉ cho pic lưu vào vùng nhớ của thanh ghi mục đích chung được không ? Nếu không thì mình phải lưu dữ liệu vào đâu?
Vùng nhớ của thanh ghi mục đích chung (general purpose) là vùng RAM. Ở đây đang nói về EEPROM. RAM sẽ bị mất nội dung khi ngắt nguồn cấp cho PIC, còn EEPROM thì không bị mất.

PIC16F877A có 256 byte EEPROM, do đó địa chỉ address trong các hàm đọc/ghi EEPROM trên sẽ có giá trị trong khoảng 0 .. 255.

Thân,

lequocbao
15-11-2008, 05:21 PM
Cảm ơn anh namqn nhiều!