Thông báo

Collapse
No announcement yet.

e hỏi về ngắt của con 89c51

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

  • e hỏi về ngắt của con 89c51


    mn xem nguyen li của nó đúng ko ạ
    Bình thường thì con LED phát, phát liên tục ánh sáng hồng ngoại đến LED thu làm led thu dẫn, khi đó thì chân ngắt của VĐK nối với LED thu sẽ được xuống âm nguồn thông qua con LED thu (như vậy chân ngắt ở mức thấp). Khi có 1 sản phẩm đi qua, chùm sáng hồng ngoại từ LED phát đến LED thu bị gián đoạn, làm cho LED thu ngưng dẫn và khi đó thì chân ngắt được kéo lên mức cao nhờ điện trở 10k sẽ tạo ra một ngắt đưa vào chân ngắt vdk( P3.3)

  • #2
    các tiền bối đâu hết rồi ạ

    Comment


    • #3
      Click image for larger version

Name:	IR.png
Views:	1
Size:	36.4 KB
ID:	1379413
      Nguyên văn bởi goodmen269 Xem bài viết

      mn xem nguyen li của nó đúng ko ạ
      Bình thường thì con LED phát, phát liên tục ánh sáng hồng ngoại đến LED thu làm led thu dẫn, khi đó thì chân ngắt của VĐK nối với LED thu sẽ được xuống âm nguồn thông qua con LED thu (như vậy chân ngắt ở mức thấp). Khi có 1 sản phẩm đi qua, chùm sáng hồng ngoại từ LED phát đến LED thu bị gián đoạn, làm cho LED thu ngưng dẫn và khi đó thì chân ngắt được kéo lên mức cao nhờ điện trở 10k sẽ tạo ra một ngắt đưa vào chân ngắt vdk( P3.3)
      dùng tran hoặc dung OAMP cũng đc.muốn gọn thì làm theo hình

      Comment


      • #4
        Nguyên văn bởi Thái Tuế_vy Xem bài viết
        [ATTACH=CONFIG]66909[/ATTACH]
        dùng tran hoặc dung OAMP cũng đc.muốn gọn thì làm theo hình
        nếu mắc theo kiểu trên thì có bị nhiễu ko bác nhỉ

        Comment


        • #5
          photo transistor mắc khác led thu hồng ngoại, cái mạch của bạn con led phát thì nên kéo qua con trở 1k lên vcc kẻo chết led, con led thu thì mắc ngược chiều nó lại
          Website chính thức đổi địa chỉ website thành
          Mời các bạn ghé thăm !!!

          Comment


          • #6
            led phát kéo trở lên nhưng theo mình nên dùng 220 ohm cho nó sáng khỏe. mạch thu thì bác dùng như vậy cũng ổn rồi, chú ý tránh nhiễu cho nó bằng việc bịt cẩn thận đầu thu và đầu phát nhé.
            Nguyễn Huy Biên - 01649 802 694
            gmail :

            Comment


            • #7
              Nguyên văn bởi mast090 Xem bài viết
              photo transistor mắc khác led thu hồng ngoại, cái mạch của bạn con led phát thì nên kéo qua con trở 1k lên vcc kẻo chết led, con led thu thì mắc ngược chiều nó lại
              220 ôm chả bao giờ chết đc led cả bạn ơi.phân tích mạch 1 tẹo nha.ban đầu led phát sáng.led thu nhận đc ánh sáng.Cực C thông với cực E.dòng điện sẽ chảy tử C-> E.điện áp trên chân B của Q1 <0.7V,tran Q1 chưa đóng điện áp tại INT =5V.khi không nhận đc ánh sáng .cực C ko thông với cực E.điện áp trên chân B của Q1 >0.7V => Ube >0.7v => tran Q1 đóng => điện áp trên INT =0 và bằng GND.đấy là lý thuyết cơ bản của transistor.mà ts phải mắc ngược lại nhể.bạn nói đến cảm biến chứ U hay là 1 con led phát + 1 photo tran

              Comment


              • #8
                Nguyên văn bởi Thái Tuế_vy Xem bài viết
                220 ôm chả bao giờ chết đc led cả bạn ơi.phân tích mạch 1 tẹo nha.ban đầu led phát sáng.led thu nhận đc ánh sáng.Cực C thông với cực E.dòng điện sẽ chảy tử C-> E.điện áp trên chân B của Q1 <0.7V,tran Q1 chưa đóng điện áp tại INT =5V.khi không nhận đc ánh sáng .cực C ko thông với cực E.điện áp trên chân B của Q1 >0.7V => Ube >0.7v => tran Q1 đóng => điện áp trên INT =0 và bằng GND.đấy là lý thuyết cơ bản của transistor.mà ts phải mắc ngược lại nhể.bạn nói đến cảm biến chứ U hay là 1 con led phát + 1 photo tran
                photodiode khác phototransistor. cách hiểu của bạn là đang nói tới phototransistor thì sẽ có dòng từ C xuống E. còn ở đây là photodiode. vậy nên áp đặt tại Anot của diode so vs Katot, ở đây đây Katot nối mass mà diode thì luôn giữ 0.7V áp rơi. vì vậy sẽ ko có bất kì 1 sự thay đổi áp nào tại chân INT chính là cực Anot của diode cả. đó là lý do nó mắc ngựoc lại
                Website chính thức đổi địa chỉ website thành
                Mời các bạn ghé thăm !!!

                Comment


                • #9
                  Nguyên văn bởi mast090 Xem bài viết
                  photodiode khác phototransistor. cách hiểu của bạn là đang nói tới phototransistor thì sẽ có dòng từ C xuống E. còn ở đây là photodiode. vậy nên áp đặt tại Anot của diode so vs Katot, ở đây đây Katot nối mass mà diode thì luôn giữ 0.7V áp rơi. vì vậy sẽ ko có bất kì 1 sự thay đổi áp nào tại chân INT chính là cực Anot của diode cả. đó là lý do nó mắc ngựoc lại
                  Chuẩn ko cần chỉnh.Nhưng trên sơ đồ ghi là cái gì hả bạn.
                  Bonus cho bạn cái này: Sensors, Transducers : Index 15 - Category Index - ICTradeNet.com

                  Comment


                  • #10
                    Nguyên văn bởi goodmen269 Xem bài viết

                    mn xem nguyen li của nó đúng ko ạ
                    Bình thường thì con LED phát, phát liên tục ánh sáng hồng ngoại đến LED thu làm led thu dẫn, khi đó thì chân ngắt của VĐK nối với LED thu sẽ được xuống âm nguồn thông qua con LED thu (như vậy chân ngắt ở mức thấp). Khi có 1 sản phẩm đi qua, chùm sáng hồng ngoại từ LED phát đến LED thu bị gián đoạn, làm cho LED thu ngưng dẫn và khi đó thì chân ngắt được kéo lên mức cao nhờ điện trở 10k sẽ tạo ra một ngắt đưa vào chân ngắt vdk( P3.3)
                    Mình toàn làm thế này. chạy ok. chỉ có điều nếu làm đếm sản phẩm thì cần phải - 1 vì khi vừa cấp nguồn thì nó đã đếm lên 1 rồi

                    Comment


                    • #11
                      Nguyên văn bởi quang_le_pt Xem bài viết
                      Mình toàn làm thế này. chạy ok. chỉ có điều nếu làm đếm sản phẩm thì cần phải - 1 vì khi vừa cấp nguồn thì nó đã đếm lên 1 rồi
                      chuẩn luôn có cách nào khắc phục ko bác nhỉ

                      Comment


                      • #12
                        Code của mình bạn xem thử nhé
                        #include <REGX51.H>
                        sbit b=P3^6;
                        sbit c=P3^7;
                        unsigned long int h=0,k=0;
                        unsigned char u[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
                        void delay(unsigned int t)
                        { unsigned int i;
                        for(i=0;i<t;i++);
                        }
                        void quet(unsigned int a)
                        { unsigned int chuc,donvi;
                        //__________________________________________________ ____________________

                        chuc=a/10;
                        donvi=a%10;
                        //__________________________________________________ _______________________



                        P1=u[chuc]; b=1;
                        delay(50);

                        P1=b=0;

                        P1=u[donvi]; c=1;
                        delay(50);

                        P1=c=0;


                        }
                        void main()
                        {
                        IE=0x81;
                        IT0=1;
                        while(1)
                        {
                        quet(k);
                        }
                        }
                        void ngat0 (void) interrupt 0
                        {
                        h++;
                        if(h>=2)
                        {k++;}
                        if(k==100 )
                        {k=0;}
                        }

                        Click image for larger version

Name:	Untitled.png
Views:	1
Size:	61.2 KB
ID:	1379500

                        Comment


                        • #13
                          ô mình tưởng ngắt INT1 ở mức thấp, mạch bạn thiết kế ngắt thế lúc mà chưa có sp thì lúc nào cũng xảy ra ngắt mà. và IE chọn ngắt theo sườn thế kia thì (theo mạch phần cứng của bạn) khoảng 2 xung mới ngắt 1 lần. như thế 2sp qua thì mới báo 1, 3 sp qua mới báo 2...

                          Comment


                          • #14
                            Nguyên văn bởi quang_le_pt Xem bài viết
                            Code của mình bạn xem thử nhé
                            #include <REGX51.H>
                            sbit b=P3^6;
                            sbit c=P3^7;
                            unsigned long int h=0,k=0;
                            unsigned char u[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
                            void delay(unsigned int t)
                            { unsigned int i;
                            for(i=0;i<t;i++);
                            }
                            void quet(unsigned int a)
                            { unsigned int chuc,donvi;
                            //__________________________________________________ ____________________

                            chuc=a/10;
                            donvi=a%10;
                            //__________________________________________________ _______________________



                            P1=u[chuc]; b=1;
                            delay(50);

                            P1=b=0;

                            P1=u[donvi]; c=1;
                            delay(50);

                            P1=c=0;


                            }
                            void main()
                            {
                            IE=0x81;
                            IT0=1;
                            while(1)
                            {
                            quet(k);
                            }
                            }
                            void ngat0 (void) interrupt 0
                            {
                            h++;
                            if(h>=2)
                            {k++;}
                            if(k==100 )
                            {k=0;}
                            }

                            [ATTACH=CONFIG]67039[/ATTACH]
                            chắc là do led bị nhiễu bác ạ
                            không biết nên khắc phục thế nào

                            Comment


                            • #15
                              disable ngắt cho đến khi ổn định sau đó mới cho phép ngắt( nếu dùng ngắt) có thể giải quyết được vấn đề của bạn
                              Nguyễn Huy Biên - 01649 802 694
                              gmail :

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X