PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-09-2009, 09:05 PM   #1
mrbean007
Đệ tử 1 túi
 
Tham gia ngày: Sep 2008
Bài gửi: 19
:
đọ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')
mrbean007 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-09-2009, 10:11 PM   #2
thuyhutfet88
Đệ tử 2 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 34
:
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!
thuyhutfet88 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-09-2009, 11:11 PM   #3
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
Trích:
Nguyên văn bởi mrbean007 View Post
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
__________________
A&A
lequocbao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-09-2009, 11:41 PM   #4
mrbean007
Đệ tử 1 túi
 
Tham gia ngày: Sep 2008
Bài gửi: 19
:
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 ý
mrbean007 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-09-2009, 11:07 PM   #5
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
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ứ ?
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-09-2009, 01:07 AM   #6
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
Trích:
Nguyên văn bởi Mr.Bi View Post
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!!!
__________________
A&A
lequocbao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2011, 02:07 AM   #7
alycuong
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 16
:
Trích:
Nguyên văn bởi lequocbao View Post
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??
alycuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2011, 12:11 PM   #8
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Trích:
Nguyên văn bởi alycuong View Post
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! ^^
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-10-2011, 05:44 PM   #9
vuliemtd
Nhập môn đệ tử
 
Tham gia ngày: Mar 2010
Bài gửi: 3
:
Trích:
Nguyên văn bởi Mr.Bi View Post
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ứ ?
em viết một đoạn code như sau:

lần đầu tiên em ghi dữ liệu 200 vào địa chỉ 0x01 của EEPROM , sau đó hiên thị lên terminal kết quả ra là 200, đúng như giá trị mình ghi



#include <16F877a.h>
#include <def_877a.h>
#device *=16// ADC=10
#use delay(clock = 20000000)
#fuses HS,NOWDT,PUT,NOPROTECT,NOLVP

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)) //Khai bao su dung rs232, baudbit = 9600, truyen la cong RC6, nhan la cong RC7

int8 i;

void main(){



while(true)

{


write_eeprom(0x01,200);
delay_ms(100);
i=read_eeprom(0x01);
delay_ms(200);
printf("bo nho : %u \r",i);
delay_ms(1000);
}
}

Sau đó em comment đoạn code // write_eeprom(0x01,200); rồi hiển thị dữ liệu ở địa chỉ 0x01 của EEPROM để kiểm tra kết quả đã được
lưu vào địa chỉ 0x01 của EEPROM chưa thì kết quả hiện ra là 255 , không phải là giá trị 200 đã ghi như trước đó .cho em hỏi chương trình em như
vậy có chỗ nào thiếu xót không, nhờ anh giúp đỡ với


#include <16F877a.h>
#include <def_877a.h>
#device *=16// ADC=10
#use delay(clock = 20000000)
#fuses HS,NOWDT,PUT,NOPROTECT,NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)) //Khai bao su dung rs232, baudbit = 9600, truyen la cong RC6, nhan la cong RC7
int8 i;
void main()
{

while(true)

{

// write_eeprom(0x01,200);
delay_ms(100);
i=read_eeprom(0x01);
delay_ms(200);
printf("gia tri : %u \r",i);
delay_ms(1000);
}
}
vuliemtd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-10-2011, 10:53 AM   #10
vuliemtd
Nhập môn đệ tử
 
Tham gia ngày: Mar 2010
Bài gửi: 3
:
nhờ mấy bác giúp đỡ em với, vấn đề này em làm mấy hôm rồi vẫn chưa ra, đã thử ở mấy con PIC 16f877a khác kết quả vẫn không có như mong muốn, nhờ các bác giúp với
vuliemtd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-01-2010, 10:39 PM   #11
luongthan
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 8
:
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 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-01-2010, 10:42 PM   #12
luongthan
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 8
:
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
luongthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-01-2010, 04:30 PM   #13
slowlove
Đệ tử 1 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 15
:
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???
slowlove vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2010, 07:12 AM   #14
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi slowlove View Post
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ị
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2010, 03:54 AM   #15
slowlove
Đệ tử 1 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 15
:
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??
slowlove vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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


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


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