วันจันทร์ที่ 7 กรกฎาคม พ.ศ. 2557

บทที่ 13 วงจรเข้ารหัส (Encoder) และ วงจรถอดรหัส (Decoder)

บทที่ 13 ::
วงจรเข้ารหัส (Encoder) และ วงจรถอดรหัส (Decoder)
<<    13.1 การออกแบบวงจรเข้ารหัส 
<<    13.2 การออกแบบวงจรเข้ารหัสด้วย VHDL
<<    13.3 การออกแบบวงจรถอดรหัส
<<    13.4 วงจรถอดรหัสเพื่อขับตัวแสดงผล
<<    13.5 การออกแบบวงจรถอดรหัสด้วย VHDL
<<    กลับหน้าหลัก 








    ในการเชื่อมต่อระหว่างระบบซึ่งใช้รหัสที่แตกต่างกันนั้น จำเป็นจะต้องมีการเปลี่ยนรหัสซึ่งปกติวงจรดิจิตอลนั้นจะใช้รหัสเป็นเลขฐานสองเสมอ เช่น 
ถ้าหากต้องการเปลี่ยนเลขฐานสิบ  0  ถึง  9   ไปเป็นเลขฐานสองก็จะต้องมีวงจรเปลี่ยนรหัส ปกติการเปลี่ยนรหัสจากวงจรสวิตช์กดที่ใช้แทนเลข ฐานสิบ
ให้เป็นเลขฐานสองเรียกกันว่าวงจรเข้ารหัส หรือวงจรเอนโค้ดเดอร์(Encoder) แต่ขณะเดียว กัน ถ้าหากต้องการเปลี่ยนรหัสจากรหัสบีซีดีเป็นรหัส
อย่างอื่น เรียกวงจรนั้นว่า วงจรถอดรหัสหรือวงจรดีโค้ดเดอร์ (Decoder) ซึ่งจะได้กล่าวรายละเอียดต่อไป
13.1 การออกแบบวงจรเข้ารหัส
        13.1.1 หลักการออกแบบวงจรเข้ารหัส
                            โครงสร้างของวงจรเข้ารหัส
  
                                          

                                                       รูปที่ 13.1 โครงสร้างของวงจรเข้ารหัส
      วงจรเข้ารหัสที่จะกล่าวต่อไปนี้    เป็นวงจรเข้ารหัสที่เปลี่ยนเลขฐานสิบจากแป้นพิมพ์หรือสวิตซ์กดให้เป็นรหัสบีซีดี ในขณะเดียวกันราสามารถแปลง
ตัวอักษรหรือเครื่องหมายใดๆ เป็นรหัส เลขฐานสองจากคีย์บอร์ดที่ต้องการได้ โดยใช้วงจรลอจิกเข้ามาช่วย วงจรนั้นเรียกว่า วงจรเข้ารหัสเช่นเดียวกัน    
      ในที่นี้จะยกตัวอย่างวงจรเข้ารหัสที่ทำหน้าที่แปลงเลขฐานสิบให้เป็นเลขฐานสอง (รหัสบีซีดี) ซึ่งเป็นวงจรพื้นฐานที่สามารถทำความเข้าใจได้ง่าย
 ดังแสดงในรูปที่ 13.1
 การทำงานของวงจร
      จากวงจรสถานะปกติทางอินพุตจะเป็นลอจิก “1” ขณะกดสวิตซ์จะทำให้อินพุตเป็นลอจิก “0” ทางด้านเอาต์พุตก็เช่นเดียวกันสถานะปกติจะเป็น
