híc híc giúp mình với có mỗi cái này mà test mãi không chạy
Thông báo
Collapse
No announcement yet.
Ds1307
Collapse
X
-
Bạn bỏ cái này đi nhá. Vì tất tật đều được Codevision khởi tạo cho một cách tự động khi bạn khai báo kết nối. Cũng có thể do bạn khởi tạo một chân nào đó là cổng vào trong khi nó phải được khởi tạo là cổng ra hoặc ngược lại. Tóm lại theo tôi, bạn không cần những thứ này. Cứ để các giá trị đó là 0x00 là được.
Quên, chỉ có 2 chân nối với SDA và SCL là cần phải thiết lập là cổng vào có pull up nếu bạn không nối trở treo ở ngoài cho 2 chân đó.PORTA=0xFF;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xF7;
PORTC=0xF0;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x04;
Comment
-
Tôi vừa xem lại mạch của bạn xong. Chân VEE của bạn nên để con biến trở ở đó để có thể điều chỉnh độ tương phản. Nếu để con 10k ở đó sợ không hiển thị được.
các giá trị khởi tạo cổng của bạn nên để là:
PORTX=0x00;
DDRX=0x00;
Tôi sửa lại như thế, bạn thử xem nhé. Mà tốt nhất là nên làm mạch thật bạn ạ. Tôi chưa bao giờ dùng Proteus mô phỏng cả, cứ làm mạch rồi test luôn.#include <mega16.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
// Declare your global variables here
unsigned char h,m,s,d,t,n;
unsigned char h1,h2,m1,m2,s1,s2,d1,d2,t1,t2,n1,n2;
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x007;
PORTC=0x00;
DDRC=0x000;
PORTD=0x00;
DDRD=0x00;
i2c_init();
rtc_init(3,1,0);
lcd_init(16);
rtc_set_time(10,30,0);
rtc_set_date(1,5,8);
lcd_clear();
while (1)
{
// Hien thi gio, phut,giay o hang 1
rtc_get_time(&h,&m,&s);
lcd_gotoxy(0,0);
lcd_putsf("time:");
//set hour
h1=h/10;
h2=h%10;
lcd_putchar(h2+0x30);
lcd_putchar(h1+0x30);
lcd_putsf(":");
//set min
m1=m/10;
m2=m%10;
lcd_putchar(m2+0x30);
lcd_putchar(m1+0x30);
lcd_putsf(":");
//set giay
s1=s/10;
s2=s%10;
lcd_putchar(s2+0x30);
lcd_putchar(s1+0x30);
rtc_get_date(&d,&t,&n);
lcd_gotoxy(0,1);
lcd_putsf("date:");
// set ngay
d1=d/10;
d2=d%10;
lcd_putchar(d2+0x30);
lcd_putchar(d1+0x30);
lcd_putsf("/");
//set thang
t1=t/10;
t2=t%10;
lcd_putchar(t2+0x30);
lcd_putchar(t1+0x30);
lcd_putsf("/");
// set nam
n1=n/10;
n2=n%10;
lcd_putchar(n2+0x30);
lcd_putchar(n1+0x30);
};
}
Hy vọng bài của tôi giúp được bạn. Chúc vui.
Comment
-
Mình cũng xem mạch của bạn rùi,chân Vee mắc với biến trở để điều chỉnh độ mờ, hay rõ các ký tự của LCD.nếu bạn muốn nhìn thấy các ký tự rõ nhất thì nối thẳng nó với GND. Bạn đã mắc sai so với mạch nguyên lý mà mình gửi với lại hình như PINB5 của bạn cũng chưa được nối với chân tương ứng của LCD thì làm sao mà chạy được .Với mạch và code mà tớ gửi ở trên,thấy bạn làm ko chạy tớ tò mò học Protus luôn ( cài mãi mới được) , sau khi đi dây xong rồi nạp code cho nó thì nó chạy ầm ầm đây hây. bạn xem lại xem. Đây là hình ảnh minh họa , chúc bạn thành công :
Comment
-
hichic, các bác ui, giúp em với,
Cái CodeVision của em không biết bị lỗi gì mà khi Make thì liên tục bảo ERROR OCCURING DURING ASEMBLY. Cuối cùng là em chẳng thể nào nạp được mạch để mà thử. Mặc dù em đã cố gắng Configure project giống i chang các bác vậy.
Cảm ơn các bác nhiều!
Comment
-
Giống y chang là giống thế nào chứ??? Bạn phải post code của bạn lên và chụp cái màn hình khi nó báo lỗi lên thì mọi người mới biết nó là lỗi gì thì mới giúp được chứ.Cái CodeVision của em không biết bị lỗi gì mà khi Make thì liên tục bảo ERROR OCCURING DURING ASEMBLY. Cuối cùng là em chẳng thể nào nạp được mạch để mà thử. Mặc dù em đã cố gắng Configure project giống i chang các bác vậy.
Comment
-
Nhìn cái đồng hồ của TQ làm mà phục,Các Bác làm Đồng hồ DS 1307 hoàn thiện chưa,mình cũng đã làm chạy được rồi.Nhưng làm sao để chỉnh được giờ khi mà hết pin cấp cho Ds1307 nhỉ.Mình nghỉ là giá trị init của đồng hồ được ghi vào ram của ds rồi liệu có thể chỉnh được không.Chỉnh như thế nào,có bác nào làm được cái đồng hồ DS hoàn thiện rồi thì giúp mình với!
Comment
-
Hic!!! cái đó đơn giản mà, bạn làm cho nó thêm mấy phím (Funtiion, tăng, giảm,Ok) để cài lại thời gian khi nó chay sai là ok.Khi đó cái đồng hồ của bạn sẽ dùng đến khi nó tự hỏng thì thôi. Có điều bạn phải lập trình quét phím. Chúc thành công.Hihihi
Comment
-
"Không chỉnh được" thì còn gọi gì là đồng hồ nữa. DS1307 nó dùng các thanh gì có địa chỉ từ 0x00 đến 0x07 để lưu giá trị time đó. Bác có thể truy cập vào đó mà thay đổi giờ cho nó. Bác tham khảo cái funtion này nè:Nguyên văn bởi btbk244 Xem bài viếtNhìn cái đồng hồ của TQ làm mà phục,Các Bác làm Đồng hồ DS 1307 hoàn thiện chưa,mình cũng đã làm chạy được rồi.Nhưng làm sao để chỉnh được giờ khi mà hết pin cấp cho Ds1307 nhỉ.Mình nghỉ là giá trị init của đồng hồ được ghi vào ram của ds rồi liệu có thể chỉnh được không.Chỉnh như thế nào,có bác nào làm được cái đồng hồ DS hoàn thiện rồi thì giúp mình với!
void i2c_write(unsigned char add, unsigned char dat)
{
i2c_start();
i2c_write(0xd0);
i2c_write(add);
i2c_write(dat);
i2c_stop();
}Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
Nếu bạn làm mạch chuẩn (tương đối) thì con DS1307 mỗi ngày vẫn chạy sai khoảng từ 1->3s cho nên nếu dùng khoảng nửa năm nó cũng sai mất mấy phút, chẳng nhẽ lại bật máy tính rồi cắm giắc nạp để nạp lại chương trình cho nó. Tốt nhất các bạn làm cho nó mấy cái phím điều chỉnh thì các bạn chẳng phải lo gì nó chạy sai, cứ nơi nào có điện là bạn có thể dùng được nó.Ngày trước còn đi học tớ làm nó rồi, bây giờ đi làm rồi lên ko có thời gian để giúp các bạn. Tớ chỉ có thể đưa ra hướng giải quyết cho các bạn thôi.
Comment
-
Coi phim Mỹ thấy tụi nó để đồng hồ này ngay phòng ngủ, kê sát đầu giường, chỉ liếc mắt là biết giờ và kèm chức năng báo thức nữa. Dân ta chưa quen với sp này. Nếu ra được sp này đẹp, ổn định bảo đảm hút hàng hơn nhiều so với ba cái đồng hồ kèm nhiệt kế!Đẹp từng kilomét
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
31-07-2026, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
30-07-2026, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
30-07-2026, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -

Comment