Các anh cho em xin mạch đồng hồ số đc ko ạ

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hieuhht
    Thành viên chính thức
    • Oct 2007
    • 44

    #1

    Các anh cho em xin mạch đồng hồ số đc ko ạ

    AI có lòng hảo tâm cho em xin sơ đồ nguyên lý của mạch đồng hồ số dùng 6 led 7đoạn (giờ,phút,giây) và ic at89c52 có sw điều chình giờ .Em xin chân thành cảm ơn nhiều nhiều.
    Last edited by hieuhht; 31-05-2009, 15:41.
  • hieuhht
    Thành viên chính thức
    • Oct 2007
    • 44

    #2
    anh nào rảnh giúp em tý.Thank

    Comment

    • nhamdtk4
      Thành viên tích cực
      • Sep 2008
      • 121

      #3
      Nếu bạn dùng VDK thì mạch không phải là vấn đề, khó là ở phần lập trình còn mạch nguyên lý thì bạn phải biết vẽ thế nào chứ.
      Nhớ quá khứ buồn rơi nước mắt.
      Nhìn tương lai lạnh buốt sống lưng.
      Y!M: nhamdtk4.

      Comment

      • hieuhht
        Thành viên chính thức
        • Oct 2007
        • 44

        #4
        mình mới học nên chỉ mới biết làm led đơn thôi còn led 7doan thi chưa,biết vẽ sơ đồ thi minh con hỏi làm gì nữa.nếu bạn có thi cho mình cả code nũa cang tốt.thanhk

        Comment

        • nhamdtk4
          Thành viên tích cực
          • Sep 2008
          • 121

          #5
          Bạn hãy tham khảo 2 code này, chỉ là CT đếm hoạt động giống đồng hồ chứ ko đúng như yêu cầu của bạn
          Attached Files
          Nhớ quá khứ buồn rơi nước mắt.
          Nhìn tương lai lạnh buốt sống lưng.
          Y!M: nhamdtk4.

          Comment

          • hieuhht
            Thành viên chính thức
            • Oct 2007
            • 44

            #6
            bạn ơi nó ko chạy

            Comment

            • nhamdtk4
              Thành viên tích cực
              • Sep 2008
              • 121

              #7
              Cái code "dong ho" thì mình ko rõ vì đấy là bài bạn mình làm, còn "clock" thì mô phỏng trong hợp ngữ (trình dịch) ấy nó chạy đúng. Có lẽ là do proteus nó ko mô phỏng đúng được bạn thử ráp mạch thật rồi nạp vào xem sao.
              Nhớ quá khứ buồn rơi nước mắt.
              Nhìn tương lai lạnh buốt sống lưng.
              Y!M: nhamdtk4.

              Comment

              • vina1908
                Thành viên mới
                • Mar 2009
                • 2

                #8
                Thử cái này coi
                |

                Comment

                • hieuhht
                  Thành viên chính thức
                  • Oct 2007
                  • 44

                  #9

                  Cảm ơn vina1908
                  bạn sửa lại cái code cái,sao mình ấn 1 cái mà nó nhảy 4, 5 số luôn.
                  Ah cho hình hỏi nếu làm mạch in thì có phải thêm transistor nữa ko.
                  Minh đang muốn làm 1 cái đồng hồ chơi
                  Last edited by hieuhht; 01-06-2009, 17:33.

                  Comment

                  • mh87
                    Thành viên mới
                    • May 2008
                    • 24

                    #10
                    Cái này đôn giản mún làm chơi bạn mua đồng hồ đeo tay loại 10k đó! Về lắp thêm mạch trans rùi chạy hà! Đơn giản vô cùng! Bạn chịu khó search trong diễn đàn nhé! Tại mình o nhớ nó ở đâu!
                    Thiên đường xuất hiện ở những nơi có tình yêu!
                    Mèo con's blog:

                    Comment

                    • hieuhht
                      Thành viên chính thức
                      • Oct 2007
                      • 44

                      #11
                      Thank
                      nhưng mình muốn làm bằng VDK 8052
                      Ai có sơ đồ lắp ráp thi cho mình

                      Comment

                      • Mr_se7en
                        Thành viên tích cực
                        • Mar 2009
                        • 192

                        #12
                        Nguyên văn bởi hieuhht Xem bài viết
                        Thank
                        nhưng mình muốn làm bằng VDK 8052
                        Ai có sơ đồ lắp ráp thi cho mình
                        89S52 hay 89C51 con nào cũng xài như nhau. Đây là mạch đồng hồ mình tham khảo anh em trên diễn đàn ve rồ làm mạch luôn, hơi tốn tiền 1 tí ( con 12c887 khoảng 60K) nhưng mà chạy giờ rất tốt và chính xác. bạn chỉ cần bắt tay vào làm nữa là ok. Mạch led là 8 con nhưng bạn cứ bỏ 2 con ra không cần ráp, (bỏ con thứ 3 và 6 ra từ trái sang). làm đi rồi mình giúp!
                        Attached Files

                        Comment

                        • legosse
                          Thành viên tích cực
                          • Apr 2009
                          • 101

                          #13
                          Nguyên văn bởi hieuhht Xem bài viết
                          AI có lòng hảo tâm cho em xin sơ đồ nguyên lý của mạch đồng hồ số dùng 6 led 7đoạn (giờ,phút,giây) và ic at89c52 có sw điều chình giờ .Em xin chân thành cảm ơn nhiều nhiều.
                          Đồng hồ của mình làm chỉ có 4 LED nhưng mà 6 LED thì chỉ cần thêm 2 LED đấu song song vào là được,lập trình thì thêm vào có xí thôi
                          Đây là sơ đồ nguyên lí
                          Click image for larger version

