Microcontroller      Mr.Adisak Chinawong

           Back to menu

  โครงงานที่ 07  บอร์ดนับขึ้น -ลง 0000-9999


ขอบเขต

  • ใช้สำหรับการนับสิ่งของหรือวัตถุใดๆ ได้ถึงจำนวน 0000 - 9999
  • มีตำแหน่งของจุดจัมเปอร์ให้เลือกวิธีการนับ โดยสามารถนับขึ้นจาก 0000 - 9999 หรือนับลงจาก 9999 - 0000
  • สามารถนำไปดัดแปลงใช้ในงานอื่นๆได้เช่น นับจำนวนคนเข้าห้องสมุด นับจำนวนขวด
  • มีอินพุตไว้สำหรับต่อกับอุปกรณ์เซนเซอร์ภายนอก(เลือกได้แล้วแต่จุดประสงค์การนำไปใช้)
  • สามารถใช้แหล่งจ่ายไฟจากแบตเตอรี่ได้
  • นำไปดัดแปลงใช้งานอื่นๆได้หลากหลาย

วงจรและผังงาน

        จากการทำงานของวงจรในรูป 1 แหล่งจ่ายไฟได้มาจากอแดปเตอร์ AC 6 Volt หรือ DC 6 Volt โดยผ่านไดโอด DB1 ซึ่งเป็นวงจรแบบบริดจ์เรกติไฟเออร์ เพื่อจัดขั้วของอแดปเตอร์ที่ต่อเข้ากับ IC1 เบอร์ LM7805 ทำหน้าที่รักษาระดับแรงดันเอาต์พุตที่คงที่ 5 โวลต์ป้อนเป็นไฟเลี้ยงให้กับวงจร โดยมี ตัวต้านทาน R1 จำกัดกระแสให้กับ LED1 ซึ่งแสดงสถานะการทำงานของ วงจร ตัวเก็บประจุ C1, C2 จะทำหน้าที่กรองแรงดันที่เกิดจากการกระเพือมของสัญญาณ โดยมี C3,C4 ทำหน้าที่กรองความถี่สูงทิ้งไป ซึ่งอาจเกิดจากวงจรภายในของไอซีนั้นเอง

       IC2 เป็นไอซีไมโครคอนโทรลเลอร์เบอร์ AT89C1051 ของ ATMEL ได้มีการโปรแกรมข้อมูลที่เป็นขั้นตอนการทำงานไว้ภายในแล้ว C3, R2 และ SW1 จะเป็นส่วนของการรีเซต และ C4, C5, X1 เป็นการสร้างสัญญาณนาฬิกาให้กับ ไอซี ซึ่งส่วนของ IC2 จะทำหน้าที่ควบคุมและสั่งงานในส่วนของโปรแกรมทั้งหมดส่วนของอินพุตจะให้มีการนับที่สภาวะลอจิก "0" โดยการกำหนดที่ขา 6 ของไอซี หรือทำการกดที่สวิตซ์ SW3 ส่วนทรานซิสเตอร์ TR1,TR2,TR3,TR4 จะทำหน้าที่เป็นสวิตซ์กำหนดการเลือกใช้งานของแอลอีดี 7 ส่วน แบบคอมมอนแอโนดในแต่ละหลัก และถูกกำหนดโดยสถานะลอจิกที่ขา 9,8,7,11 ของ IC2 โดยมี R4,R5,R6,R7,R8,R9,R10,R11 ทำหน้าที่จำกัดกระแสให้กับแอลอีดีในแต่ละส่วน จัมเปอร์ JP1 จะเลือกให้เป็นการนับขึ้น หรือนับลง โดยถ้ากำหนดให้ JP1 ปิด(Close "0" ) จะทำให้เป็นการนับขึ้น และถ้ากำหนดให้ JP1 เปิด (Open "1" ) จะทำให้เป็นการนับลง

โปรแกรม Download    ASM,HEX

อธิบายส่วนต่างๆของโปรแกรม

