![]() |
Hỏi về DS1307
Em đang làm cái bài tập lớn trongddos cần 1 phần hiển thị thời gian, em dùng CCS, có bác nào biết cách khởi tao giá trị thời gian ban đầu cho DS1307 không ạ, cho em kinh nghiệm với, em định gán nó vào biến rồi i2c_write vào mà không đc, cho ra led đồng hồ không chạy.Giúp em với nhé các bác
|
cho em đoạn code lúc ví dụ mnhf thiết lập cho đồng hồ bây giwof là 16h ngày 13-05-08 ấy nha các bác.
Chờ hồi âm... |
chán quá không ai giúp em được ah, chắc tịa ulongf này nhiều chú ý quá ::(
|
Thuật toán ghi DS1307: start i2c
ghi 0xD0 ghi địa chỉ start ghi 0xD0 ghi giây, phút, giờ, ngày... stop i2c Đấy là VDK của bạn hỗ trợ giao tiếp I2C, nếu không thì bạn phải xây dựng chương trình riêng. Chúc thành công |
có sẵn thư viện cho CCS C cho bạn đây.
Have fun |
bạn ơi nhầm link rồi:(
|
Trích:
|
Bạn đưa code lên tôi mới biết được bạn sai ở chỗ nào chứ?
|
|
Trích:
- Start_i2c(); - ghi 0xD0 // Write - ACK rùi mới ghi đia chỉ - tiếp ACK , rùi ghi tiếp giá trị - stop_i2c(); trình tự của u : sau khi ghi điạ chỉ xong , start lại . Vậy start chỗ này có ý nghĩa gì ?Tui ko bit các hàm start_i2c(0, stop_i2c() của CCS nằm ở đâu cả , nên ko hỉu trong 2 hàm đó ng ta viết cái gì ? |
có ai bit 2 hàm start_i2c() stop_i2c() viết gì ko ? nó ko chỉ đơn thuần là khởi động & kết thúc gửi nhận data phải ko ? để bit chi tiết 2 hàm này , vào đâu để xem chúng ?
|
làm mãi mà vẫn khong thiết lập được chán ghê, có bác nào giúp cho tiểu đệ 1 đoạn code để khởi taịo cho ds1307 giá trị đầu và nó chạy luôn mà không cần nút chỉnh bên ngoài không nhỉ? Em dung pic 16F877a và CCS
|
Trích:
Code:
#include <16F877A.h> |
Trong void init_time() bạn viết là:
Code:
I2C_write(0x15); Nếu muốn ghi khởi tạo là ngày 15 thì phải viết là Code:
I2C_write(15); Code:
I2C_write(0x0F); |
Trích:
Thân, |
Mình hiểu rồi,
khi: i2c_write(0x15): tức là BIN: 0x15 -> BCD: 15 (BIN -> BCD) còn khi: data = i2c_read(): nếu data nhận được giá trị là 15 thì BCD: 15 -> BIN: 0x15 (BCD -> BIN), tức là lúc này data = 0x15, phải vậy không anh namqn ?... |
Trích:
Thân, |
|
xin các bác giúp đỡ
1 Attachment(s)
chào các bác.em là người mới học pic.em đang làm đồ án về điều khiển có dùng con DS1307 nhưng khi làm thì có một lỗi phát sinh,mong các bác xem giúp. Em bị lỗi như thế này: em cho đèn led D0 sáng( các đèn led D1--D7 tắt ) bằng lệnh output_d(1). nhưng khi chạy mô phỏng thì các đèn ở chân portd lại sáng lung tung. nếu em không dùng lệnh DS1307_init() thì các đèn lại sáng đúng như mong muốn( chỉ có D0 sáng ). em không hiểu tại sao nữa??? mong các bác nghiên cứu giúp. lệnh DS1307_init() là lệnh khởi tạo DS1307
em gừi theo file drive DS1307 và một file em thử làm để kiểm tra lỗi( chỉ đơn giản là cho đèn D0 sáng mà thôi,nhưng có thêm lệnh DS1307_init() trong đó) |
Múi giờ GMT. Hiện tại là 11:45 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam