PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   đọc và ghi eprom (http://www.picvietnam.com/forum/showthread.php?t=4888)

mrbean007 04-09-2009 09:05 PM

đọc và ghi eprom
 
chào các a trong diễn đàn, em đọc hoài mà ko a nào hướng dẫn về cách đọc và cách ghi dữ liệu vào trong eprom hết
Mong a nào bít thì hướng dẫn chi tiết hơn về eprom để e hiểu rõ hơn( có cả tourtial thì tốt wa')

thuyhutfet88 04-09-2009 10:11 PM

Giải mã điều khiển từ xa
 
Em đang lam với pic6f877a.Dung nó để giải ma 1 cái điều khiển từ xa của sony.Em dùng 1 con led thu hồng ngoại 3 chân mà chưa biết viết trương trình thế nào.led thu em nối với BIT Bo.Gỉ sử bấm phím 1 thì portc=00000001;bấm phím 2 thì portc=00000010.....Cứ như vậy đến 9.Em mới học pic nên còn "GÀ".Anh chi trong diễn đan giúp em với.Néu co thể viết luôn cho em trương trình hoàn chỉnh.Chân thành cám ơn các anh chị nhiều!

lequocbao 04-09-2009 11:11 PM

Trích:

Nguyên văn bởi mrbean007 (Post 29309)
chào các a trong diễn đàn, em đọc hoài mà ko a nào hướng dẫn về cách đọc và cách ghi dữ liệu vào trong eprom hết
Mong a nào bít thì hướng dẫn chi tiết hơn về eprom để e hiểu rõ hơn( có cả tourtial thì tốt wa')

xem luồng này nè bạn!
http://www.picvietnam.com/forum/showthread.php?t=3108

mrbean007 04-09-2009 11:41 PM

kink của a đưa chung chung wa mình cũng chưa hiểu rõ lắm, ko bít có 1 bài viết nào cụ thể hơn về cái đọc và ghi lên eeprom
nhưng cũng thank vì a đã góp ý

Mr.Bi 05-09-2009 11:07 PM

Tại e k chịu tìm hỉu , cứ đụng tới cái j là lên diễn đàn hỏi , có ng trả lời liền nên k chịu động não search google. Dễ òm chứ có j đâu . Chỉ có 2 hàm : write_eeprom(address,value) và read_eeprom(address) . Cu thể như sau :
Code:

int8 a;
main()
{ write_eeprom(0x01, 0xCA); // ghi 0xCA vào vị trí địa chỉ 0x01 trong eeprom
  a= read_eeprom(0x01) ; // đọc eeprom tại địa chỉ 0x01 , gán vào biến a
  while(1);
}

h biến a của e đã có giá trị 0xCA, đọc ghi eeprom lun đó , ok chứ ?

lequocbao 07-09-2009 01:07 AM

Trích:

Nguyên văn bởi Mr.Bi (Post 29336)
Tại e k chịu tìm hỉu , cứ đụng tới cái j là lên diễn đàn hỏi , có ng trả lời liền nên k chịu động não search google. Dễ òm chứ có j đâu . Chỉ có 2 hàm : write_eeprom(address,value) và read_eeprom(address) . Cu thể như sau :
Code:

int8 a;
main()
{ write_eeprom(0x01, 0xCA); // ghi 0xCA vào vị trí địa chỉ 0x01 trong eeprom
  a= read_eeprom(0x01) ; // đọc eeprom tại địa chỉ 0x01 , gán vào biến a
  while(1);
}

h biến a của e đã có giá trị 0xCA, đọc ghi eeprom lun đó , ok chứ ?

dzầy mừ bạn còn chưa hiểu nữa thì mình cũng không hiểu bạn lun!hì hì
thì ví dụ như vầy nè:
thằng 77a có bộ nhớ là 8k nên nó sẽ có tổng cộng 256 ô nhớ (0 - 255)và mỗi ô nhớ dài 8bit.Với 8bit thì bạn sẽ có thể lưu được con số từ 0 - 255.Tới đây hiểu chưa nè?
để thao tác với các ô nhớ đó bạn chỉ việc sử dụng 02 hàm là:
write_eeprom(địa chỉ,giá trị);//nạp một giá trị vào eeprom tại địa chỉ
a=read_eeprom(địa chỉ);//đọc giá trị trong eeprom tại ô nhớ địa chỉ rồi gán cho biến a.
Với địa chỉgiá trị bạn có thể sử dụng cơ số 10 cho nó dể!
cố gắng lên bạn!!!

luongthan 07-01-2010 10:39 PM

chào các bác co ai biết cách eprom CP50 thi cho em xin một hai cách sử dụng xin đề nghị co ai biết cho biết với xin các bác vào chat yahoo LVTH_LVTH là thấy em cám ơn nhiều

luongthan 07-01-2010 10:42 PM

em mới mua EPROM CP50 về chưa biết sử dụng như thế nào co huyênh đệ nào biết cách chỉ cho với

slowlove 09-01-2010 04:30 PM

có 1 vấn đề mình đang thắc mắc về eprom của 877....
có 1 ứng dụng mà mình phải ghi và xóa liên tục vào bít nhớ đó (TB cứ 1s ghi-đọc 1 lần)
nếu chướng trình của mình mà chạy lâu dài thì ô nhớ đó có bị sao ko??
mình sợ mỗi bit nhớ có thể ghi hc xóa trong khoảng bao nhiêu lần đó thôi vậy nên đến 1 lúc nào đó chương trình của mình sẽ ko chạy hc là bị lỗi....
nếu ko làm theo cách đó thì còn có cách làm nào ## ko???

Mr.Bi 11-01-2010 07:12 AM

Trích:

Nguyên văn bởi slowlove (Post 32950)
có 1 vấn đề mình đang thắc mắc về eprom của 877....
có 1 ứng dụng mà mình phải ghi và xóa liên tục vào bít nhớ đó (TB cứ 1s ghi-đọc 1 lần)
nếu chướng trình của mình mà chạy lâu dài thì ô nhớ đó có bị sao ko??
mình sợ mỗi bit nhớ có thể ghi hc xóa trong khoảng bao nhiêu lần đó thôi vậy nên đến 1 lúc nào đó chương trình của mình sẽ ko chạy hc là bị lỗi....
nếu ko làm theo cách đó thì còn có cách làm nào ## ko???

hình như u đang lưu trữ thời gian cho đồng hồ hoặc update giá trị nào đó . Nếu giám sát thì hầu như phải có truyền thông PC --> phải có giao diện trên PC --> tại sao k dùng Rs232 gửi giá trị lên PC ( 1s/lần) , phần mềm trên PC sẽ lưu .Còn nếu lưu giá trị của đồng hồ thì hầu như mọi con RTC (Real time Clock) nó có nguồn , tự nó save giá trị

slowlove 12-01-2010 03:54 AM

tất nhiên là ko phải mình muốn như thế....
ứng dụng nhỏ thôi nhưng mà nó cần lưu trữ data khi bị mất nguồn...nên ko thể send tới mt đc...
vậy thì phải giải quyết sao đêy??

Mr.Bi 14-01-2010 05:22 PM

Trích:

Nguyên văn bởi slowlove (Post 32996)
tất nhiên là ko phải mình muốn như thế....
ứng dụng nhỏ thôi nhưng mà nó cần lưu trữ data khi bị mất nguồn...nên ko thể send tới mt đc...
vậy thì phải giải quyết sao đêy??

cụ thể là u đang làm project nào ? mỗi project có 1 pp tạm chấp nhận đc để giải quyết vấn đề đó .
vd mún lưu mật mã --> có thể lưu tại 1 địa chỉ trong eeprom bao nhiu lần cũng đc , nhưng tốt nhất là nên lưu sau khi nhấn enter
vd : lưu lại giá trị các biến thì nên khai báo là kiểu unsigned char flash ,hoặc unsigned char eeprom , hoặc write_eeprom (địa chỉ , dta) . hình như ghi xóa đc 10 000 lần .
Hoặc dùng nguồn dự phòng , cái này cần thiết kế 1 mạch đo áp khi mất điện để đóng role thông nguồn ngoài .

slowlove 18-01-2010 11:04 AM

mình cần 1 thiết bị có thể lưu thời gian hoạt động của máy..điều hòa công nghiệp,mà cái máy này cứ bật lại tắt liên tục....nó có thể tắt bất kì lúc nào...
yêu cầu cần phải có 1 cái đồng hồ hiển thị số thời gian nó sử dụng đc từ lúc mình đặt..hc là reset...
do đó cứ khoảng 10->15 s là phải lưu giá trị thời gian 1 lần...
mình định ghi nó vào eprom của PIC nhưng sợ rằng lưu giá trị này vào 1 ô nhớ quá nhiều lần trong 1 thời gian dài thì nó sẽ bị hỏng ....hc bị sai..
mạch này hoạt động mà ko đc dùng nguồn ngoài như nguồn 5v hay 3v phụ cho RTC
mình đang rất bí mà chưa có giải pháp nào phù hợp cả...

alycuong 14-06-2011 02:07 AM

Trích:

Nguyên văn bởi lequocbao (Post 29362)
dzầy mừ bạn còn chưa hiểu nữa thì mình cũng không hiểu bạn lun!hì hì
thì ví dụ như vầy nè:
thằng 77a có bộ nhớ là 8k nên nó sẽ có tổng cộng 256 ô nhớ (0 - 255)và mỗi ô nhớ dài 8bit.Với 8bit thì bạn sẽ có thể lưu được con số từ 0 - 255.Tới đây hiểu chưa nè?
để thao tác với các ô nhớ đó bạn chỉ việc sử dụng 02 hàm là:
write_eeprom(địa chỉ,giá trị);//nạp một giá trị vào eeprom tại địa chỉ
a=read_eeprom(địa chỉ);//đọc giá trị trong eeprom tại ô nhớ địa chỉ rồi gán cho biến a.
Với địa chỉgiá trị bạn có thể sử dụng cơ số 10 cho nó dể!
cố gắng lên bạn!!!

Cái địa chỉ mà a nói (mã hex) là từ bao nhiêu đến bao nhiêu vậy a??

Delfy_Coltech 14-06-2011 12:11 PM

Trích:

Nguyên văn bởi alycuong (Post 46112)
Cái địa chỉ mà a nói (mã hex) là từ bao nhiêu đến bao nhiêu vậy a??

Có lẽ bạn chưa nắm rõ về cấu trúc bộ nhớ của PIC.
Nên đọc kỹ datasheet hơn! ^^


Múi giờ GMT. Hiện tại là 04:24 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam