Thông báo

Collapse
No announcement yet.

Đồng hồ số dùng 4 LED 7 đoạn

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

  • #16
    Mình hiểu về điều kiện if(key==0) rồi
    Chương trình vậy là ổn
    H cho mình hỏi về cái mạch
    Khi chuyên qua layout các chân của Port 0 không nối đúng với các chân của LED 7 đoạn theo thứ tự P0_0 -> a,....P0_6 ->g
    mà lại P0_0 -> chân số 5 của LED là b ,...
    mặc dù mình đã sửa lại các chân trong sơ đồ nguyên lí đúng thứ tự là a-4,b-5,....
    Với lại cái LED nó nằm không đúng
    10 9 8 7 6
    1 2 3 4 5
    Đáng lẽ là
    1 2 3 4 5
    10 9 8 7 6
    Mình dùng lệnh xoay ngang(H) xoạy dọc (V) đều không được
    Mọi người xem hình vẽ cho dễ hiểu
    Sơ đồ nguyên lí
    Layout
    Last edited by legosse; 17-05-2009, 21:45.

    Comment


    • #17
      cần j mà phức tạp vậy bạn.Chỉ cần vẽ xong test lại thử các chân rồi giải mã lại là được thôi mà.

      Comment


      • #18
        Sao a e vào nhiều mà không thấy chỉ giúp mình với, mình loay hoay mãi mà chưa xử lí được chân cẳng của cái con LED đó, không sữa chân được đâu làm j tiếp được đâu, mấy bác giúp em đi

        Comment


        • #19
          Nguyên văn bởi chinh_cover Xem bài viết
          cần j mà phức tạp vậy bạn.Chỉ cần vẽ xong test lại thử các chân rồi giải mã lại là được thôi mà.
          Test chân thì thấy sai rồi,(không hiểu nữa vì sơ đô nguyên lí rõ ràng chân của LED đúng rồi mà).Giải mã là làm j bạn, nói rõ thêm xí được không

          Nhân tiện cho mình hỏi làm cách nào tạo được file pdf của sơ đồ nguyên lí (có màu đẹp vậy)
          Mình vào File->Print thì chỉ tạo được file *.mdi mà lại đen trắng, chỉ có con 89 là có màu xanh
          Last edited by legosse; 17-05-2009, 23:44.

          Comment


          • #20
            Nguyên văn bởi nguyenyeu
            cac bac oi!
            phan mem thi co ve dc roi nhung con phan cung thi sao.co ai giup em e cai so do nguyen ly dc ko?em dang can de lam thu?
            Bác đang nói về sơ đồ nguyên lí của mạch j?

            Comment


            • #21
              Nguyên văn bởi legosse Xem bài viết
              Mình hiểu về điều kiện if(key==0) rồi
              Chương trình vậy là ổn
              H cho mình hỏi về cái mạch
              Khi chuyên qua layout các chân của Port 0 không nối đúng với các chân của LED 7 đoạn theo thứ tự P0_0 -> a,....P0_6 ->g
              mà lại P0_0 -> chân số 5 của LED là b ,...
              mặc dù mình đã sửa lại các chân trong sơ đồ nguyên lí đúng thứ tự là a-4,b-5,....
              Với lại cái LED nó nằm không đúng
              10 9 8 7 6
              1 2 3 4 5
              Đáng lẽ là
              1 2 3 4 5
              10 9 8 7 6
              Mình dùng lệnh xoay ngang(H) xoạy dọc (V) đều không được
              Mọi người xem hình vẽ cho dễ hiểu
              Sơ đồ nguyên lí
              Layout
              theo tôi bạn cứ đo các chân của led 7 thanh đi xem no có thứ tự như thế nào rùi bạn tự tạo ra một linh kiện mới ở trong layoat thế là được rùi vì trên thị trường có rất nhìu loại led 7 thanh mù trong thư viện không có mình phải tự tao thui

              Comment


              • #22
                Mình nghĩ sẽ giữ nguyên các chân của con LED 7 đoạn thay vào đó nối các chân 89 vào LED cho đúng là được,đang thử làm
                Nhân tiện xin hỏi mọi người 1 í
                mình đọc lại ly thuyết thấy có nói Port 0 có 2 chức năng
                - BUS dữ liệu/địa chỉ
                - I/O (bắt buộc nối P0 với 1 điện trở thanh lên Vcc)
                Như vậy nếu mình muốn dùng Port 0 để nối với 4 LED 7 đoạn (tạo đồng hồ) thì có phải nối với điện trở thanh không mấy bác? (còn Port 1,2,3 thì không cần trở thanh vì bình thường nó đã làm I/O rồi?)

                Comment


                • #23
                  Sao a e vào nhiều mà không thấy chỉ giúp mình với, mình loay hoay mãi mà chưa xử lí được chân cẳng của cái con LED đó, không sữa chân được đâu làm j tiếp được đâu, mấy bác giúp em đi
                  Vấn đề của bạn nằm ở việc đồng bộ giữa biểu tượng nguyên lý của linh kiện và biểu tượng của nó trong layout. Bạn thử kiểm tra điểm này xem:
                  - Trong sơ đồ nguyên lý bạn muốn nối a với P0.0, b với P0.1 ....Trong biểu tượng nguyên lý của LED 7 thanh, với mỗi chân có 2 thông số là tên, và số thứ tự. Ví dụ chân a - số thứ tự 1, b số thứ tự 2 chẳng hạn...Tuy nhiên trong mạch in, các chân (pad) thường đánh số, các số này tương ứng với số thứ tự chân bên biểu tượng nguyên lý. Vì thế giả sử ở nguyên lý a số thứ tự là 1 và nối với chân P0.0, thì khi sang mạch in, P0.0 sẽ nối với chân (pad) đánh số 1.
                  - Khi muốn nối đúng chân thì bạn phải kiểm tra con LED thực tế xem chân số mấy là a, chân số mấy là b,...và đánh số cho đúng. Bạn đánh số đúng thì giữa mạch in và mạch nguyên lý sẽ tương thích với nhau. Nhưng láp con LED thực tế vào có đúng hay không lại phụ thuộc vào việc các chân bạn vẽ có phù hợp với con thực hay không. Cho nên khi vẽ bạn hãy kiểm tra con thật trước đã
                  For a better world

                  Comment


                  • #24
                    cảm ơn bác nha,mình làm được rồi
                    Cho mình hỏi cách nối dây cho con 89c51, Vcc nối vào chân nào 31 hay 40 hay cả 2, bác xem mạch này đúng không dùm nge
                    Click image for larger version

Name:	Dong ho.jpg
Views:	1
Size:	114.6 KB
ID:	1337784
                    Last edited by legosse; 21-05-2009, 06:59.

                    Comment


                    • #25
                      cảm ơn bác nha,mình làm được rồi
                      Cho mình hỏi cách nối dây cho con 89c51, Vcc nối vào chân nào 31 hay 40 hay cả 2, bác xem mạch này đúng không dùm nge
                      Click vào đây để xem rộng hơn Name: Dong ho.jpg Views: 1 Size: 114.6 KB
                      Đối với 8051, để nó có thể chạy được bạn cần phải đảm bảo tối thiểu 4 điều kiện sau:

                      1/Cấp nguồn đầy đủ: Chân 40 nối nguồn +5V, chân 20 nối mass
                      2/Mạch reset nối đúng, tối thiểu phải nối +5V--->tụ--->tro--->mass, lấy tín hiệu tại cực âm của tụ (giữa tụ và trở) đưa vào chân 9.
                      3/Mạch dao động nối đúng: dao động thạch anh nối vào chân 18,19, cần thêm hai tụ 33pF.
                      4/EA nối đúng: EA nối với nguồn thì 8051 sẽ chạy với bộ nhớ chương trình on-chip. EA nối với mass thì 8051 sẽ chạy với bộ nhớ chương trình ngoài, bỏ qua bộ nhớ chương trình on-chip.(Nếu EA nối mass mà không có bộ nhớ chương trình ngoài thì 8051 không chạy được.)
                      For a better world

                      Comment


                      • #26
                        Nguyên văn bởi Toan.Lv Xem bài viết
                        Đối với 8051, để nó có thể chạy được bạn cần phải đảm bảo tối thiểu 4 điều kiện sau:

                        1/Cấp nguồn đầy đủ: Chân 40 nối nguồn +5V, chân 20 nối mass
                        2/Mạch reset nối đúng, tối thiểu phải nối +5V--->tụ--->tro--->mass, lấy tín hiệu tại cực âm của tụ (giữa tụ và trở) đưa vào chân 9.
                        3/Mạch dao động nối đúng: dao động thạch anh nối vào chân 18,19, cần thêm hai tụ 33pF.
                        4/EA nối đúng: EA nối với nguồn thì 8051 sẽ chạy với bộ nhớ chương trình on-chip. EA nối với mass thì 8051 sẽ chạy với bộ nhớ chương trình ngoài, bỏ qua bộ nhớ chương trình on-chip.(Nếu EA nối mass mà không có bộ nhớ chương trình ngoài thì 8051 không chạy được.)
                        Đây là chương trình mình viết bằng C
                        Nạp vào chip -> đồng hồ chỉ hiển thị: 0000
                        Mọi người xem dùm sai ở đâu nhé
                        Thanks!
                        HTML Code:
                        #include <AT89x51.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=0x3C;
                          TL1=0xAF;
                          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 char i;
                          for(i=0;i<=number;i++)
                          { for(j=0;j<=1000;j++)
                              {}
                          }
                        }
                         //Chuong trinh chinh
                        void main(void){ 
                          count1=0;
                          count2=0;
                          sec=0;
                          hour=0;
                          h1=hour/10;
                          h2=hour%10;
                          minute=0;
                          m1=minute/10;
                          m2=minute%10;
                          setup_timer();
                          while(1) {
                           quet_phim();
                           m1=minute/10;
                           m2=minute%10;
                           h1=hour/10;
                           h2=hour%10;
                          }
                        }

                        Comment


                        • #27
                          Cho tớ hỏi : nếu thiết kế đồng hồ số 4 led 7đoạn dùng bộ giải mã 7447 thì khi định nghĩa 4 chân A,B,C,D như thế nào ???

                          Comment


                          • #28
                            trước tiên bạn phải đưa cái lưu đồ thuật toán lên rồi mọi người mới giải quyết dùm bạn đươc.còn dùng bộ định thời timer 1 hay 0 gì cũng như nhau thôi.chỉ cần tính chính xác thời gian trể là được.ok.

                            Comment


                            • #29
                              Nguyên văn bởi vns159 Xem bài viết
                              Cho tớ hỏi : nếu thiết kế đồng hồ số 4 led 7đoạn dùng bộ giải mã 7447 thì khi định nghĩa 4 chân A,B,C,D như thế nào ???
                              4 chân A,B,C,D của 7447 nối vào 4 chân của 89, thay đổi 0 1 ở các chân này là được, cái bảng mả thì bạn coi trong datasheet ấy
                              VD:
                              số 0 -> 0 0 0 0 (A B C D)
                              số 1 -> 0 0 0 1
                              ...
                              số 9 -> 1 0 0 1
                              Các chân B của BJT bạn có thể nối vào các chân của 89, kích bình thường
                              Còn nếu muốn tiết kiệm chân cho 89 hơn nữa thì dùng thêm 1 chip giải mã 3bit (74138) hoặc 4 bit (74154), các chân đầu ra của chip giải mã thứ 2 này nối vào chận B của transitor để kích.
                              Nếu dùng con 3 bit (8 đầu ra) thì có thể kích được 8 LED 7 đoạn, 4 bit thì có thể kích được tới 16 LED.
                              2 con này có bảng trạng thái, trong datasheet ghi rõ lắm
                              VD con 3 bit
                              C B A Y8 Y7 ... Y0
                              0 1 1 1 1 1 0 1 1 1 1 1
                              3 bit CBA tạo thành số mấy thì đầu ra tương ứng ở mức 0 -> LED tương ứng được cấp nguồn ...
                              Thử dùng con cỡ 10 bit thì có thể kích được vo số LED mà chỉ dùng có 7 chân của 89 thôi con chip này có chắc to bằng ngôi nhà quá

                              Bác nào coi dùm cái chương trình ở trên dùm với

                              Comment


                              • #30
                                Híc các bác toàn dùng orcad em chỉ biết dùng protues thôi! mà sao bạn không dùng 74ls47 cho dễ viết code! mình còn gà quá! nhìn mấy hàm timer choáng thật!
                                Mà trong thư viện layout của orcad có con 7seg không? còn trong protues phải tạo linh kiện mới chuyển xang layout được!
                                à còn điều này nữa mạch layout trong protues đẹp hơn orcad nhiều
                                Web:
                                ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
                                -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X