ลอจิก “0”แต่ขณะกดสวิตช์เอาต์พุตจะเป็นลอจิก “1” หรือ “0” นั้นขึ้นอยู่กับว่ากดสวิตซ์อันไหน ส่วนเอาต์พุตคีย์สโตรบ (Key Strobe = Ks)
จะทำหน้าที่ในการผลิตสัญญาณพัลส์ทุกๆ ครั้งที่กดสวิตช์ และใช้เป็นตัวควบคุมวงจรที่ต่อจากวงจรเข้ารหัสให้รับหรือเก็บสัญญาณที่ได้จากเอาต์พุต 
A, B, C และ D นอกจากนี้ยังมีหน้าที่อีกอย่างหนึ่ง คือ จะป้องกันไม่ให้วงจรที่ต่อจากวงจรเข้ารหัสนั้นรับสัญญาณใหม่อีกหลังการกดสวิตช์ตัวใดไป
แล้วและยังคงถูกกดอยู่ โดยปกติวงจรที่ต่อจากวงจรเข้ารหัส จะใช้ดีฟลิปฟลอปต่อเป็นตัวเก็บสัญญาณอีกขั้นตอนหนึ่ง แล้วใช้เอาต์พุตคีย์สโตรบต่อ
ผ่านวงจรโมโนสเตเบิลมัลติไวเบรเตอร์เข้าไปยังอินพุตคล็อกของดีฟลิปฟลอป การทำงานของวงจรในรูปที่ 13.2 จะเป็นไปตามตารางที่ 13.1
                                   
                                                     รูปที่ 13.2 แสดงวงจรเข้ารหัสแปลงรหัสจากเลขฐานสิบเป็นรหัสบีซีดี
                                                  

                                  ตารางที่ 13.1 ตารางความจริงของวงจรควบคุมเอาต์พุตของวงจรเข้ารหัสเบื้องต้น
           ในระบบดิจิตอลจะใช้ตัวเข้ารหัส (Encoder) แสดงในรูปที่ 13.3  เพื่อแปลงรหัสจากเลขฐานสิบให้เป็นรหัสบีชีดี  8421   ลักษณะ
ของตัวเข้ารหัสแบบนี้เรียกว่า   10-line-to-4-line priority Encoder หน้าที่ของตัวเข้ารหัส คือ  ทำการแปลงรหัสของข้อมูล   เพื่อให้
ระบบดิจิตอลสามารถนำข้อมูล ดังกล่าวนั้นไปทำงาน หรือไปประมวลผลการทำงานต่อได้อย่างถูกต้อง เช่น ตัวอย่างในรูปที่ 13.3 ตัวเข้ารหัส
จะแปลงรหัสเลขฐานสิบที่ได้รับจากแป้นพิมพ์ เพื่อแปลงรหัสเข้าในระบบเลขฐาน สอง เช่น รหัสบีซีดี 8421 เพื่อส่งข้อมูลดังกล่าวให
้หน่วยประมวลผลและหน่วยความจำ
                

                                      รูปที่ 13.3 แสดงระบบดิจิตอลที่ประกอบไปด้วยตัวเข้ารหัสและตัวถอดรหัส
         สำหรับตัว เข้ารหัสแบบ 10-1ine-to-4 line priority Encoder นั้น แสดงแผนภาพกรอบในรูปที่ 13.4 (ก) จะเห็นว่ามีอินพุต 1 ถึง 9
     และเอาต์พุตเป็นรหัสบีซีดี 8421 จำนวน 4 เอาต์พุต คือ A, B, C และ D ตัวเข้ารหัสนี้ทำงานด้วยลอจิก “0” (Active Low) ดังนั้นเมื่อคุณ
     ให้ลอจิก “0” (Low) ทางอินพุตขาที่ 3 เอาต์พุตบีซีดีจะมีค่า  คือ  นั่นเอง ลักษณะการจัดวางขาของแสดงในรูปที่ 13.4 (ข)
     เป็นตัวเข้ารหัสเบอร์ 74147 (10-1ine-to-4 line priority Encoder) จะเห็นว่ามีอินพุต 1 ถึง 9 และเอาต์พุต A, B, C และ D มีขา 
      ที่ขา 14 และขา GND ที่ขา 8 สำหรับขา 15 เป็นขา NC ไม่ได้ใช้งานการทำงานของตัวเข้ารหัสเบอร์ 74147 แสดงดังตารางใน
      รูปที่ 13.4 (ค) เนื่องจากตัวเข้ารหัสตัวนี้เป็นชนิดทำงานด้วยลอจิก “0” (Active Low Input) และเอาต์พุตเป็นแบบ (Active Low Output)
      พิจารณาการทำงานของตัวเข้ารหัสจากตารางความจริงในรูปที่ 13.4 (ค) ในบรรทัดแรกจะเห็นว่าเมื่อไม่ป้อนลอจิก “0” ให้กับอินพุต 1 ถึง 9
       เอาต์พุตจะเป็น “1” ทั้ง 4 บิต ต้องอินเวิร์ส ข้อมูลเอาต์พุตก่อนจึงจะถูกต้อง หรือการที่ป้อนลอจิก “0” เข้าที่ขา 9 เอาต์พุตจะแสดงข้อมูล 4 บิต
      เป็น LH HL เท่ากับ 0110 ต้องอินเวิร์ส ข้อมูลเอาต์พุตก่อน จะได้  สำหรับโครงสร้างภายในของ 10-1ine-to-4 line 
        priority Encoder แสดงในรูปที่ 13.4 (ง)   
              
                        
                             รูปที่ 13.4 แสดงรายละเอียดของ 10-1ine-to-4 line priority Encoder เบอร์ 74147
                                                      
                                        
        เมื่อนำวงจรเข้ารหัสเบอร์ 74147 ต่อกับสวิตซ์อินพุต เพื่อป้อนค่ารหัสสวิตซ์ฐานสิบ (0 ถึง 9) และรหัสบีซีดี 8421 ด้านเอาต์พุตขนาด 4 บิต 
