View Single Post
Old 04-05-2011, 10:45 AM   #1
phanhoangag
Đệ tử 1 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 17
:
Red face help me!!!!! DS1307 + 16f877a

void INIT_MAIN() {
// Khoi tao truyen thong I2C
I2C_Init(100000); // Kích hoạt môddun truyền thông i2c với tốc độ baud là 100kHz
// Khoi tao DS1307
I2C_Start(); // điều kiện start
I2C_Wr(0xD0); // truyền địa chỉ của ds1307 và chọn ghi dữ liệu lên ds1307
I2C_Wr(0x00); // Truyền địa chỉ ô nhớ đầu tiên của ds1307
I2C_Wr(0x13); // Khoi tao gia tri ban dau cho thanh ghi giây
I2C_Wr(0x03); // Khoi tao gia tri ban dau cho thanh ghi phút
I2C_Wr(0x02); // Khoi tao gia tri ban dau cho thanh ghi giờ
I2C_Wr(0x03); // Khoi tao gia tri ban dau cho thanh ghi thứ
I2C_Wr(0x05); // Khoi tao gia tri ban dau cho thanh ghi ngày
I2C_Wr(0x03); // Khoi tao gia tri ban dau cho thanh ghi tháng
I2C_Wr(0x03); // Khoi tao gia tri ban dau cho thanh ghi năm
I2C_Wr(0x90); // đặt cấu hình cho thanh ghi điều khiển, sử dụng xung 1Hz.
I2C_Stop(); // Điều kiện stop
}
chuong trinh chinh
void MAIN() {
INIT_MAIN();
}
Trong hàm INIT_MAIN() có đoạn khởi tạo cho ds1307 như trên. Như thế cứ mỗi lần con PIC được cấp điện lại thi đồng hồ lại bị Reset theo giá trị mình khởi tạo ban đầu cho nó. Vi Thế mỗi lần như vậy phải chỉnh lại giờ cho đồng hồ .
co ai giup minh khong?????????
phanhoangag vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn