Nguyên văn bởi Mr.Bi
View Post
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);
}
}
Comment