ต่อผ่านนอตเกต 4 ตัว เพื่อให้แสดงผลได้อย่างถูกต้องเนื่องจากเอาต์พุตของ 74147 เป็นแบบ Active Low เอาต์พุต แสดงในรูปที่ 13.5 
                                          

                          รูปที่ 13.5 วงจรเข้ารหัสเลขฐานสิบด้วยสวิตซ์เป็นรหัสบีซีดี 8421 ขนาด 4 บิต
     13.1.2 วงจรเข้ารหัสเลขฐานสิบเป็นเลขฐานสอง
             วงจรเข้ารหัสจากเลขฐานสิบเป็นเลขฐานสองแสดงดังรูปที่ 13.6 โดยสวิตซ์ T แต่ละตัวจะแทนค่าเลขฐานสิบ   เช่น  T1   แทนเลข 1,  T2 
           แทนเลข 2 เป็นต้น ทางด้านเอาต์พุตเป็นเลขฐานสอง 4 บิต  D, C, B, A  เพื่อเปลี่ยนเอาต์พุตให้เป็นแบบ  Active High   จึงเพิ่ม นอตเกตเข้า
          ที่เอาต์พุตดังรูปที่ 13.6 
                  

                                            รูปที่ 13.6 แสดงวงจรเข้ารหัสเลขฐานสิบเป็นเลขฐานสอง
           จากรูปที่ 13.6 ถ้ากดสวิตซ์ T1จะได้เอาต์พุต DBCA เป็น 0001 ถ้ากดสวิตซ์ T2 จะได้เอาต์พุต DCBA เป็น 0010 ในกรณีที่กด
สวิตซ์มากกว่า 1 ตัวพร้อมกัน วงจรจะเลือกทำงานตามสวิตซ์ที่มีลำดับความสำคัญสูงสุด เช่น กดสวิตซ์ T1, T3 และ T6 พร้อมกัน วงจร
จะเลือกทำงานตามสวิตซ์ T6 คือมีเอาต์พุต DCBA เป็น 0110
      13.1.3 วงจรเข้ารหัสเลขฐานแปดเป็นเลขฐานสอง
                     วงจรเข้ารหัสเลขฐานแปดไปเป็นเลขฐานสองแสดงดังรูปที่ 13.7
                  

                                                                      รูปที่ 13.7 แสดงวงจรเข้ารหัสเลขฐานแปดเป็นเลขฐานสอง
      13.1.4 วงจรเข้ารหัสเลขฐานสิบหกเป็นเลขฐานสอง
                     วงจรเข้ารหัสเลขฐานสิบหกไปเป็นเลขฐานสอง แสดงดังรูปที่ 13.8 ได้จากการนำไอซีเบอร์ 74148 2 ตัวมาต่อร่วมกัน โดยการต่อขา 
                EI ของ 74148 ตัวที่เป็นลอจิกค่านัยสำคัญน้อยเข้ากับขา EO ของ 74148 ตัวที่เป็นลอจิกค่านัยสำคัญมาก ถ้าเพิ่มแอนด์เกตเข้ามาที่อินพุต 
               จะได้เอาต์พุตแบบ Active Low ดังวงจรรูปที่ 13.8 (ก) ถ้าเพิ่มแนนด์เกต เข้ามาที่อินพุต จะได้เอาต์พุตแบบ Active High ดังวงจรรูปที่ 
              13.8 (ข)
                                     
                                    
 
                                                      รูปที่ 13.8 แสดงวงจรเข้ารหัสเลขฐานสิบหกเป็นเลขฐานสอง 
                                                                                                                        << Go To Top
13.2 การออกแบบวงจรเข้ารหัสด้วย VHDL
           จากโครงสร้างของวงจรเข้ารหัสเราสามารถนำมาออกแบบด้วยภาษา VHDL ได้ดังนี้