DIGIT3 EQU P3.5 ;เป็นไดเร็กทีพที่ใช้กำหนดค่าที่ DIGIT3 (LED หลัก 3) แทน P3.5
DIGIT2 EQU P3.4 ;เป็นไดเร็กทีพที่ใช้กำหนดค่าที่ DIGIT2 (LED หลัก 2) แทน P3.4
DIGIT1 EQU P3.3 ;เป็นไดเร็กทีพที่ใช้กำหนดค่าที่ DIGIT1 (LED หลัก 1) แทน P3.3
DIGIT0 EQU P3.7 ;เป็นไดเร็กทีพที่ใช้กำหนดค่าที่ DIGIT0 (LED หลัก 0) แทน P3.7
SELECT EQU P3.1 ;เป็นไดเร็กทีพที่ใช้กำหนดค่าที่ SELECT (UP-DOWN) แทน P3.1
SW_DATA EQU P3.2 ;เป็นไดเร็กทีพที่ใช้กำหนดค่าที่ SW_DATA (INPUT) แทน P3.2
FLAG_00XX EQU 2FH.0 ;เป็นไดเร็กทีพที่ใช้แสดงสถานะของ 2 หลักหน้าแทนตำแหน่ง 2FH.0
ORG 25H ;กำหนดตำแหน่งแอดเดรสในหน่วยความจำข้อมูล
DATA: DS 04H ;ทำการจองเนื้อที่ตำแหน่งหน่วยความจำข้อมูลขนาด 4 ไบต์



             การทำงานของแต่ละคำสั่งจะใช้เวลาในการประมวลผลที่แตกต่างกันไปโดยนับหน่วยของรอบการทำงานหรือ
                แมชชีนไซเคิล (Machine Cycle) ซึ่งสามารถหาได้จาก T = MC x 12/f-xtal
                เมื่อ T : คือค่าเวลาที่ใช้ในการประมวลผลคำสั่ง
                MC : คือจำนวนแมชชีนไซเคิล
                f-tal : คือค่าความถี่ของคริสตอลที่ใช้
               12 : คือใน 1 แมชชีนไซเคิล CPU จะใช้ สัญญาณนาฬิกา 12 ลูก

ถ้าใช้คริสตอลค่า 11.0592 MHz ใน1 Machine Cycle ไมโครคอนโทรลเลอร์จะใช้คล็อก 12 ลูก และจะใช้เวลาเท่ากับ 1 x (12/11.0592x10(6) )=1.085 Usec
ตัวอย่างที่1 ให้หาค่าจำนวนแมชชีนไซเคิล (Machine Cycle) โดยแสดงเป็น Timing Diagram
MAIN: (1) SETB P1.5 จำนวนแมชชีนไซเคิล = 1 MC
             (2) CLR P1.5 จำนวนแมชชีนไซเคิล = 1 MC
             (3) SJMP MAIN จำนวนแมชชีนไซเคิล = 2 MC
                   END
                  โปรแกรมจะทำงานดังนี้
          MC = (1)+(2)+(3)+(1)+(2)+(3)+... เขียนเป็นTimeming Diagram จะได้ดังนี้ (ถ้า P1.5 มีค่าเริ่มต้นที่ LOW)

การหาค่าจำนวนแมชชีนไซเคิล (Machine Cycle) โดยหน่วงเวลาแบบ 2 ลูป

จะคิดจาก LOOP ในคูณ LOOPนอก แสดงได้ดังตัวอย่าง

DELAY: MOV R0, #02 ;จำนวนแมชชีนไซเคิล = 1
DELAY1: MOV R1, #03 ;จำนวนแมชชีนไซเคิล = 1 x R0
DJNZ R1, $ ;จำนวนแมชชีนไซเคิล = 2 x R1 x R0
DJNZ R0, DELAY1 ;จำนวนแมชชีนไซเคิล = 2 x R0
RET ;จำนวนแมชชีนไซเคิล = 2

MC = 1 + R0 + 2R0R1 + 2R0 + 2
MC = 3+ R0 +2R1R0 +2R0
MC = 3+R0+2R1R0
MC = 3+R0 ( 3 + 2R1 )
แทนค่า R0 ด้วย N1 และ R1 ด้วย N2 สามารถสรุปสูตรได้เป็น

MC = 3+N1 ( 3 + 2N2 )

ลายวงจรพิมพ์

   Download PCB  


กลับลายวงจรพิมพ์ด้วย


