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 Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92GIỚI THIỆU CA KHÚC VỀ CHA MẸ:
Nặng Nghĩa Mẹ Cha
Sáng tác: Hoàng Đình Thường
Giọng hát: AI
Công cha cao tựa như Thái Sơn
Nghĩa mẹ sâu nước biếc xanh trong
Mong con khôn lớn đời hạnh phúc
Mẹ cha...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:22 -
-
bởi afrendlyCảm ơn bạn. Mình hỏi để thợ có thể tham khảo thôi chứ không đủ kiển thức để sửa, mà cũng không có đồ nghề, mua đồ nghề quá tiền máy. Gọi nhiều lần mà thợ hẹn mãi chưa có tới ấy bạn. Mình muốn sửa được chứ bỏ thì uống, nhưng sợ là được mỗi người thợ mà lại không sửa nổi....
-
Channel: Điện tử gia dụng
11-05-2026, 00:34 -
-
bởi mèomướpDạ nó bị tắc ẩm hoặc rò thiếu gas hoặc lốc yếu hoặc van tiết lưu có vấn đề hoặc tất cả những nguyên nhân trên ạ. Chú ko chuyên về mảng này thì bán đi, giành thời gian trồng rau sạch đem ra chợ bán lấy tiền mua tủ mới ạ. Còn...
-
Channel: Điện tử gia dụng
10-05-2026, 17:01 -
-
bởi afrendlyXin chào mọi người. Mình lại có vấn đề về đồ điện cần nhờ mọi người hỗ trợ giúp. Mình có tủ lạnh Sharp dùng cũng lâu rồi. Trước có bị kém lạnh, không đông đá thì có thợ họ mang về, sục đường ga gì đó hết 900k và đã dùng...
-
Channel: Điện tử gia dụng
10-05-2026, 16:53 -
-
bởi dinhthuong92Đấy, cái tôi thắc mắc là chỗ màu hồng ấy bạn, để áp vào cao chứ không bị sụt gần bằng áp pin thì rất cần cuộc cảm để làm điều đó. Tuy nhiên, trong công thức bác thớt dẫn không thấy mặt L, và một vài mạch MPPT tôi đã kiểm...
-
Channel: Nguồn!
09-05-2026, 10:01 -
-
bởi mèomướpDạ mạch sạc là 1 cục nguồn, nó sẽ điều chỉnh công suất đầu ra để có tổng trở bằng nội trở của pin ạ. Và cái cách nó chỉnh công suất đầu ra sẽ là dạng buck, boot. Đều cần đến cuộn cảm ạ. Tất nhiên chú thích thì có thể dùng dạng tuyến tính transistor để bù trừ nhưng mà nó đốt năng lượng vô ích ạ...
-
Channel: Nguồn!
08-05-2026, 16:26 -
-
bởi dinhthuong92Tng trở R của tải (gồm pin và mạch sạc) trong công thức đó rõ ràng khống có L xuất hiện. Nếu tính các dây dẫn thì rất nhỏ, bỏ qua. Vì nội trở pin là rất nhỏ, có thể nói luôn lớn hơn nội trở solar, nên mạch MPPT sẽ hầu như luôn tính...
-
Channel: Nguồn!
08-05-2026, 11:00 -
-
bởi dinhthuong92Chào bác. Đã là công thức phải tổng quát chứ, nó phải thể hiện cả quá trình, rối thì quá độ hay xác lập tính sau vì tùy điều kiện. Cũng như công thức tính diện tích chả hạn, phải là tích phân....
-
Channel: Nguồn!
08-05-2026, 10:49 -

Comment