PDA

View Full Version : thắc mắc về ds1307


inoxsocc
13-07-2012, 02:00 PM
các bạn cho mình hỏi về nút nhấn khi mình lập trình chỉnh giờ cho ds1307,ví dụ khi mình chọn chế độ mode 1 là chỉnh giờ cho ds thì khi mình tăng giờ lên 1 thì lúc nút nhấn duoc nhấn xuống mức 0 thì giờ tăng lên,còn lúc nút nhấn nảy lên về vị trí cũ thì giờ lại quay về giá trị cũ,cách nào để khắc phục hiện tượng trên xin các bạn giúp với.^^

DINH THANH SANG
13-07-2012, 02:03 PM
các bạn cho mình hỏi về nút nhấn khi mình lập trình chỉnh giờ cho ds1307,ví dụ khi mình chọn chế độ mode 1 là chỉnh giờ cho ds thì khi mình tăng giờ lên 1 thì lúc nút nhấn duoc nhấn xuống mức 0 thì giờ tăng lên,còn lúc nút nhấn nảy lên về vị trí cũ thì giờ lại quay về giá trị cũ,cách nào để khắc phục hiện tượng trên xin các bạn giúp với.^^

Bạn chỉnh giờ xong rồi có ghi vaò 1307 không

hatuan296
13-07-2012, 02:25 PM
các bạn cho mình hỏi về nút nhấn khi mình lập trình chỉnh giờ cho ds1307,ví dụ khi mình chọn chế độ mode 1 là chỉnh giờ cho ds thì khi mình tăng giờ lên 1 thì lúc nút nhấn duoc nhấn xuống mức 0 thì giờ tăng lên,còn lúc nút nhấn nảy lên về vị trí cũ thì giờ lại quay về giá trị cũ,cách nào để khắc phục hiện tượng trên xin các bạn giúp với.^^

Tình trạng của bạn giống như đã bấm nút để thay đổi số , nhưng quay lại vòng lặp thì bạn lại có chương trình con đọc DS nên biến lại bị gán giá trị được đọc ra từ chip DS , quay về giá trị ban đầu lúc chưa thay đổi .

Khi tăng hoặc giảm thì không tiếp tục lấy giá trị trong DS hiển thị lên màn hình nữa , mà bạn chỉ hiển thị biến để thay đổi giá trị thôi . Mình hay gọi những biến này là biến SETUP ví dụ như HOUR_SETUP , MINUTE_SETUP ...., sau khi thay đổi xong thì mới bấm nút để ghi giá trị của biến này vào chip DS . Và sau đó thì mới tiếp tục đọc DS như bình thường .

inoxsocc
14-07-2012, 06:31 PM
như vậy là sao khi mình điều chỉnh giờ cho ds thi mình phải ghj ngay lại giá trị vừa chỉnh đó vào cho con ds xong rồi lại dùng lệnh lấy giá trị ra từ con ds nữa rồi mới cho hiển thị lên phải k bạn ^^

hatuan296
14-07-2012, 06:38 PM
như vậy là sao khi mình điều chỉnh giờ cho ds thi mình phải ghj ngay lại giá trị vừa chỉnh đó vào cho con ds xong rồi lại dùng lệnh lấy giá trị ra từ con ds nữa rồi mới cho hiển thị lên phải k bạn ^^

Nếu bạn muốn tiết kiệm thì bạn chỉ cần tạo 1 biến thôi . Trong chương trình con thay đổi giờ thì ta chỉ thay đổi biến này rồi lưu vào phần giờ của DS , rồi sau đó mới quay về chương trình chính . Tương tự ta cũng dùng biến đó cho phút trong chương trình con setup phút hay giây trong chương trình con setup giây .....

tungtot_vl
19-07-2012, 11:51 AM
góp ý thêm cho bạn vài câu.
ví dụ các biến hiển thi giờ phút giây là "H, P, S " dùng để hiện thị giờ ở trạng thái bình thường.
bạn tạo thêm biến tạm để khi cài đặt lại giờ là "SH, SP, SS" dùng để hiển thị giờ khi ta nhấn nút tăng giảm để thay đổi giờ
khi bạn nhấn nút cài lại giờ thì cần ngừng chương trình đọc từ DS và gán SH = H, SP = P, SS = S sau đó hiển thị giá trị các biến SH, SP, SS ra màn hình. khi bạn nhấn nút tăng giảm giờ phút giây thì cần tăng giảm các biến SH, SP, SS.
sau khi cài đặt xong thì ghi các giá trị trên vào DS và dọc lại DS bình thường
chúc vui nhé!