วันพุธที่ 23 ตุลาคม พ.ศ. 2556

มาเรียนรู้ Shift Register กันเถอะ

             "  เกมส์งู " แท๊นแท่นน!!! เกมส์สุดคลาสสิคที่ทุกคนก็คงจะคุ้นเคยกันเป็นอย่างดีเพราะเราเล่นกันมานานมากทั้งในมือถือ ในคอมพิวเตอร์ แต่มันก็คงจะจำเจมาก ถ้าเรายังเล่นแบบเดิมๆกันอยู่ใช่ไหมคะ วันนี้เรามีสิ่งที่จะทำให้การเล่นเกมส์งูอันแสนน่าเบื่อดูมีความน่าสนใจขึ้นมา นั่นก็คือ Building the snake game using matrix LED with the Arduino " ซึ่งก็คือการทำเกมส์งูด้วยการใช้ matrix LED ที่ถูกควบคุมด้วย Arduino มาถึงตรงนี้หลายๆคนคงสงสัยใช่ไหมคะ เอ๊ะ! Matrix LED คืออะไรนะ? แล้วArduinoใช้ควบคุมได้อย่างไรล่ะ? ถ้าอยากจะทำเองบ้าง จะเริ่มทำอย่างไรดี? ดังนั้นวันนี้เรามาเรียนรู้ข้อมูลพื้นฐานที่เราจะไปใช้ทำเกมส์ของเรากันดีกว่าค่ะ Let's go!! ^^

วงจรเลื่อนข้อมูล(Shift Register)
                   
              รีจิสเตอร์ คือ กลุ่มของฟลิปฟลอปที่ต่อเรียงกันและทำงานร่วมกันใช้สำหรับเก็บข้อมูลหรือ เลื่อนข้อมูลรีจิสเตอร์ที่ใช้สำหรับเลื่อนข้อมูลเรียกว่า ชิฟท์รีจิสเตอร์ 
           
โครงสร้างของไบนารีรีจิสเตอร์
            จากรูปที่ 17.1  แสดงไบนารีรีจิสเตอร์เบื้องต้นขนาด 4 บิต ประกอบด้วย เจเค ฟลิปฟลอป 4 ตัว ต่อกันแบบคาสเคด

[image%5B61%5D.png]

รูปที่ 17.1 ชิฟท์รีจิสเตอร์ที่สร้างจาก เจเค ฟลิปฟลอป


การแบ่งกลุ่มรีจิสเตอร์ 
            การแบ่งกลุ่มรีจิสเตอร์สามารถแบ่งตามลักษณะการทำงาน และการต่อวงจร สามารถแบ่งออกเป็น 4 กลุ่มใหญ่ๆ ดังนี้ 
            - แบบอนุกรมเข้า    อนุกรมออก (SISO) 
            - แบบอนุกรมเข้า    ขนานออก (SIPO) 
            - แบบขนานเข้า     อนุกรมออก (PISO) 
            - แบบขนานเข้า     ขนานออก (PIPO) 


แบบอนุกรมเข้า – อนุกรมออก
              
จากรูปที่ 17.2  เป็นชิฟท์รีจิสเตอร์แบบอนุกรมเข้า - อนุกรมออก ข้อมูลแบบอนุกรมจะถูกป้อนเข้าที่อินพุต JAและข้อมูลอนุกรมออกที่เอาต์พุต QD­ 

[image%5B58%5D.png]


รูปที่ 17.2 วงจรรีจิสเตอร์แบบอนุกรมเข้า – อนุกรมออก

             แบบอนุกรมเข้า – ขนานออก 
            เมื่อนำข้อมูลอินพุตเข้าทีละหลัก แต่นำออกเอาต์พุตออกพร้อมกัน เรียกว่า แบบอนุกรมเข้า - ขนานออก ตัวอย่างวงจรเบื้องต้นดังแสดงในรูปที่ 17.3 


 [image%5B56%5D.png]

รูปที่ 17.3 วงจรรีจิสเตอร์แบบอนุกรมเข้า - ขนานออก
            
         จากรูปที่ 17.3  เป็นวงจรรีจิสเตอร์แบบอนุกรมเข้า ขนานออก ข้อมูลแบบอนุกรมจะถูกป้อนเข้าที่อินพุต JAและข้อมูลขนานออกที่เอาต์พุต QA ถึง QD­ 

             แบบขนานเข้า – อนุกรมออก
            เมื่อนำข้อมูลอินพุตเข้าพร้อมกัน แต่นำออกที่เอาต์พุตทีละหลัก เรียกว่า แบบขนานเข้า - อนุกรมออก วงจรชิฟท์รีจิสเตอร์แบบขนานเข้า อนุกรมออก ชนิดเก็บข้อมูลผ่านเกตควบคุมไปเข้าที่ขาพรีเซ็ตกับเคลียร์ของฟลิปฟลอปแต่ละตัวโดยตรง แสดงดังรูปที่ 17.4


 [image%5B54%5D.png]

