RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Làm Đồng hồ để bàn với DS1307 và Mega8!

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • ylotus
    replied
    Em thì ko biết về AVR, em làm đang làm cái đồng hồ DS1307 bằng 89c51, mô phỏng thì ok nhưng đưa ra được thực tế thì chưa thấy lối ra luôn, có 1 điều em muốn hỏi là sao mô phỏng mà gắn thêm 2 điện trở kéo lên cho DS1307 là cái đồng hồ chạy ko đc, ko hiểu luôn

    Leave a comment:


  • atmega_88
    replied
    uhm, cái thứ của em ấy. Chạy rùi. Cái lịch âm thì mình cũng pải có thuật toán chứ.

    Leave a comment:


  • mrcuongcon
    replied
    'Xong' là xong thế nào?
    À, cái vụ lịch âm thì mình chưa làm bao giờ, cách tốt nhất theo mình là có 1 con ROM (như kiểu 24c512) lưu lịch âm trong vòng...100 năm rồi đọc ra, hiển thị lên là xong :d

    Leave a comment:


  • atmega_88
    replied
    " mrcuongcon " em làm xong rùi. chạy ngon, nhưng giờ lại muốn thêm ngày âm bác làm rùi có thể chỉ em thuật toán ko ? Cái này khó hơn ngày dương.

    Leave a comment:


  • 008
    replied
    Mình cũng đang định làm 1 cái LCD cho cái bàn thờ xe máy. Tính thêm luôn con DS để hiện giờ, vướng mắc gì lên hỏi mong mọi người giúp đỡ. Xong set post lên góp vui hihi

    Leave a comment:


  • mrcuongcon
    replied
    Có ai từng làm Realtime clock bằng chính con Atmega8 chưa ( không sử dụng ds1307)? Atmega8 có thể lắp thạch anh 32khz, đưa vào timer 2 để chạy clock? Vẫn dùng cục pin Cmos, khi mất điện đưa con Atmega8 về trạng thái ngủ.

    Leave a comment:


  • kim.kim
    replied
    hic đang làm về cái đó mà thấy bích nói vậy thấy nản quá .khó vậy ah .có ai làm được chưa .giúp mình với !!!!!!

    Leave a comment:


  • Hard
    replied
    Hi,
    Vụ đồng hồ này cũng xôm tụ nhỉ, tui cũng có một sản phẩm liên quan đến đồng hồ nhưng mà tui làm với VĐK PIC. Hiện tại đồng hồ này đang điều khiển chuông báo cho xưởng làm việc. Ở trạng thái hoạt động bình thường sẽ hiển thị giờ/phút/giây trong vòng 10 giây sau đó hiển thị Thứ, ngày, tháng mỗi cái 2 giây rồi trở lại hiển thị giờ. Khi thời gian đúng với thời gian cài đặt trong bảng thời gian biểu thì sẽ báo chuông, tùy vào mỗi thời điểm mà tín hiệu rung chuông khác nhau. Đồng hồ cho phép đặt thời gian qua 4 phím bấm, thời khóa biểu thì được fix cứng trong code do thao tác nhập thời khóa biểu sẽ khó cho người dùng với lại thời khóa biểu mỗi năm thay đổi có 1 lần, chỉ cần cắm dây cáp lập trình vào update lại là xong. Tui nghĩ nếu làm đồng hồ thì nên kết hợp với việc gì đó sẽ thú vị hơn còn để hiển thị giờ thì thôi mua u nó cái của Trung Quốc có 90K mà chạy ngon lành.
    Có một ứng dụng liên quan đến đồng hồ mà tui chưa có thời gian làm đó là hẹn ngày kỵ giỗ của ông bà... vì do ngày giỗ là ngày âm lịch mà mọi phương tiện hẹn giờ như ĐTDĐ, PC đều chỉ hỗ trợ lịch dương lịch nên mỗi năm lại mỗi khác không ứng dụng được. Thuật toán lịch âm thì tui đã sưu tầm được rồi nhưng hiện tại chưa máu me vụ này lắm nên chưa tiến hành.
    Bác nào quan tâm đến giải pháp dùng PIC thì cùng trao đổi cho vui, nếu đây là luồng của Atmega fan thì chắc tui chỉ đóng góp đến đây thôi.
    Thân ái.

    Leave a comment:


  • atmega_88
    replied
    oh, em thử rùi bước đầu hiệu quả để hết tuần đã.

    Leave a comment:


  • mrcuongcon
    replied
    hề hề, thêm 1 biến *day nữa nhưng mà cái dòng I2c_write(4) kia phải chuyển thành write(3) chứ?
    Attached Files
    Last edited by mrcuongcon; 18-10-2010, 16:41.

    Leave a comment:


  • atmega_88
    replied
    "" void rtc_get_day(unsigned char *day,unsigned char *date,unsigned char *month,unsigned char *year)
    {
    i2c_start();
    i2c_write(0xd0);
    i2c_write(4);
    i2c_start();
    i2c_write(0xd1);
    *day=bcd2bin(i2c_read(1));
    *date=bcd2bin(i2c_read(1));
    *month=bcd2bin(i2c_read(1));
    *year=bcd2bin(i2c_read(0));
    i2c_stop();
    }

    void rtc_set_day(unsigned char day,unsigned char date,unsigned char month,unsigned char year)
    {
    i2c_start();
    i2c_write(0xd0);
    i2c_write(4);
    i2c_write(bin2bcd(day));
    i2c_write(bin2bcd(date));
    i2c_write(bin2bcd(month));
    i2c_write(bin2bcd(year));
    i2c_stop();
    } ""
    hiểu ý anh nhưng khi làm đã thấy nhẩy thứ nhưng nó có cả thứ 9. anh giúp em cho đúng quy luật với.

    Leave a comment:


  • mrcuongcon
    replied
    Nguyên văn bởi atmega_88 Xem bài viết
    Dùng " rtc_get_time(&h,&m,&s);
    rtc_get_byte (&thu,&ngay,&thang,&nam);"ah ?
    bạn hướng dẫn chút ko ?
    Mình thay nhưng ko được. h,m,s,ngay, thang, nam ok rùi còn mỗi cái thứ.
    Trong DS1307 rõ ràng có cả "thứ" nhưng mà hàm của codevisionAVR nó không đưa ra. Muốn lôi cả thứ ra nữa thì cần phải sửa mấy cái code của nó trong thư viện DS1307, công việc cần làm là thêm 1 biến "thứ" vào các hàm rtc_get_date() và rtc_set_date(),...

    Leave a comment:


  • atmega_88
    replied
    Dùng " rtc_get_time(&h,&m,&s);
    rtc_get_byte (&thu,&ngay,&thang,&nam);"ah ?
    bạn hướng dẫn chút ko ?
    Mình thay nhưng ko được. h,m,s,ngay, thang, nam ok rùi còn mỗi cái thứ.

    Leave a comment:


  • hungnp
    replied
    Nguyên văn bởi atmega_88 Xem bài viết
    Chào các bác. Em có 1 vấn đề là không viết làm sao cho thứ nó chạy được.
    nếu khai báo "rtc_get_date(&ngay,&thang,&nam) '' thì được nhưng ko có thứ
    ,nếu khai bao "rtc_get_day(&thu,&ngay,&thang,&nam) " thì báo lỗi.
    Mong các bác giúp !
    Và cách nào khác ko ?
    Bạn sử dụng CodevisionAVR hả? Trong đó làm gì có hàm rtc_get_day mà chỉ có rtc_get_date thôi. Hàm này chỉ đọc được ngày, tháng, năm. Nếu muốn đọc cả thứ phải dùng hàm rtc_get_byte trong thư viện ds1307.h để đọc giá trị tại ô nhớ 0x03 của ds1307.

    Leave a comment:


  • atmega_88
    replied
    Chào các bác. Em có 1 vấn đề là không viết làm sao cho thứ nó chạy được.
    nếu khai báo "rtc_get_date(&ngay,&thang,&nam) '' thì được nhưng ko có thứ
    ,nếu khai bao "rtc_get_day(&thu,&ngay,&thang,&nam) " thì báo lỗi.
    Mong các bác giúp !
    Và cách nào khác ko ?

    Leave a comment:

Về tác giả

Collapse

thangktvta Tìm hiểu thêm về thangktvta

Bài viết mới nhất

Collapse

Đang tải...