-------------------------------------------------
-- 4:2 Encoder 
-------------------------------------------------
library ieee;
Use ieee.std_logic_1164.all;
-------------------------------------------------
Entity ENCODER is
Port( I: in std_logic_vector(3 downto 0);
      O: out std_logic_vector(1 downto 0) );
End ENCODER ;
-------------------------------------------------
Architecture behv of ENCODER is
    Begin
    -- process statement             
    Process (I)
    Begin
               
    -- use case statement 
     Case I is
      When "0001" => O <= "00";
      When "0010" => O <= "01";
      When "0100" => O <= "10";
      When "1000" => O <= "11";
      When others => O <= "XXXX";
      End Case;
      End Process;
               
       End behv;
Architecture when_else of ENCODER is
      Begin
               
    -- use when..else statement
      O <= "00" When I = "0001" Else
           "01" When I = "0010" Else
           "10" When I = "0100" Else
           "11" When I = "1000" Else
          "XXXX";
 End when_else;
                           รูปที่ 13.9 ตัวอย่างการออกแบบวงจร 2-line-to-4-line Encoder ด้วยภาษา  VHDL

                                                                                                                                                                           << Go To Top
13.3  การออกแบบวงจรถอดรหัส
          วงจรถอดรหัสเป็นวงจรทำหน้าที่เปลี่ยนจากเลขฐานสองไปเป็นเลขในระบบอื่น โครงสร้างของวงจรถอดรหัสจะเหมือนกับ 
       DMUX โดยนำ Select Input ไปใช้เป็นอินพุตของวงจร และนำ Data Input  ไปใช้เป็นขา Enable (E) หรือ 
      Strobe  (G) แสดงดังรูปที่ 13.10
       
                  
        
                                               รูปที่ 13.10 แสดงโครงสร้างของวงจรถอดรหัส
        เอาต์พุตของวงจรถอดรหัสจะเป็น Active Low ถ้าต้องการแบบ Active High ก็ต่อนอตเกตเข้าที่ขาเอาต์พุตขา Enable
     อาจจะมีมากกว่า 1 ขา และอาจเป็นแบบ Active High หรือ Active Low แต่ละสถานะของอินพุตจะทำให้เอาต์พุต Active
     เพียงครั้งละ 1 เอาต์พุตเท่านั้น ส่วนเอาต์พุตอื่นๆที่เหลือจะไม่ Active เอาต์พุตแบบ Active High จะสร้าง Minterm
         ในขณะที่เอาต์พุตแบบ Active Low จะสร้าง Maxterm ขนาดของวงจรถอดรหัสกำหนดในรูป “จำนวนอินพุต : จำนวน
    เอาต์พุต” หรือ “จำนวนอินพุต – to – จำนวนเอาต์พุต” หรือ “จำนวนอินพุต-line-to-จำนวนเอาต์พุต-line” หรือ
    “1-of-จำนวนเอาต์พุต” (เพราะว่า Active เพียง 1 เอาต์พุต จากจำนวนเอาต์พุตทั้งหมด)
        3.3.1 ไอซีที่เป็นวงจรถอดรหัส
 74138 3-Line-to-8-line Decoder/Demultiplexer เป็นไอซี ทำหน้าที่เปลี่ยนจากเลขฐานสอง (Binary) ไปเป็นเลขฐานแปด 
                 (Octal) บางครั้งเรียกว่า Binary-to-Octal Address Decoding
                  

                                                                                  รูปที่ 13.11 แสดงสัญลักษณ์ไอซีเบอร์ 74138
          74154   4-Line-to-16-line Decoder/Demultiplexer เป็นไอซีทำหน้าที่เปลี่ยนจากเลขฐานสอง (Binary) 
     ไปเป็นเลขฐานสิบหก (Hexadecimal) บางครั้งเรียกว่า Binary-to-Hexadecimal Address Decoding
                     

                                                                                  รูปที่ 13.13 แสดงสัญลักษณ์ไอซีเบอร์ 74154
            74159 4-line-to-16-line Decoder/Demultiplexer with Open-Collector Output มีคุณสมบัติ
    เหมือนไอซีเบอร์ 74154
    74139 Dual 2-line-to-4-line Decoder/Demultiplexer
                   
                                                 
                                                        รูปที่ 13.13 แสดงสัญลักษณ์ไอซีเบอร์ 74139
   74155 Dual 2-line-to-4-line Decoder/Demultiplexer
                       
                   

                                                                                รูปที่ 13.14 แสดงสัญลักษณ์ไอซีเบอร์ 74155
       