[image%5B48%5D.png]

[image%5B53%5D.png]

รูปที่ 17.4 วงจรรีจิสเตอร์แบบขนานเข้า – อนุกรมออก ชนิดนำข้อมูลเข้าแบบไม่ต้องเข้าจังหวะ

[image%5B50%5D.png]

รูปที่ 17.5  วงจรรีจิสเตอร์แบบขนานเข้า – อนุกรมออก ชนิดนำข้อมูลเข้าแบบเข้าจังหวะ

                 แบบขนานเข้า – ขนานออก 
               เมื่อนำข้อมูลอินพุตเข้าพร้อมกัน และนำข้อมูลออกที่เอาต์พุตพร้อมกัน เรียกว่าแบบขนานเข้า – ขนานออก 


[image47.png]

รูปที่ 17.6  วงจรรีจิสเตอร์แบบขนานเข้า – ขนานออก

            จากรูปที่
17.6  เป็นวงจรรีจิสเตอร์แบบขนานเข้า ขนานออก ข้อมูลแบบขนานจะถูกป้อนเข้าที่อินพุต PA ถึง PDของฟลิปฟลอปทุกตัว และข้อมูลขนานออกที่เอาต์พุต QA ถึง QD 


ไอซีไบนารีรีจิสเตอร์
            ไอซีเบอร์ 7495  เป็นไอซีไบนารีรีจิสเตอร์ ขนาด 4 บิต แสดงลอจิกไดอะแกรม ดังรูปที่ 17.7 

[image44.png]


รูปที่ 17.7  ไอซีไบนารีรีจิสเตอร์ เลื่อนข้อมูลขวา/ซ้าย
              
                   วงจรลอจิกเกตที่ต่อเพิ่มเติม สามารถควบคุมให้รีจีสเตอร์สามารถเลื่อนข้อมูลไปทางซ้าย หรือ เลื่อนข้อมูลไปทางขวาได้ สำหรับการทำงานในการเลื่อนข้อมูลไปทางซ้าย เอ้าต์พุต Q ของฟลิบฟลอบ ตัวหลังจะต้องต่อย้อนกลับไปยังอินพุตของฟลิบฟลอบตัวหน้า ซึ่งสามารถใช้ไอซีออร์เกตเบอร์ 7432 มาต่อช่วยอีกตัวหนึ่ง และยังทำให้สามารถนำข้อมูลเข้าแบบขนานเข้าสู่รีจีสเตอร์ได้ด้วย 

การส่งถ่ายข้อมูลระหว่างรีจิสเตอร์ 


ในระบบงานดิจิตอล จำเป็นต้องส่งถ่ายข้อมูลจากรีจิสเตอร์ตัวหนึ่งไปยังรีจิสเตอร์อีกตัวหนึ่ง สามารถทำได้สองวิธี คือ การส่งถ่ายข้อมูลแบบอนุกรม และการส่งถ่ายข้อมูลแบบขนาน ดังแสดงใน รูปที่ 17.9 


[image38.png]

รูปที่ 17.9  การส่งถ่ายข้อมูลระหว่างรีจิสเตอร์ (แบบอนุกรม)

[image39.png]

การส่งถ่ายข้อมูลระหว่างรีจิสเตอร์ (แบบขนาน)


ดอทเมตริกซ์ (Dot Matrix)

            ดอทเมตริกซ์ (Dot Matrix) เป็นอุปกรณ์แสดงผล แบบเดียวกับ LED ค่ะ คือจะเป็นการนำเอา LED หลายๆตัวมาต่อเรียงกัน เป็นหลัก เป็นแถว ซึ่งเราจะเห็นการใช้งานดอมเมตริกซ์ในการทำป้ายไฟวิ่ง โดยเราจะนำเอาดอทเมตริกซ์ หลายๆตัวมาต่อกัน แล้วเขียนโปแกรมผ่านไมโครคอนโทลเลอร์ หรือ คอมพิวเตอร์ผ่านวงจรขับดอทเมตริกซ์ เราก็สามารถทำไฟวิ่งได้เช่นกันค่ะ



รูปภายในของดอทเมทริกซ์


ตัวอย่างวีดีโอที่น่าสนใจเกี่ยวกับShift Rehgister