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
Thông báo
Collapse
No announcement yet.
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
-
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