74156 Dual 2-line-to-4-line Decoder/Demultiplexer with Open-Collector Output มีคุณสมบัติเหมือนไอซีเบอร์ 74155
74137 3-line-to-8-line Decoder/Demultiplexer with Address Latch
7442 4-line BCD-to-10-line Decimal Decoder เป็นวงจรถอดรหัส ทำหน้าที่เปลี่ยนรหัส BCD 4 บิตไปเป็นเลขฐานสิบ ซึ่งมีการใช้
                    งานอินพุตในช่วง 0000 ถึง 1001 ส่วนกรณีอื่นๆ เอาต์พุตจะไม่ Active (เอาต์พุตเป็น 1)
                  

                                                                                   รูปที่ 13.15 แสดงสัญลักษณ์ไอซีเบอร์ 7442
    13.3.2 การเพิ่มจำนวนเอาต์พุตของวงจรถอดรหัส
  การเพิ่มจำนวนเอาต์พุตทำได้โดยวิธีเดียวกับ DMUX เช่นในรูปที่ 13.16 เป็นการนำ 2 :4 Decoder 2 ตัวมาต่อเป็น 3 : 8 Decoder
                                                               

                                   รูปที่ 13.16 แสดงการต่อวงจร 2 : 4 Decoder ใช้งานเป็น 3 : 8 Decoder
        ตัวอย่างที่ 13.1   จงใช้ไอซีเบอร์ 74138 3-line-to-8-line Decoder ออกแบบวงจรที่มีสมการลอจิกดังนี้
                        
                                  
      ตัวอย่างที่ 13.2 จงออกแบบวงจรคูณเลขฐานสองขนาด 2 บิต โดยใช้ 74154   4-line-to-16-line  Decoder

                                     วิธีทำ
                                                                       
                                                                      ตารางความจริง
                                           
           
                จากตารางความจริงเขียนสมการลอจิกได้เป็น
                                            
                                        
                                                                                                                            << Go To Top
  13.4 วงจรถอดรหัสเพื่อขับตัวแสดงผล
               ตัวถอดรหัส (Decoder) ซึ่งแสดงในระบบดิจิตอลในรูปที่ 13.3 จะพบว่าตัวถอดรหัสจะรับข้อมูลจากที่หน่วยประมวลผล
         และหน่วยความจำทำงานเสร็จแล้ว ข้อมูลดังกล่าวจะเป็นรหัสใดรหัสหนึ่งในระบบเลขฐานสอง ในรูปที่ 13.3 ข้อมูลที่เข้าสู่ตัว
        ถอดรหัสคือรหัสบีซีดี 8421 ตัวถอดรหัสจะแปลงรหัสดังกล่าวให้เป็นเลขฐานสิบ และแสดงผลที่ตัวแสดงผลไดโอดเปล่งแสง 7
        ส่วน ตัวถอด รหัสลักษณะนี้อาจเรียกได้ว่า BCD-to-seven -segment Decoder/Driver ลักษณะของตัวถอดรหัสบีซีดี 
        8421 ให้ไปแสดงผลที่ตัวเลข 7 ส่วนแสดงในรูปที่ 13.17 เมื่อนำข้อมูลรหัสบีชีดี 8421 4 บิตที่มีค่า 1001 เข้าที่อินพุตของ
        ตัวถอดรหัส (อินพุต A, B, C และ D) ทางด้านเอาต์พุตของตัวถอดรหัสจะส่งสัญญาณลอจิกไปควบคุม ตัวแสดงผลไดโอดเปล่ง
        แสง 7 ส่วนให้ตัดเป็นเลขฐานสิบเท่ากับ 9 จะสังเกตเห็นว่าเอาต์พุตของตัวถอดรหัสนี้ จะมี 7 ขา คือ a ถึง g เท่ากับจำนวนอินพุต
        ของตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน
                                      

                                           รูปที่ 13.17 แสดงการต่อตัวถอดรหัสกับตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน
            ตัวถอดรหัสนอกเหนือจากที่แสดงในรูปที่ 13.17 แล้ว ยังมีอีกหลายชนิด เช่น ตัวถอดรหัสเบอร์ 7442 ถอดรหัสบีซีดีเป็นเลขฐานสิบ
   (BCD-to-decimal) หรือตัวถอดรหัสเบอร์ 7443 ถอดรหัสเกิน 3 เป็นเลขฐานสิบ (Excess-3-to-decimal) หรือตัวถอดรหัสเกิน 3
   และรหัสเกรย์เป็นเลขฐานสิบ (Excess-3-gray-to-decimal) มีลักษณะการจัดวางขาดังรูปที่ 13.18 (ก) และ ตารางความจริงแสดง
    การทำงานของตัวถอดรหัสดังกล่าว ดังรูปที่ 13.18 (ข) และมีลักษณะโครงสร้างภายในของตัวถอด รหัสเบอร์ 7442, 7443 และ 7444
    ดังรูปที่ 13.18 (ค)
                                          
                                    รูปที่ 13.18 แสดงการวางขาตัวถอดรหัสเบอร์ 7442, 7443, 7444 และโครงสร้างภายใน
                                                          พร้อมทั้งตารางความจริงแสดงการทำงานของตัวถอดรหัส

                                
                   
                           

                                                                      

        13.4.1 ตัวแสดงผลไดโอเปล่งแสง 7 ส่วน
                         หลักการพื้นฐานในการแปลงรหัสที่เครื่องดิจิตอลทำงานได้มาสู่รหัสที่มนุษย์เข้าใจ คือ การแปลงระบบเลขฐานสอง  
                 เช่น รหัสบีชีดี 8421 ดังในรูปที่ 13.3 ซึ่งผ่านการประมวลผลจากหน่วยประมวลผลกลาง และหน่วยความจำมาแล้วมา
                 แสดงผลเป็นเลขฐานสิบที่ตัวแสดงผลไดโอดเปล่ง แสง 7 ส่วน ลักษณะของไดโอดเปล่งแสง 7 ส่วน แสดงในรูปที่ 13.19
               (ก) แต่ละส่วนมีชื่อเรียกตาม ลำดับอักษร a ถึง g เมื่อไดโอดเปล่งแสงทุกตัวติดสว่างจะเป็นเลข 8 ฐานสิบ จากรูปที่ 13.19
               (ข) คือการแสดงผลเป็นตัวเลข 0-9 (ฐานสิบ) โดยตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน ตัวที่ ทำหน้าแปลงรหัสที่เครื่องทำงาน
               ได้มาสู่รหัสที่มนุษย์รู้จักเรียกว่า ตัวถอดรหัส (Decoder)
                                             

                                     รูปที่ 13.19 แสดงตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน และตัวเลขฐานสิบ (0-9)
                        ลักษณะภายนอกของตัวแสดงผลไดโอดเปล่งแสง 7 ส่วนมีหลายแบบ เช่น ในรูปที่ 13.20 (ก) เป็นตัวแสดงผล 1 หลัก
          ตัวถังพลาสติกแบบ DIPปกติจะมี 14 ขา แบบที่สองแสดงในรูปที่ 13.20(ข) เป็นตัวแสดงผล 1 หลักเช่นกัน ตัวถังแบบ 10 ขา
           (10-Pin single digit package) และแบบหลายหลัก (Multidigit package) แสดงในรูปที่ 13.20 (ค)
                                                                 

                                 รูปที่ 13.20 แสดงลักษณะภายนอกของตัวแสดงผลไดโอดเปล่งแสง 7 ส่วนแบบต่างๆ
      โครงสร้างภายในของไดโอดเปล่งแสง 7 ส่วนคือ อุปกรณ์รอยต่อพี-เอ็น โดยปกติแต่ละส่วนจะกินกระแสไม่เกิน 30 mA เมื่อต่อ
 แหล่งจ่ายไบแอส 5 V จึงต้องมีตัวต้านทานจำกัดกระแส 150   ต่ออนุกรมอยู่ด้วย ดังรูปที่ 13.21 (ก) เพราะปกติจะทำงานที่แรงดัน
