Chào các bác đã dùng con này. Em đang dùng DS1307 giao tiếp với mega88 để băm thời gian lên LED 7, không hiểu tại sao sau khi reset hoặc mất điện thì Giây nó lại nhảy về 0, giờ, phút... vẫn bình thương. Các khai báo biến cho h,m,s giống hệt nhau? Nhờ các bác giúp em. Thanks!
Thông báo
Collapse
No announcement yet.
Ds1307
Collapse
X
-
Ok thôi, nhưng bác chờ em vài hôm nữa nhé, nhà em không có Net mà. Kể ra biết điện tử cũng hay thật, em làm được cái đồng hồ để bàn, hết gần 3 lit cả vỏ, đắt hơn nhiều so với hàng "Tàu liên doanh Trung Quốc" nhưng dù sao cũng là hàng Made in VietNam các bác nhẩy!Nguyên văn bởi Arce Xem bài viếtBác thangktvta có thể share mạch phần cứng + code cho anh em tham khảo đc ko?Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
Nếu dùng CodeVision thì bạn xem lại vì mỗi lần restart con mega88 nó đều chạy đoạn chương trình init lại con ds1307, giây trở về 0 là đúng rồi !. Nếu mình đoán không lầm thì bạn chỉ cần thêm điều kiện hoặc chỉnh sửa một chút function init là OK ngay !Nguyên văn bởi thangktvta Xem bài viếtChào các bác đã dùng con này. Em đang dùng DS1307 giao tiếp với mega88 để băm thời gian lên LED 7, không hiểu tại sao sau khi reset hoặc mất điện thì Giây nó lại nhảy về 0, giờ, phút... vẫn bình thương. Các khai báo biến cho h,m,s giống hệt nhau? Nhờ các bác giúp em. Thanks!
Chúc thành công !
NVT2Tín đồ AVR giáo.
Comment
-
Cách này đơn giản hơn bác này: Init một lần thôi, chạy xong xuôi rồi nạp lại phát nữa nhưng bỏ phần Init đi, thế là ok! Nhưng mà dạo này Hà Nội trời lạnh, hình như nó chạy nhanh hơn. bác NVT2 hình như trong Sài Gòn, trời nóng hơn có thấy nó chạy "chậm" hơn không bác? Hứt hứt??!!Nguyên văn bởi nvt2 Xem bài viếtNếu dùng CodeVision thì bạn xem lại vì mỗi lần restart con mega88 nó đều chạy đoạn chương trình init lại con ds1307, giây trở về 0 là đúng rồi !. Nếu mình đoán không lầm thì bạn chỉ cần thêm điều kiện hoặc chỉnh sửa một chút function init là OK ngay !
Chúc thành công !
NVT2Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
Mình cũng đang để cho con ds1307 chạy, được gần tuần rùi. Thấy nó chậm đi mấy phút. Hok bik do thạch anh hay nhiệt độ nữa. Thạch anh mình mua ngoài Nhật Tảo, hình trụ, nhỏ như cái nhang, hàng Trung Quốc, hok có số hiệu gì hết. Bác nào có kinh nghiệm làm cho con ds1307 chạy ổn định thì góp ý với. Thanks.
Comment
-
Chạy 1 tuần mà sai đến mấy phút thì không ổn rồi bác ạ, của em chạy cả tháng mới lệch gần phút ( Gần đây thôi). Bác xem lại linh kiện cơ bản xem thế nào: DS1307, thạch anh, mạch.... rồi cách đi dây trên mạch in nữa. Thạch anh như bác tả thì đúng rồi, không biết là có phải đồ "dởm" k???!!! Trên mạch in bác nên để thạch anh càng gần IC càng tốt cho đỡ bị nhiễu. Bác cũng nên xem lại chương trình, như em nói mấy bài trên đấy, không để ý thì khi reset second sẽ bị nhảy về "0" => Nhiều lần mất điện đồng hồ sẽ bị chậm.!! Còn nhiều vấn đề nữa, bác cố gắng tìm nguyên nhân nhé!Nguyên văn bởi gachoi Xem bài viếtMình cũng đang để cho con ds1307 chạy, được gần tuần rùi. Thấy nó chậm đi mấy phút. Hok bik do thạch anh hay nhiệt độ nữa. Thạch anh mình mua ngoài Nhật Tảo, hình trụ, nhỏ như cái nhang, hàng Trung Quốc, hok có số hiệu gì hết. Bác nào có kinh nghiệm làm cho con ds1307 chạy ổn định thì góp ý với. Thanks.Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
ôi hay quá, các bác cho em xin cái code để em ngâm cứu làm một cái đồng hồ cho riêng mình tý nhỉ,có nhiều tài liệu các bác cứ táng vào hòm thư cho em thi càng tốt (email : vdgiap_nh@yahoo.com) để em đọc cho nó to đầu ra thêm tý nữa hihii.Hiện tại em đang sở hữu mấy con ATMega8 để không ở đó thấy lãng phí quá. Cám ơn các bác nhiều nha. Hy vọng mong muốn của em được các bác giúp đỡ.
Comment
-
cac a ơi,e viet 1 đoạn ctrinh đơn giản để test con 1307, tuy nhien nó ko chạy dc. mong mọi ng chỉ giúp
#asm
.equ __i2c_port=0x18
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <mega16.h>
#include <ds1307.h>
#include <delay.h>
void main(void) {
unsigned char h,m,s;
DDRA=0xff;
i2c_init();
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_write(0x7f);
i2c_stop();
rtc_init(0,0,0);
rtc_set_time(0,0,0);
while (1)
{
rtc_get_time(&h,&m,&s);
PORTA=s;
delay_ms(200);
};
}
Comment
-
Tôi xem qua ct chưa thấy có gì sai, chỉ nghi là phần cứng của bác có vấn đề thôi. Bác lưu ý các R treo cho đường SDA và SCL nhé! Nếu bác post cả sch thì tốt hơn!Nguyên văn bởi phong25_2 Xem bài viếtbit CH e có xóa nó bằng cách ghi giá trị 0x7f hay 0x00 thì mạch vẫn im re luôn.Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
hehe, cai mach no chay tot roi, 2 điện trở kéo lên e cũng có mắc, nhưng nó sao sao ấy, giog như bị nhiễu, e gắn thêm 2 con 4k7 nữa là chạy ngon luôn, đây là ctrinh rất cơ bản, xin post lên cho các bạn muốn làm về 1307 tham khảo:
#asm
.equ __lcd_port=0x1B ;PORTA
.equ __i2c_port=0x18
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <mega16.h>
#include <ds1307.h>
#include <delay.h>
#include<lcd.h>
void main(void) {
unsigned char h,m,s,x,y;
i2c_init();
lcd_init(16);
rtc_init(0,0,0);
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_write(0);
i2c_stop();
rtc_set_time(0,0,0);
lcd_gotoxy(0,0);
lcd_putsf("REAL TIME CLOCK!");
while (1)
{
rtc_get_time(&h,&m,&s);
lcd_gotoxy(4,1);
x=h/10;
y=h%10;
lcd_putchar(x+0x30);
lcd_putchar(y+0x30);
lcd_putsf(":");
x=m/10;
y=m%10;
lcd_putchar(x+0x30);
lcd_putchar(y+0x30);
lcd_putsf(":");
x=s/10;
y=s%10;
lcd_putchar(x+0x30);
lcd_putchar(y+0x30);
delay_ms(200);
};
}
Comment
-
sao không tận dụng cái ram không mất nội dung của nó nhỉ? Lần đầu tiên chạy chương trình bạn khởi tạo cho nó và ghi một byte trong vùng nhớ này lên 0x01 chẳng hạn, từ sau nếu kiểm tra byte này mà thấy nó bằng 0x01 thì kô khởi tạo nữa, ngược lại thì đấy là lần đầu tiên bạn cho mạch chạy. ok không nhỉ?
Comment
-
bạn nói y như mình nghĩ luôn
,cai này mình viết chỉ để test con 1307,còn cái ghi vào eeprom thì để dùng cho cái reset vdk mà ko ảnh hưởng tới đồng hồ. à, cho mình hỏi cái này, sao mà con này dễ bị nhiễu wa, có cách nào khắc phục cái nhiễu này ko, chỉ cần lỡ tay chạm vào Xtal hay điện trở là nó hiện kí tự sai liền.
Comment
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
Hôm qua, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
Hôm qua, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
Hôm qua, 11:20 -
-
bởi bqvietThực tế bạn nào không tải được tệp nén thiết kế thì căn cứ theo ảnh sơ đồ mạch có thể vẽ lại sơ đồ bằng chương trình EDA nào đó rồi làm mạch được mà. Càng thêm quen thuộc với sơ đồ. Sau đó tùy ý chuyển sang TinySwitch-III hoặc TinySwitch-4.
-
Channel: Điện tử công suất
02-02-2026, 21:13 -
-
bởi Nexus 6PCó ai có bản in của mạch in không, cho em xin file để đi in với ạ
-
Channel: Điện tử công suất
02-02-2026, 14:37 -
-
bởi Nexus 6PLink hư rồi ạ, xin lại link của bản thiết kế cũ ạ...
-
Channel: Điện tử công suất
02-02-2026, 10:48 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -

Comment