Name:	so do nguyen li.jpg
Views:	1
Size:	121.6 KB
ID:	1337958
                          Đây là mạch đem đi in
                          Click image for larger version

Name:	layout.jpg
Views:	1
Size:	161.9 KB
ID:	1337959
                          Đây là code viết bằng C (cho 89s52) (chạy ok)
                          HTML Code:
                          #include <AT89x52.h>
                          #include <intrins.h>
                          //Dinh nghia I/O
                          #define LED_DATA P0
                          #define key1 P2_3
                          #define key2 P2_2
                          #define key3 P2_1
                          #define key4 P2_0
                          #define LED1 P2_7
                          #define LED2 P2_6
                          #define LED3 P2_5
                          #define LED4 P2_4
                          //Khai bao cac chuong trinh con
                          void setup_timer(void);
                          void quet_phim(void);
                          void delay(unsigned int number);
                          //Khai bao bien
                          unsigned char code bang_ma[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
                          unsigned char count1,count2,sec,h1,h2,m1,m2;
                          char hour,minute;
                          //Ham khai bao dung ngat timer
                          void setup_timer(void)
                          { TMOD=0x11;
                            TH1=0xec;
                            TL1=0x77;
                            TH0=0x3C;
                            TL0=0xAF;
                            ET1=1;
                            ET0=1;
                            EA=1;
                            TF1=0;
                            TR1=1;
                            TF0=0;
                            TR0=1;
                          }
                          //Ham ngat timer0 dung de tao clock
                          void T0_ISR(void) interrupt 1
                          { TR0=0;							
                            TH0=0x3C;
                            TL0=0xAF;
                            count1++;
                            if(count1==20)
                            { count1=0;
                              sec++;
                            }
                            if(sec==60)
                            { sec=0;
                              minute++;
                          	}
                            if(minute==60)
                              { minute=0;
                                hour++;
                          	  }
                            if(hour==24) hour=0;
                            TF0=0;
                            TR0=1;
                          }
                          //Ham ngat timer1 dung de quet
                          void T1_ISR(void) interrupt 3
                          { TR1=0;							
                            TH1=0xEC;	 //5000us
                            TL1=0x77;
                            count2++;
                            LED1=1;
                            LED2=1;
                            LED3=1;
                            LED4=1;
                            if(count2==1)
                            { LED_DATA=bang_ma[h1];
                              LED1=0;
                            }
                            if(count2==2)
                            { LED_DATA=bang_ma[h2];
                              LED2=0;
                            }
                            if(count2==3)
                            { LED_DATA=bang_ma[m1];
                              LED3=0;
                            }
                            if(count2==4)
                            { LED_DATA=bang_ma[m2];
                              LED4=0;
                          	count2=0;	//Khoi dong lai bien dem
                            }
                            TF1=0;
                            TR1=1;
                          }
                          //Ham quet phim
                          void quet_phim(void)
                          { if(key1==0)        //Neu phim duoc an key1=0
                            { while(key1==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	hour++;
                          	if(hour>23) hour=0;
                            }
                            if(key2==0)        //Neu phim duoc an key2=0
                            { while(key2==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	hour--;
                          	if(hour<0) hour=23;
                            }
                            if(key3==0)        //Neu phim duoc an key3=0
                            { while(key3==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	minute++;
                          	if(minute>59) minute=0;
                            }
                            if(key4==0)        //Neu phim duoc an key4=0
                            { while(key4==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	minute--;
                          	if(minute<0) minute=59;
                            }
                          }
                          //Dinh nghia ham delay
                          void delay(unsigned int number)
                          { unsigned char j;
                            unsigned int i;
                            for(i=0;i<=number;i++)
                            { for(j=0;j<=100;j++)
                                {}
                            }
                          }
                           //Chuong trinh chinh
                          void main(void){ 
                            count1=0;
                            count2=0;
                            sec=0;
                            hour=19;
                            h1=hour/10;
                            h2=hour%10;
                            minute=36;
                            m1=minute/10;
                            m2=minute%10;
                            setup_timer();
                            while(1) {
                             quet_phim();
                             m1=minute/10;
                             m2=minute%10;
                             h1=hour/10;
                             h2=hour%10;
                            }
                          }
                          Còn đây là đồng hồ số có mắc thêm đèn LED đơn (nháy cho vui thôi)
                          Sơ đồ nguyên lí thì bạn mắc thêm 8 LED vào Port 1
                          HTML Code:
                          #include <AT89x52.h>
                          #include <intrins.h>
                          #include "global.h"
                          
                          //Khai bao cac chuong trinh con
                          void setup_timer(void);
                          void quet_phim(void);
                          void delay(unsigned int number);
                          //Khai bao bien
                          unsigned char code bang_ma[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
                          unsigned char count1,count2,sec,h1,h2,m1,m2;
                          char hour,minute;
                          //Ham khai bao dung ngat timer
                          void setup_timer(void)
                          { TMOD=0x11;
                            TH1=0xec;
                            TL1=0x77;
                            TH0=0x3C;
                            TL0=0xAF;
                            ET1=1;
                            ET0=1;
                            EA=1;
                            TF1=0;
                            TR1=1;
                            TF0=0;
                            TR0=1;
                          }
                          //Ham ngat timer0 dung de tao clock
                          void T0_ISR(void) interrupt 1
                          { TR0=0;							
                            TH0=0x3C;
                            TL0=0xAF;
                            count1++;
                            if(count1==20)
                            { count1=0;
                              sec++;
                            }
                            if(sec==60)
                            { sec=0;
                              minute++;
                          	}
                            if(minute==60)
                              { minute=0;
                                hour++;
                          	  }
                            if(hour==24) hour=0;
                            TF0=0;
                            TR0=1;
                          }
                          //Ham ngat timer1 dung de quet
                          void T1_ISR(void) interrupt 3
                          { TR1=0;							
                            TH1=0xEC;	 //5000us
                            TL1=0x77;
                            count2++;
                            LED1=1;
                            LED2=1;
                            LED3=1;
                            LED4=1;
                          
                            
                          
                            if(count2==1)
                            { LED_DATA=bang_ma[h1];
                              LED1=0;
                            }
                            if(count2==2)
                            { LED_DATA=bang_ma[h2];
                              LED2=0;
                            }
                            if(count2==3)
                            { LED_DATA=bang_ma[m1];
                              LED3=0;
                            }
                            if(count2==4)
                            { LED_DATA=bang_ma[m2];
                              LED4=0;
                          	count2=0;	//Khoi dong lai bien dem
                            }
                            quet_phim();
                             m1=minute/10;
                             m2=minute%10;
                             h1=hour/10;
                             h2=hour%10;
                            TF1=0;
                            TR1=1;
                          }
                          //Ham quet phim
                          void quet_phim(void)
                          { if(key1==0)        //Neu phim duoc an key1=0
                            { while(key1==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	hour++;
                          	if(hour>23) hour=0;
                            }
                            if(key2==0)        //Neu phim duoc an key2=0
                            { while(key2==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	hour--;
                          	if(hour<0) hour=23;
                            }
                            if(key3==0)        //Neu phim duoc an key3=0
                            { while(key3==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	minute++;
                          	if(minute>59) minute=0;
                            }
                            if(key4==0)        //Neu phim duoc an key4=0
                            { while(key4==0);	 //Chong nay phim
                              delay(30);		 //Chong soc dien
                          	minute--;
                          	if(minute<0) minute=59;
                            }
                          }
                          //Dinh nghia ham delay
                          void delay(unsigned int number)
                          { unsigned char j;
                            unsigned int i;
                            for(i=0;i<=number;i++)
                            { for(j=0;j<=100;j++)
                                {}
                            }
                          }
                           //Chuong trinh chinh
                          void main(void){ 
                            count1=0;
                            count2=0;
                            sec=0;
                            hour=19;
                            h1=hour/10;
                            h2=hour%10;
                            minute=36;
                            m1=minute/10;
                            m2=minute%10;
                            setup_timer();
                            while(1) {
                               LED_1=0;delay(125);
                               LED_2=0;delay(125);
                               LED_3=0;delay(125);
                               LED_4=0;delay(125);
                               LED_5=0;delay(125);
                               LED_6=0;delay(125);
                               LED_7=0;delay(125);
                               LED_8=0;delay(125);
                               P3=0xFF;delay(125);
                          
                               LED_8=0;delay(125);
                               LED_7=0;delay(125);
                               LED_6=0;delay(125);
                               LED_5=0;delay(125);
                               LED_4=0;delay(125);
                               LED_3=0;delay(125);
                               LED_2=0;delay(125);
                               LED_1=0;delay(125);
                               P3=0xFF;delay(125);
                          
                               LED_1=0;delay(125);
                               LED_2=0;delay(125);
                               LED_3=0;delay(125);
                               LED_4=0;delay(125);
                               LED_5=0;delay(125);
                               LED_6=0;delay(125);
                               LED_7=0;delay(125);
                               LED_8=0;delay(125);
                               P3=0xFF;delay(125);
                          
                               LED_1=0;delay(125);
                               LED_8=0;delay(125);
                               LED_2=0;delay(125);
                               LED_7=0;delay(125);
                               LED_3=0;delay(125);
                               LED_6=0;delay(125);
                               LED_4=0;
                               LED_5=0;delay(250);
                               P3=0xFF;delay(125);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               LED_3=0;delay(250);
                               LED_4=0;delay(250);
                               LED_5=0;delay(250);
                               LED_6=0;delay(250);
                               LED_7=0;delay(250);
                               LED_8=0;delay(250);
                               P3=0xFE;delay(500);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               LED_3=0;delay(250);
                               LED_4=0;delay(250);
                               LED_5=0;delay(250);
                               LED_6=0;delay(250);
                               LED_7=0;delay(250);
                               P3=0xFC;delay(500);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               LED_3=0;delay(250);
                               LED_4=0;delay(250);
                               LED_5=0;delay(250);
                               LED_6=0;delay(250);
                               P3=0xF8;delay(500);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               LED_3=0;delay(250);
                               LED_4=0;delay(250);
                               LED_5=0;delay(250);
                               P3=0xF0;delay(500);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               LED_3=0;delay(250);
                               LED_4=0;delay(250);
                               P3=0xE0;delay(500);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               LED_3=0;delay(250);
                               P3=0xC0;delay(500);
                          
                               LED_1=0;delay(250);
                               LED_2=0;delay(250);
                               P3=0x80;delay(500);
                          
                               LED_1=0;delay(500);
                          
                          	 LED_1=0;LED_2=0;LED_3=0;LED_4=0;delay(125);
                          	 P3=0xFF;delay(125);
                          	 LED_5=0;LED_6=0;LED_7=0;LED_8=0;delay(125);
                          	 P3=0xFF;delay(250);
                          	 LED_5=0;LED_6=0;LED_7=0;LED_8=0;delay(125);
                          	 P3=0xFF;delay(125);
                          	 LED_1=0;LED_2=0;LED_3=0;LED_4=0;delay(125);
                          	 P3=0xFF;delay(250);
                          
                          	 LED_1=0;LED_2=0;LED_3=0;LED_4=0;delay(125);
                          	 P3=0xFF;delay(125);
                          	 LED_5=0;LED_6=0;LED_7=0;LED_8=0;delay(125);
                          	 P3=0xFF;delay(250);
                          	 LED_5=0;LED_6=0;LED_7=0;LED_8=0;delay(125);
                          	 P3=0xFF;delay(125);
                          	 LED_1=0;LED_2=0;LED_3=0;LED_4=0;delay(125);
                          	 P3=0xFF;delay(250);	 
                          
                          	 P3=0xFF;delay(500);
                               P3=0x00;delay(1000);
                            }
                          }

                          Comment

                          • hieuhht
                            Thành viên chính thức
                            • Oct 2007
                            • 44

                            #14
                            Nguyên văn bởi Mr_se7en Xem bài viết
                            89S52 hay 89C51 con nào cũng xài như nhau. Đây là mạch đồng hồ mình tham khảo anh em trên diễn đàn ve rồ làm mạch luôn, hơi tốn tiền 1 tí ( con 12c887 khoảng 60K) nhưng mà chạy giờ rất tốt và chính xác. bạn chỉ cần bắt tay vào làm nữa là ok. Mạch led là 8 con nhưng bạn cứ bỏ 2 con ra không cần ráp, (bỏ con thứ 3 và 6 ra từ trái sang). làm đi rồi mình giúp!
                            cảm ơn các bạn rất nhiều
                            bạn dùng phần mềm ji để đọc vậy, sao mình dùng orcad 10.5 mà chỉ thấy phần mạch in ko thấy sơ đồ nguyên lý đâu cả còn proteus 7.2 thì ko đọc đc
                            Last edited by hieuhht; 02-06-2009, 10:33.

                            Comment

                            • hieuhht
                              Thành viên chính thức
                              • Oct 2007
                              • 44

                              #15
                              mất điện thì phải lấy lại h hả bạn

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...