View Single Post
Old 29-01-2007, 02:12 PM   #10
huychuongn
Nhập môn đệ tử
 
Tham gia ngày: Jan 2007
Bài gửi: 1
:
Trích:
Nguyên văn bởi hatuan296 View Post
Mình có làm 1 đồng hồ số dùng Pic 18f458 , kết nối DS1307 qua i2c . hiển thị trên lcd . mình đã làm cho chạy , nhưng lại hiển thị không đúng kết quả . anh em nào đã từng làm cái này rồi thì giúp mình nha . Lỗi cụ thể như sau ;

- mình nhập giá trị ban đầu : $00,$00,$00,$07,$1B,$01,$07,$90
' Sec Min Hr Day D M Y Control

giây(sec) : 00
phút(min) : 00
giờ (hr) : 00
thứ (Day) : 7.
ngày (D) : 27
tháng(M) : 1
năm(y):7

lcd hiển thị như sau :

thu 7 27-1-7
0:0:0
h m s

mình nhập vào DS1307 thì ok . đọc ra thì cũng ok luôn . nhưng khi bắt đầu đếm . thì con số s chỉ đếm đến 9 thôi , rồi lại nhảy thành số 16 . ngay cả con m và con h cũng vậy . Khi mình nhẩm tính thì đúng là con s nhảy 60 lần thì con m nhảy 1 lần . nhưng hiển thị thì không đúng . có khi con s lên đến hàng 80 luôn .

Mình nghĩ chắc từ số 9 con DS1307 đã bỏ qua A , B , C , D , E , F để đếm đến 16 . Nhưng tại sao lại như vậy ? làm sao đế cho hiển thị đúng ? Và khi nạp lần đầu cho con Ds , thì mình nên để giá trị là gì ? thập phân hay nhị phân hay hệ 16 ? . khi mình đọc ra là số gì ?
mong bạn nào rành thì giúp mình nha . mình vô cùng cảm ơn .

À, còn 1 điều nữa . mình có cần phải đọc ghi theo thứ tự không ? và nếu có thì mình phải đọc cái gì trước , cái gì sau ?
ghi cái gì trước , cái gì sau ?
Bạn xem lại đi vì con DS 1307 nhận và phát mã BCD chứ không phải mã DEC bạn phải đổi lại cho đúng để hiển thị.,.
huychuongn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn