Bác Thang học ktvta khóa bn đấy?trg GT a?ma bac bao sua lai code +mach ở đâu vậy?có thấy gì đâu.Em gửi code ở page trước rồi còn j.thôi, để em gửi lại vậy.file zip new folder kia gồm 1file vẽ mạch proteus,1file abc.hex de nap cho chip,1 file ảnh mạch em vẽ.em đã gửi code rồi.nhưng thôi, cứ gửi lại cho tiện.code này em làm giống bác vdgiap.nhưng tình hình lại ko được như mong đợi.các bác ktra lại cho em xem tn.Em nghĩ nát óc mà chả hiểu sai ở đâu
Ds1307
Collapse
X
-
Mình gửi kèm file ở trên rồi đấy, bạn xem lại nhé! Code mình viết rất đơn giản để cho bạn dễ hiểu.Nguyên văn bởi khanh248 Xem bài viếtBác Thang học ktvta khóa bn đấy?trg GT a?ma bac bao sua lai code +mach ở đâu vậy?có thấy gì đâu.Em gửi code ở page trước rồi còn j.thôi, để em gửi lại vậy.file zip new folder kia gồm 1file vẽ mạch proteus,1file abc.hex de nap cho chip,1 file ảnh mạch em vẽ.em đã gửi code rồi.nhưng thôi, cứ gửi lại cho tiện.code này em làm giống bác vdgiap.nhưng tình hình lại ko được như mong đợi.các bác ktra lại cho em xem tn.Em nghĩ nát óc mà chả hiểu sai ở đâuNỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
cám ơn bác thắng rất nhiều. em làm được rồi. em chạy thêm được cả ngày nữa. Nhưng có 1 điều khá là lạ. Khi em thử vẽ 1 cái mạch khác, hệt mạch của bác, nạp ctrình của bác vào Atmega thì nó lại chẳng hiện giờ.chỉ hiện 00:00:00.em chụp lại ảnh đây.Mà muốn chạy cả ngày giờ, cũng lại phải dùng mạch của bác mới đc. lạ thậtAttached Files
Comment
-
Bạn k gửi mạch thì mình chịu. Mình xem ảnh thì đoán là chỗ 2 con trở treo, hình như bạn nối VCC cho 2 con trở này sai (Có cái dấu chấm đó).Nguyên văn bởi khanh248 Xem bài viếtKhi em thử vẽ 1 cái mạch khác, hệt mạch của bác, nạp ctrình của bác vào Atmega thì nó lại chẳng hiện giờ.chỉ hiện 00:00:00.em chụp lại ảnh đây.Mà muốn chạy cả ngày giờ, cũng lại phải dùng mạch của bác mới đc. lạ thậtNỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
bác thang oi, cho em hoi lai 1 chut. cái code lcd_putchar(0x30+(t/10)%10) và lcd_putchar(0x30+t%10); và các lệnh tương tự như thế khi hiển thị ngày giờ ý nghĩa là j được ko? e chỉ hiểu sơ sơ là dùng để hiển thị lân lượt ngày, giờ thôi, chứ chưa hiểu tại sao lại là 0x30+(t/10)%10 . bác jải thích lại giùm em nhé
Comment
-
Một lệnh lcd_putchar() chỉ ghi được một ký tự (1 chữ số). Vì h,m hay s có 2 chữ số vì vậy ta phải dùng phép t%10 để lấy hàng đơn vị và (t/10)%10 để lấy hàng chục rồi ghi lần lượt lên LCD. LCD hiển thị giá trị theo mã ASCII, mã này lớn hơn mã DEC 30 đơn vị, vì vậy để hiển thị số 2 trong DEC chẳng hạn thì ta phải băm giá trị 0x30+2 ra LCD. Do đó ta có lệnh: lcd_putchar(0x30 + t%10)... Nếu t=12 chẳng hạn thì lcd_putchar(0x30 + t%10) sẽ cho kết quả trên LCD là 2. và lcd_putchar(0x30+ (t/10)%10) cho kết quả là 1.Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
cảm ơn bác.em mới học lập trình hợp ngữ.bác nói thế em hiểu rồi.Còn 1 cái nữa là lệnh rtc_init(3,1,0); là để kích hoạt con ds1307, nhưng tại sao lại là 3,1,0 ạ?Em đang đọc sak về lập trình C cho vi đk, nhưng dài quá,vốn english cũng còn quá tệ, chắc phải còn nhờ bác và mọi ng nhiều.
Còn 1 điều nữa em muốn hỏi,khi mình làm mạch mô phỏng trên proteus,tại sao ko cần nối nguồn mà AVR, ds1307,lcd vẫn chạy đc?phải chăng nó mặc định tự cấp nguồn cho chip? Mà nêu làm mạch thực tế, chắc chắn phải có crystal ạ?mà trong proteus liệu nó có tự tạo xung tại các cổng XTAL1 & 2 ko?
Comment
-
Cái này bác giở help của CV và thư việ DS1307 ra đọc là hiểu ngay thôi, nó viết ngắn gọn mà.cảm ơn bác.em mới học lập trình hợp ngữ.bác nói thế em hiểu rồi.Còn 1 cái nữa là lệnh rtc_init(3,1,0); là để kích hoạt con ds1307, nhưng tại sao lại là 3,1,0 ạ?
Đúng vậy, trên Proteus thì nó mặc định rồi, cắm nguồn cũng được mà không cũng được.Còn 1 điều nữa em muốn hỏi,khi mình làm mạch mô phỏng trên proteus,tại sao ko cần nối nguồn mà AVR, ds1307,lcd vẫn chạy đc?phải chăng nó mặc định tự cấp nguồn cho chip?
AVR mặc định mua về nó sẽ dùng thạch anh nội, các vấn đề liên quan đến ta thì bạn tìm trong box AVR này sẽ rõ.Chúc thành công!Mà nêu làm mạch thực tế, chắc chắn phải có crystal ạ?mà trong proteus liệu nó có tự tạo xung tại các cổng XTAL1 & 2 ko?Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
hi tui là Ngọc
Cũng ham mo nhiều cái diễn đàn này lắm, các bát hà tuôi thấy các anh mới tiem hiểu và cũng có nhưng người tiềm hiểu từ rất lâu, nếu cứ tìm tòi từng cái mạnh nhỏ vậy cũng rất tốt, lại hiểu nhiều. Nhưng mà có một ý kiến tui xin được nói với các bát rắng nếu cứ như vậy hoài thì rất mất thời gian âu chi chung ta tập hợp lại để làm một cái mạch kid tổng hợp bán lại cho nhưng ai thích nghiên cứu, và trong đó phải có phần lập trình căng bản và nân cao. tuoi rất tâm đắt vấn để này. vì có rất nhiều điều phải tìm hiểu và nghiên cứu mà cứ như vầy hỏi thì chả đi tới đâu được, bởi cái lĩnh vực này rất là sâu và rộng, vậy nhé nếu ai có quan tâm hay gọi cho tui SDT:01217874939 cám ơn các bạn đã theo giỏi
Comment
-
ặc,tớ nhơ không nhầm thì &h,&m,&s nghĩa là cậu phải đưa biến vào trong đó.ví dụ,khai 3 biết h,m,s thuộc kiểu nguyên,chứa giá trị giờ phút giây.thì lệnh đó phải là rtc_get_time(h,m,s).nếu dùng codevision thì xem thử example của ds1307 ýNguyên văn bởi phong25_2 Xem bài viếtcac 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
-
Viết rtc_get_time(&h,&m,&s) là đúng vì h, m, s là các biến sẽ nhận lại kết quả từ hàm rtc_get_time (chứ không phải truyền kết quả).Nguyên văn bởi koten306 Xem bài viếtặc,tớ nhơ không nhầm thì &h,&m,&s nghĩa là cậu phải đưa biến vào trong đó.ví dụ,khai 3 biết h,m,s thuộc kiểu nguyên,chứa giá trị giờ phút giây.thì lệnh đó phải là rtc_get_time(h,m,s).nếu dùng codevision thì xem thử example của ds1307 ý
Thêm dấu '&' trước tên biến có nghĩa là tham chiếu đến địa chỉ của biến.
Nếu sử dụng hàm rtc_set_time thì là rtc_set_time(h,m,s)More friends more foods
Comment
-
Ngày xưa tớ lập trình Codevisionavr tớ cũng tưởng thế,(vì cũng học qua C++ nên cũng hiểu là phải có tham chiếu &),nhưng nó chỉ đúng trong lập trình C,còn trong codevision,tớ thay lại &h,&m,&s thì nó lại báo lỗi.mà tớ thử dùng cách của mình thì thấy mô phỏng ngon lành mà.hihi,cũng chẳng hiểu tại sao lại như vậy,mong mọi người thì chỉ dạy.Nguyên văn bởi kimhuynguyen Xem bài viếtViết rtc_get_time(&h,&m,&s) là đúng vì h, m, s là các biến sẽ nhận lại kết quả từ hàm rtc_get_time (chứ không phải truyền kết quả).
Thêm dấu '&' trước tên biến có nghĩa là tham chiếu đến địa chỉ của biến.
Nếu sử dụng hàm rtc_set_time thì là rtc_set_time(h,m,s)
Comment
-
à mà kimhuynguyen nhớ nhầm rồi,đây là hàm gọi mà, cần gì phải có &, cái này chỉ dùng khi tạo hàm thôi(học C lâu rồi nên quên mất)Nguyên văn bởi kimhuynguyen Xem bài viếtViết rtc_get_time(&h,&m,&s) là đúng vì h, m, s là các biến sẽ nhận lại kết quả từ hàm rtc_get_time (chứ không phải truyền kết quả).
Thêm dấu '&' trước tên biến có nghĩa là tham chiếu đến địa chỉ của biến.
Nếu sử dụng hàm rtc_set_time thì là rtc_set_time(h,m,s)
Comment
Bài viết mới nhất
Collapse
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...-
Channel: Điện thanh
05-08-2026, 20:09 -

Comment