เพียง 1.7 – 2.1 V เท่านั้น เนื่อง จากไดโอด เปล่งแสงมี 2 ขั้วคือ แอโนด (A) และแคโทด (K) ดังนั้นจึงมีตัวแสดงผลไดโอดเปล่งแสง 
7 ส่วน 2 ชนิดคือ ชนิดแอโนดร่วม ดังรูปที่ 13.21 (ข) และชนิดแคโทดร่วม ดังรูปที่ 13.21 (ค) เมื่อต้องการให้ตัวแสดงผลไดโอด
เปล่งแสง 7 ส่วนชนิดแอโนดร่วมทำงาน ต้องป้อนลอจิก “0” เข้าที่อินพุตของมัน และที่จุดร่วมต้องต่อกับแรงดัน +5 V ดังรูปที่ 13.21
 (ง) ในทำนองเดียวกัน เมื่อต้องการให้ตัวแสดงผลไดโอดเปล่งแสง 7 ส่วนชนิดแคโทดร่วมทำงานต้องป้อนลอจิก “1” เข้าที่อินพุตและ
ที่จุดร่วมต้องต่อกับกราวด์ ดังรูปที่ 13.21 (จ)

                                                                          
 รูปที่ 13.21 แสดงโครงสร้างภายในและการควบคุมตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน ทั้งชนิดแอโนดร่วมและชนิดแคโทดร่วม
                      

                                                                               รูปที่ 13.21 (ต่อ)
    13.4.2 ตัวถอดรหัสบีซีดีขับออกตัวแสดงผลเลข 7 ส่วน
                    ตัวถอดรหัสที่เป็นที่นิยมใช้กันอย่างมากคือ ตัวถอดรหัสบีชีดี 8421 ให้เป็นเลขฐานสิบโดยขับสัญญาณออกที่ตัวแสดง
                 ผลไดโอดเปล่งแสง 7 ส่วน คือ วงจรรวมทีทีแอล เบอร์ 7447 และเบอร์ 7448 ดังแสดงในรูปที่ 13.22 (ก) คือเบอร์ 7447
                 มีขาอินพุดรับข้อมูลรหัสบีซีดี 8421จำนวน4 บิต (คือ A, B, C และ D) และมีขาอินพุตควบคุมอีก 3 ขาคือ ขา Lamp test 
                (LT) และ Blanking (BI/RBO) และขา Zero blanking (RBI) สำหรับขาเอาต์พุตของมันมี 7 ขาคือ ขา a ถึง g 
                ที่จะนำไปต่อขับตัวเลข 7 ส่วนเพื่อแสดงผลเลขฐานสิบได้ สำหรับเบอร์ 7447 ใช้สำหรับขับตัวเลข 7 ส่วนชนิดแอโนดร่วม
                เท่านั้น ตารางการทำงานของตัวถอดรหัสเบอร์ 7447 แสดงในรูปที่ 13.22 (ข) และรหัสเลขฐานสิบที่ตัวถอดรหัสนี้ถอด
               ได้แสดงในรูปที่ 13.22 (ค)
                                                                     
                               

                                                                                                                      (ข)
                
                    รูปที่ 13.22 แสดงลักษณะของตัวถอดรหัสเบอร์ 7447 และตารางแสดงการทำงานของตัวถอดรหัส
                                          และเอาต์พุตที่ตัวถอดรหัสขับออกที่ตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน
                              
                                                                                                         รูปที่ 13.22 (ต่อ)
           สำหรับการทำงานของขา LT, BI/RBO และ RBI ให้ดูจากตารางในรูปที่ 13.22 (ข) ที่ข้อ 2, 3 และ 4 ของบันทึกท้ายตาราง
 ตัวถอดรหัสตัวนี้เป็น ชนิดทำงานด้วยลอจิก “0” (Active Low Input) และแสดงผลแบบ Active Low Output หมายความว่า
  เมื่อบีซีดีอินพุตเป็น 0001 เอาต์พุตที่ b และ c จะเป็น “0” (Low) ทำให้ตัวเลข 7 ส่วนชนิดแอโนดร่วมติดสว่างเฉพาะส่วน b และ c 