การสร้าง

        เริ่มจากให้เตรียมอุปกรณ์ให้ครบตามรายการ และจัดทำแผ่นวงจรพิมพ์ที่กัดลายทองแดงตามรูป 2 ทำการเจาะรูและตะไบตำแหน่งที่จะใส่ไอซีเรกกูเรเตอร์ LM7805 ก่อน จากนั้นให้วางอุปกรณ์ทุกตัวลงแผ่นวงจรพิมพ์ตามรูป 3 โดยเริ่มต้นจากการวางอุปกรณ์ โดยให้ใส่ลวดจัมเปอร์ลงไปก่อน แล้วตามด้วยไดโอดและตัวต้านทาน จากนั้นใส่ไอซี 7805 การวางไอซีจะคว่ำหน้าลงโดยให้ตรงกับตำแหน่งของช่องที่ตะไบไว้ ตามรูปที่ 4 หลังจากบัดกรีแล้วยังไม่ต้องใส่แผ่นระบายความร้อน จากนั้นให้ใส่ซ็อคเก็ตไอซี แอลอีดี 7 ส่วนและตัวเก็บประจุ แล้วใส่อุปกรณ์ที่มีความสูงตามลำดับ และหลังจากบัดกรีอุปกรณ์เสร็จแล้วให้ใส่แผ่นระบายความร้อนกับไอซี 7805 ขันน็อตยึดให้แน่น นำ IC2 ที่โปรแกรมแล้วมาเสียบลงบนซ็อคเก็ตไอซี หลังจากนั้นให้ตรวจสอบความเรียบร้อย ดูการวางอุปกรณ์ว่าถูกต้องหรือไม่ จุดบัดกรีใต้แผ่นวงจรพิมพ์ และเศษตะกั่ว อย่าให้ติดค้างในส่วนของลายวงจรพิมพ์อาจทำให้เกิดการลัดวงจรได้้   

ปัญหาและการแก้ไข

      1 ถอดไอซี AT89C2051 ออกจากบอร์ด
      2 เสียบแจ็คอแดปเตอร์ AC หรือ DC เข้าสู่บอร์ด สังเกตที่ LED1 จะต้องสว่าง แสดงว่ามีไฟ +VCC 5 โวลท์ในวงจร ถ้าLED1ไม่สว่างให้ตรวจสอบแรงดันที่ป้อนจากอแดปเตอร์ ,ขั้วของไดโอดบริดจ์ ,ขั้วของตัวเก็บประจุ ไอซี 7805 และ ขั้วของ LED1 ตามลำดับ
      3 ให้ใช้สายไฟขนาดเล็ก (สายโทรศัพท์) เสียบที่ขา 10 ( Ground )ของซ็อกเก๊ต IC1จากนั้นให้นำปลายสายอีกข้างหนึ่งไปเสียบกับขา 9 เพื่อกำหนดให้ TR4 นำกระแส หลังจากนั้นให้นำสายเส้นที่สองทำการต่อปลายสายด้านหนึ่งกับขาที่ 10 และปลายสายอีกด้านหนึ่งนำไปแตะกับขาที่ 12 (P1.0) ถึงขาที่ 19 (P1.7) จนครบทุกขาสังเกตที่ LED 7 ส่วนจะต้องสว่างทุกเซกเมนต์ที่สัมผัสถูกขา ถ้าไม่สว่างให้ตรวจสอบลาย PCB อาจจะลัดวงจรถึงกันได้ แต่ถ้าไม่สว่างทุกเซกเมนต์ ให้ทำการตรวจสอบทรานซิสเตอร์ TR4
      4 จากขั้นตอนที่ 3 ให้ทำการทดลองแอลอีดี 7 ส่วนในหลักต่อไป โดยเปลี่ยนปลายสายเส้นแรกไปตำแหน่งที่ขา ขาที่ 8 (TR3) ขาที่ 7 (TR2) และ ขาที่ 11 (TR1) ตามลำดับ จะทำให้เป็นสถานะ "0" ที่ขาเบสของทรานซิสเตอร์ ทำให้นำกระแสได้ จากนั้นให้ทดลอง ตามขั้นตอนที่ 3 โดยตรวจสอบเพียงเซกเมนต์เดียว
      5 ขั้นตอนสุดท้ายให้ใส่ IC2 ลงบนซ็อกเก็ต ปิดจัมเปอร์ JP1 แล้วทำการกดสวิตซ์ SW3 สังเกตที่แอลอีดี 7 ส่วนจะทำการนับขึ้นทีละหนึ่งค่า หลังจาก ปล่อยมือจากคีย์สวิตซ์ จากนั้นให้เปิดจัมเปอร์ JP1 แล้วทำการกดสวิตซ์รีเซตใหม่ และหลังจากนั้นให้ทำการกดสวิตซ์ SW3 สังเกตที่แอลอีดี 7 ส่วน จะทำการนับลงทีละหนึ่งค่า หลังจากปล่อยมือจากคีย์สวิตซ

การประยุกต์ใช้งาน


    สามารถนำไปดัดแปลงใช้ในงานอื่นๆได้เช่น นับจำนวนคนเข้าห้องสมุด นับจำนวนขวด ฯลฯ


 

