Thảo luận Tất cả vấn đề về ic đồng hồ DS1307

NgoHungCuong

http://ngohungcuong.com
#51
em cũng đang làm dho dùng ds1307 giao tiếp vs avr hiển thị lên lcd nhưng chạy mô phỏng trên proteus dc vài phút thì lại hiễn thị sai. không biết tại sao nữa, mấy anh ai biết giúp em với. em cám ơn ạ
tốt nhất là làm mạch thật bạn nhé. Mô phỏng với mình không có ý nghĩa.
 

Boyngheo

Học sinh phổ thông
#52
Untitled.png
em mới tập làm đồng hồ 60 led viền, khi chạy mô phỏng con ds1307 hiện lỗi ntn thì làm cách nào để sửa lỗi thế ?
 
#56
Các vấn đề của nó thì kể sao cho hết, kinh nghiệm là nên mua mấy module sẵn có pin, ds1307 + room. Mà dùng, như vậy sẽ giảm đáng kể các lỗi do cứng gây ra, vd: thiếu mass, không phủ đồng,...
 

nvl_198

Học sinh trung cấp
#57
Mình đã làm và test thử trên Test board chạy cũng được rồi, tuy nhiên có một vấn đề như sau:
Nếu đọc thời gian không sử dụng ngắt thì led hiện thị đều và đẹp, nhưng trong 1 giây sẽ đọc > 1 lần. (đọc nhiều gây sai số nhiều => không thích)
Nếu dùng xung 1Hz ở chân số 7 của DS1307 để tạo ngắt ngoài cho VXL (dùng ngắt sườn âm, mỗi lần có ngắt là cho đọc time từ DS1307) thì cứ mỗi lần có ngắt xảy ra thì đèn led lại chớp (chớp cũng nhẹ thôi, nhưng nhìn là khó chịu rồi).
Anh em nào có cách khắc phục vấn đề trên không giúp mình với, mình muốn sử dụng ngắt để đọc thời gian, làm sao cho led khỏi chớp khi có ngắt xảy ra???
 

huunho

Thạc sỹ
#58
Mình đã làm và test thử trên Test board chạy cũng được rồi, tuy nhiên có một vấn đề như sau:
Nếu đọc thời gian không sử dụng ngắt thì led hiện thị đều và đẹp, nhưng trong 1 giây sẽ đọc > 1 lần. (đọc nhiều gây sai số nhiều => không thích)
Nếu dùng xung 1Hz ở chân số 7 của DS1307 để tạo ngắt ngoài cho VXL (dùng ngắt sườn âm, mỗi lần có ngắt là cho đọc time từ DS1307) thì cứ mỗi lần có ngắt xảy ra thì đèn led lại chớp (chớp cũng nhẹ thôi, nhưng nhìn là khó chịu rồi).
Anh em nào có cách khắc phục vấn đề trên không giúp mình với, mình muốn sử dụng ngắt để đọc thời gian, làm sao cho led khỏi chớp khi có ngắt xảy ra???
Cái này mình làm rồi , bạn chỉ động não chút là khắc phục được ngay:

khai báo biến toàn cục doc_time =0;

trong ngắt cho chân SOUT bạn chỉ dùng 1 lệnh duy nhất cho tiết kiệm thời gian: doc_time = 1;
sau đó ở chương trình chính mới đọc time :
if( doc_time == 1)
{
đên đây thì câp nhật thời gian và không quên gán:
doc_time =0;
}
 

nvl_198

Học sinh trung cấp
#59
Cả nhà cho mình hỏi có ai đã dùng con DS1305 để làm đồng hồ chưa vậy?
Làm cái này có giống DS1307 không các bạn? nó có điểm nào mạnh hơn con DS1307 không ạ?
Ai biết thì chia sẻ nhé.
Cảm ơn mọi người!
 

nvl_198

Học sinh trung cấp
#60
Cái này mình làm rồi , bạn chỉ động não chút là khắc phục được ngay:

khai báo biến toàn cục doc_time =0;

trong ngắt cho chân SOUT bạn chỉ dùng 1 lệnh duy nhất cho tiết kiệm thời gian: doc_time = 1;
sau đó ở chương trình chính mới đọc time :
if( doc_time == 1)
{
đên đây thì câp nhật thời gian và không quên gán:
doc_time =0;
}
Cảm ơn bạn đã cho câu trả lời.
Tuy nhiên mình thấy câu lệnh của bạn còn dài hơn của mình nữa!
Code của mình: hiện thị và hiện thị, chỉ hiện thị.
Nếu có ngắt xảy ra => đọc time 1 lần, tiếp tục quay lại hiện thị.

Code của bạn: Hiện thị -> so sánh biến đọc, bằng 0 thì hiện thị, bằng 1 thì đọc time, đọc xong lại xoá biến đọc về 0, sau đó lại hiện thị. Nếu có ngắt xảy ra lại tăng biến đọc, sau đó lại hiện thị, rồi so sánh biến đọc. => dài hơn của mình.

Dù sao mình cũng về thử theo cách của bạn xem có chuyển biến dc tí nào không. hiih, cảm ơn bạn!!!
 

Quảng cáo Google