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 Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -

Comment