อุปกรณ์

   ไอซีไมโครคอนโทรลเลอร์ AT89CX051



       TRANSISTER :: BC547 BC557 BC337

       
    ไอซี LM7805 และไอซี LM7812 เป็นไอซีเร็กกูเรเตอร์ (Regulate) ขนาด 5 โวลท์ ซึ่งจะทำหน้าที่รักษาระดับของแรงไฟให้มีค่าคงที่ 5 โวลท์ และ 12 โวลท์
  DC -JACK สะดวกต่อการใช้งาน
   ไดโอดบริดจ์ (W04) ทำหน้าที่เป็นวงจรเรกติไฟเออร์ โดยเปลี่ยนไฟฟ้ากระแสสลับ (AC) ให้เป็น ไฟฟ้ากระแสตรง (DC)
และกลับขั้วไฟให้ถูกต้อง
   ตัวต้านทาน R1 จะทำหน้าที่จำกัดกระแสที่ป้อนให้กับ LED1เพื่อกำหนดความสว่าง ให้พอดีสำหรับการแสดงสภาวะการทำงานของบอร์ด ใช้ค่าความต้านทานที่มีค่ามาก แต่ยังให้แอลอีดีมีความสว่างพอสังเกตได้ จะเป็นการประหยัดแหล่งจ่ายไฟของระบบ
    แอลอีดี 7 ส่วนจะใช้ชนิดแคโถดร่วม (Common cathode)             
   ตัวเก็บประจุ C1 จะทำหน้าที่กรองแรงดันหรือฟิลเตอร์ (Filter)เพราะในการเปลี่ยนแรงดัน ไฟกระแสสลับให้เป็นแรงดันไฟกระแสตรง จะยังมีการกระเพื่อมของแรงดันไฟตรง ที่เราเรียกว่า ริปเปิล (Ripple) ดังนั้นเราจึงใช้ตัวเก็บประจุเพื่อลดค่าแรงดันริปเปิลลงไป โดยการเก็บค่าประจุ ไว้เมื่อช่วงแรงดันสูง ละจะจ่ายประจุให้กับโหลดเมื่อมีการกระเพื่อมทางด้านต่ำดังนั้นโหลด จะได้แรงดันที่ราบเรียบขึ้น
PIN HEADER ใช้สำหรับเสียบเพื่อเลือกทิศทางการเชื่อมต่อของไอซี
    ซ็อกเก็ตไอซี 20 ขา และ 16 ขา
    คริสตอลค่าไม่เกิน 24 MHz
    LED1 แสดงสถาวะการทำงานของแหล่งจ่ายไฟ
   สวิตซ์กดติด ปล่อยดับ
  เทอร์มินอลบล็อก
   แผ่นระบายความร้อน จะยึดติดกับแผ่นวงจรพิมพ์ตำแหน่งของการวาง ไอซี 7805 7812 เพราะจะต้องวางคว่ำหน้าลง ดังนั้นการเจาะรูที่แผ่นวงจรพิมพ์จะต้องเจาะ ให้ตรงระหว่าง รูน็อตกับรูของไอซี 7805 7812 ด้วย
  ใช้ฐานรองแล้วยึดน็อต เพื่อจะยกระดับให้สูงขึ้นจากพื้น

 

  อุปกรณ์สารกึ่งตัวนำ   

IC1- LM7805
IC2 -AT89C1051 (ที่โปรแกรมแล้ว)
D1 Bridge Diode W04
LED1 ขนาด 3 mm
LED 7 Segment Common Anode
ทรานซิสเตอร์ BC557


  1  ตัว
 1  ตัว
 2  ตัว
 1  ตัว
 
 2  ตัว
 4 ตัว
      ตัวต้านทาน:

์R2,R3, 10 K 1/4 W
R1,R11 - R15 - 1 กิโลโอห์ม 1/4 W
 


  3  ตัว
  1  ตัว
      ตัวเก็บประจุ

C1 - 100 UF /16V
C2 - 10 UF/16V
C5 - 1 UF /16V
C6,C7- 33 PF เซรามิค
C3,C4, - 0.1 UF /16V เซรามิค
  


  1  ตัว
  1  ตัว
  1  ตัว

  2  ตัว
  3  ตัว 
  
   อื่นๆ

 X 1 x-tal 11.0592 MHz
 SW1 ,SW2 Switch กดติดปล่อยดับตัวเล็ก
 แผ่นระบายความร้อน (ตามรูป)
 J1 DC- jack ลง PCB ตัวเมีย
 ซ็อคเก็ต 20 ขา
 อแดปเตอร์ 12 VDC หรือหม้อแปลง 9 - 0 VAC
 แผ่นวงจรพิมพ์ตามแบบ
 จัมเปอร์


    2  ตัว
    1 แผ่น
    1  ตัว

    3  ตัว 
    1  ตัว

    1  ตัว
    1  แผ่น
    1  ตัว 
   

 

Designed by Mr.Adisak chinawong

Main | Menu | Web board | Link | มโนสาเร