ปรากฏเป็นเลข 1 ตามรูปที่ 13.22 (ค) ดังนั้นการต่อตัวถอดรหัสเบอร์ 7447 เพื่อขับตัวเลข 7 ส่วนชนิดแอโนดร่วมที่ ถูกต้อง ดังแสดง
ในรูปที่ 13.23
                               

                   รูปที่ 13.23 การต่อวงจรตัวถอดรหัสเบอร์ 7447เพื่อขับตัวแสดงผลไดโอดเปล่งแสง 7 ส่วนชนิดแอโนดร่วม
                  โครงสร้างภายในของตัวถอดรหัสเบอร์ 7447 ในรูปที่ 13.24 จะเห็นว่าประกอบไปด้วยบีชีดีอินพุต 4 อินพุต และอินพุต
   ควบคุม 3 อินพุต คือ LT, BI/RBO, RBI และเอาต์พุตจำนวน 7 เอาต์พุต คือ a - g
                                                    

                                               รูปที่ 13.24 แสดงโครงสร้างภายในของตัวถอดรหัสเบอร์ 7447
             สำหรับตัวถอดรหัสเบอร์ 7448 เป็นตัวถอดรหัสที่ออกแบบมาเพื่อขับตัวแสดงผลไดโอด เปล่งแสง 7 ส่วน ชนิดแคโทดร่วม
     เท่านั้น เป็นชนิด Active Low Input แต่ Active High Output ซึ่งเป็นเอาต์พุตชนิดตรงกันข้ามกับเบอร์ 7447 แต่อินพุตรับ
     สัญญาณแบบเดียวกัน สำหรับการ จัดวางขาเหมือนกับ 7447 ในรูปที่ 13.25 (ก) และตารางการทำงานแสดงในรูปที่ 13.25 (ข) 
    สำหรับโครงสร้างภายในของตัวถอดรหัสเบอร์  7448 แสดงในรูปที่ 13.25 (ค)
                                                                

                  รูปที่ 13.25 แสดงโครงสร้างภายใน ลักษณะการจัดวางขาและตารางการทำงานของตัวถอดรหัสเบอร์ 7448
 
 
         
         

                                                                                 รูปที่ 13.25 (ต่อ)
                                                   

                                                                               รูปที่ 13.25 (ต่อ)
         ตัวอย่างการใช้งานขา Blanking (BI/RBO) และขา Zero blanking (RBI) เช่น การแสดงผลของเครื่องมือวัดที่
