Thông báo

Collapse
No announcement yet.

vấn đề đồng hồ thời gian thực dùng atmega8

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • vấn đề đồng hồ thời gian thực dùng atmega8

    -hôm qua mới code cái đồng hồ bằng con atmega 8,chỉ cần có giờ và phút thôi(làm bằng led đơn ghép lại),nhưng mô phỏng chỉ có số 8585 mà chưa biết chỉnh sửa sao,bác nào từng làm chỉ em với
    -với lại em định làm bằng led đơn ghép lại thì nên nối song song hay nối tiếp nhẩy(1 đoạn là 5 con,mạch em đang vẽ song song) và nối kiểu anot hay catot chung thì sáng tốt nhất, có cần tran để đưa mã led hay đưa thẳng giống led 7 thường thôi
    -các bác cho em ý kiến với
    code:
    PHP Code:
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V1.24.6 Professional
    Automatic Program Generator
    © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    e-mail:office@hpinfotech.com

    Project : 
    Version : 
    Date    : 10/27/2012
    Author  : F4CG                            
    Company : F4CG                            
    Comments: 


    Chip type           : ATmega8L
    Program type        : Application
    Clock frequency     : 8.000000 MHz
    Memory model        : Small
    External SRAM size  : 0
    Data Stack size     : 256
    *****************************************************/

    #include <mega8.h> 
    #include <delay.h>
    #include <ds1307.h>
    #include <i2c.h>
    // portc.4.5 la chan sda va scl
    #define led PORTD // port d de xuat ma led
    // port c de quet cac led
    #define led1 PORTC.0
    #define led2 PORTC.1
    #define led3 PORTC.2
    #define led4 PORTC.3  
    // cac chan pin b de nhan cac phim bam
    #define set PINB.0
    #define up PINB.1
    #define down PINB.2                   
    //Cac bit de quan ly trang thai cac phim
    bit set0=1,set1=1,up0=1,up1=1,down0=1,down1=1;

    unsigned char led7[]={0b00000011,
                          
    0b10011111,
                          
    0b00100101,
                          
    0b00001101,
                          
    0b01001001,
                          
    0b01000001,
                          
    0b00011111,
                          
    0b00000001,
                          
    0b00010001
                          
    } ;

    // I2C Bus functions
    #asm
       
    .equ __i2c_port=0x15 ;PORTC
       
    .equ __sda_bit=4
       
    .equ __scl_bit=5
    #endasm

    unsigned char h=10,m=00,s=00;//Bien gio phut giay
    unsigned char kt=0,a=0,x=0;

    //Ham con

    void kt_phim();   // ham kiem tra phim
    void read_ds1307();  // ham doc chip ds1307
    void hien_thi();    // ham hien thi led

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=P State2=P State1=P State0=P 
    PORTB=0x0F;
    DDRB=0x00;

    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
    // State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
    PORTC=0x00;
    DDRC=0x0F;

    // Port D initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
    // State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 
    PORTD=0xFF;
    DDRD=0xFF;

    // I2C Bus initialization
    i2c_init();// khoi tao i2c

    // DS1307 Real Time Clock initialization
    // Square wave output on pin SQW/OUT: On
    // Square wave frequency: 1Hz

    rtc_init(0,1,0);// khoi tao rtc


    while (1)
          {
          
    x++;//Bien chay quan ly nhap nhay cac so tuong ung voi che do cai dat
          
    kt_phim();
          
    read_ds1307();
          
    hien_thi();
          if(
    x==100)
          {
          
    x=0;
          }
          };
    }    
    //  ham kiem tra va cai dat cho ds1307
    void read_ds1307()
    {
       if(
    kt==0)
         {
          if(
    a==1//Kiem tra truoc do co cai dat lai gio,phut,giay khong
             
    //Neu co thi cai dat lai du lieu dau vao cho DS1307
              
    rtc_set_time(h,m,s);a=0;
              
    delay_us(300);
              }
            
    rtc_get_time(&h,&m,&m); //Doc du lieu tu DS1307
         
    }
    }
    void hien_thi()
    {
     if((
    kt==0)||(kt!=1)||((kt==1)&&(x<50)))
     {
     
    led led7[h/10];led1=1;delay_us(2000);led1=0;
     
    led led7[h%10];led2=1;delay_us(2000);led2=0;
     }
     if((
    kt==0)||(kt!=2)||((kt==2)&&(x<50))) //Tuong tu nhu KT gio
     
    {
     
    led led7[m/10];led3=1;delay_us(2000);led3=0;
     
    led led7[m%10];led4=1;delay_us(2000);led4=0;
     }
    }
    void kt_phim()
    {
     
    set0=set1;
     
    set1=set//Kiem tra trang thai ban dau cua phim
    if((set0==1)&&(set1==0)) //Kiem tra xem phim co dc nhan nha hay khong
     
    {                        //Neu dc nhan nha thi tang kt++,neu khong thi
      
    kt++;                   //doi toi khi nao phim dc nha moi tang bien kt
      
    if(kt>3)
      
    kt=0;                  
     }
    switch(
    kt//Lua chon che do ung voi gia tri cua bien kt
     
    {
      case 
    0:break; //Tro lai che do chay binh thuong
      
    case 1//Che do cai dat gio
      

       
    up0=up1;up1=up;a=1;
       if((
    up0==1)&&(up1==0))
        {
         
    h++;
         if(
    h>23)h=0;
        }
         
    down0=down1;down1=down;
         if((
    down0==1)&&(down1==0))
        {
         
    h--;
         if(
    h>23)h=23;
         }
        case 
    2//Che do cai dat phut
        
    {
         
    up0=up1;up1=up;a=1;
         if((
    up0==1)&&(up1==0))
          {
          
    m++;
         if(
    m>59)m=0;
           }
           
    down0=down1;down1=down;
         if((
    down0==1)&&(down1==0))
           {
            
    m--;
         if(
    m>59)m=59;
         }
    break;
    }


    }
    }
         


    sao mà cái file .rar đính kem không được nhẩy
    em đính tạm cái hình
    Attached Files

  • #2
    có bác nào có mạch đồng hồ số khi mất điện và có điện lại vẫn chạy không, không cần chỉnh sửa lại giờ
    em đang cần!!!!

    Comment


    • #3
      Nguyên văn bởi nhuttan.lhu Xem bài viết
      có bác nào có mạch đồng hồ số khi mất điện và có điện lại vẫn chạy không, không cần chỉnh sửa lại giờ
      em đang cần!!!!
      DS1307 dùng Pin nuôi là ok mà bác.
      Phạm Duy Quý

      PN:0973291335


      Dám nghĩ,dám nói,dám làm

      Comment


      • #4
        ý mình là chỉ có sử dụng 1 nguồn điện thôi không sử dụng nguồn khác

        Comment


        • #5
          Nguyên văn bởi nhuttan.lhu Xem bài viết
          ý mình là chỉ có sử dụng 1 nguồn điện thôi không sử dụng nguồn khác
          ko có điện thì ko có gì chạy hết, pin của ds1307 là pin chỉ nuôi con DS khi nguồn chính của mạch bị mất. Nó là cục 3V giống như trong máy tính, tới máy tính cũng cần có pin để nuôi BIOS mờ.

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          • mèomướp
            Trả lời cho Công thức điện tử
            bởi mèomướp
            Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
            Hôm qua, 21:21
          • mèomướp
            Trả lời cho Xin hỏi về màn hình laptop
            bởi mèomướp
            Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
            Hôm qua, 20:31
          • yname11
            Trả lời cho Xin hỏi về màn hình laptop
            bởi yname11
            Ok , thanks bác đã chỉ...
            Hôm qua, 15:06
          • nguyendinhvan
            Công thức điện tử
            bởi nguyendinhvan
            Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

            Chập thì thay. Cháy thì tháo
            Làm thì láo. Báo thì hay
            May thì khoe. Rủi thì bỏ
            Thành tích nhỏ. Báo thành to
            Làm cho có. Báo chi li
            Sai cả li. Báo
            ...
            Hôm qua, 00:35
          • yname11
            Trả lời cho Xin hỏi về màn hình laptop
            bởi yname11
            có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
            25-11-2024, 22:31
          • mèomướp
            Trả lời cho Xin hỏi về màn hình laptop
            bởi mèomướp
            Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
            25-11-2024, 22:14
          • bactho
            Trả lời cho Tự làm máy đo Cuộn cảm
            bởi bactho
            Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
            25-11-2024, 21:48
          • yname11
            Trả lời cho Xin hỏi về màn hình laptop
            bởi yname11
            màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
            25-11-2024, 21:43
          • bactho
            Trả lời cho các bạn giúp mình về file HEX với!!!
            bởi bactho
            Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
            25-11-2024, 21:21
          • mèomướp
            Trả lời cho Xin hỏi về màn hình laptop
            bởi mèomướp
            Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
            25-11-2024, 20:43
          Đang tải...
          X