แสดงตัวเลขฐานสิบด้วยตัวเลข 7 ส่วน จำนวน 6 หลัก ดังรูปที่ 13.26 สมมติว่าข้อมูลบีซีดี 8421 4 บิต ป้อนเข้าและหลักดังนี้
 0000, 0000, 0011, 0110, 0001, 0101 ตัวแสดงผลทั้ง  6 หลักจะแสดงเฉพาะ 4 หลักเท่านั้นคือ 36.15 แต่ 2 หลักแรก
มีข้อมูลเป็น “0” ทุกบิต แต่ไม่แสดงผลเป็นเลขศูนย์ เพราะมีวงจรตรวจสอบลอจิกอินพุต 4 บิต ของหลักสูงสุดตามลำดับ และ
ส่งสัญญาณลอจิก “0” ไปควบคุมขา Zero blanking (RBI) ให้ได้รับลอจิก “0” จากตารางการทำงานในรูปที่ 13.22 (ข)
พบว่าตัวแสดงผลทุกส่วนจะดับหมด ดังนั้นตัวเลขสูงสุด 2 หลักซ้ายสุดจะไม่ติดสว่าง ดังรูปที่ 13.26
                      
                                                  

               รูปที่ 13.26 การควบคุมขา Zero blanking เพื่อควบคุมการแสดงของตัวแสดงผลไดโอดเปล่งแสง 7 ส่วน
     
                                                                                                                                   << Go To Top
13.5 การออกแบบวงจรถอดรหัสด้วย VHDL
         เราสามารถออกแบบวงจร Decoder โครงสร้างของวงจรด้วยภาษา VHDL ได้ดังรูปที่ 13.27 ซึ่งเป็นวงจร 2-line-to-4-line Decoder
-------------------------------------------------
-- 2:4 Decoder 
-- decoder is a kind of inverse process
-- of multiplexer
-------------------------------------------------
library ieee;
Use ieee.std_logic_1164.all;
-------------------------------------------------
Entity DECODER is
Port( I: in std_logic_vector(1 downto 0);
      O: out std_logic_vector(3 downto 0) );
End DECODER;
-------------------------------------------------
Architecture behv of DECODER is
    Begin
    -- process statement             
    Process (I)
    Begin
               
    -- use case statement 
     Case I is
      When "00" => O <= "0001";
      When "01" => O <= "0010";
      When "10" => O <= "0100";
      When "11" => O <= "1000";
      When others => O <= "XXXX";
      End Case;
      End Process;
               
       End behv;
Architecture when_else of DECODER is
      Begin
               
    -- use when..else statement
      O <= "0001" When I = "00" Else
           "0010" When I = "01" Else
           "0100" When I = "10" Else
           "1000" When I = "11" Else
          "XXXX";
 End when_else;
             
                            รูปที่ 13.27 ตัวอย่างการออกแบบวงจร 2-line-to-4-line Decoder ด้วยภาษา  VHDL

ไม่มีความคิดเห็น:

แสดงความคิดเห็น