Microcontroller      Mr.Adisak Chinawong

           Back to menu

  โครงงานที่ 05   TIMER ตั้งเวลา 0-99 นาที


ขอบเขต

  •  1 กดจำนวนเวลาขึ้น ลงได้ 0-99 นาที
  •  2 สามารถกดสวิตซ์เลือกกำหนดการตั้งเวลาได้ ครั้งละ 1 นาที
  •  3 มีเอาต์พุตไว้สำหรับต่อกับภายนอกโดยรีเลย์ได้(แล้วแต่จุดประสงค์การนำไปใช้)
  •  4 สามารถใช้แหล่งจ่ายไฟจากแบตเตอรี่ได้
  •  5 นำไปดัดแปลงใช้งานอื่นๆได้หลากหลาย

วงจร

  
   
                                              

    ถ้าเราจะกำหนดให้ Timer 0 ทำการสร้างสัญญาณพัลส์ขนาด 250 Usec ให้ใช้ คริสตอลขนาด 11.0592 MHz หรือ 12 MHz โดยมีเอาต์พุตอยู่ที่ P3.0ลำดับแรกเราจะต้องทำการกำหนดค่าให้กับ รีจิสเตอร์ TH0 เพื่อเก็บค่าเริ่มต้นการนับก่อน โดยรีจิสเตอร์ TL0 ที่ทำหน้าที่การนับจะเพิ่มค่าขึ้นทีละหนึ่งค่าในทุกๆแมชชีนไซเคิลในการทำงานของซีพียู การคำนวนค่าระยะเวลาของหนึ่งแมชชีนไซเคิล จะใช้เวลานานเท่ากับคาบเวลาของออสซิลเลเตอร์จำนวน 12 คาบ คิดเป็นค่า
อัตราการนับในแต่ละครั้ง จะใช้เวลาเท่ากับ 1/12 เท่าของความถี่ออสซิลเลเตอร์ หรือ T = MC x 12/f-xtal
          เมื่อใช้คริสตอลขนาด 12 MHz ใน1 แมชชีนไซเคิลจึงนับค่าได้ 1 Usec ดังนั้นค่าเริ่มต้นของการนับที่เก็บไว้ใน รีจิสเตอร์ TH0 ก็คือค่า 2'complementของ 250 นั้นเอง ซึ่งเท่ากับ 06H  
         เมื่อใช้คริสตอล 11.0592MHz ใน1 แมชชีนไซเคิล จะทำการนับค่าได้ 1.085 Usec ดังนั้นถ้าเราต้องการค่า 250 Usec จึงหาได้จาก 250/1.085 ซึ่งจะมีค่าเท่ากับ 230.5 แต่เนื่องจากไมโครคอนโทรลเลอร์ไม่มีคำสั่งที่สามารถจะทำงานในครึ่ง แมชชีนไซเคิลได้ เราจึงจะได้ค่าประมาณ 230 ซึ่งหากคิดกลับก็จะได้ค่าประมาณ 230 x 1.085 = 249.55 Usec หรือประมาณ 250 Usec ดังนั้นการกำหนดค่าในรีจิสเตอร์ TH0 และ TL0 จึงสามารถเขียนได้โดยกำหนดค่าของ 230 เมื่อทำ 2's Complement = 1AH ซึ่งเราอาจจะใช้คำสั่ง MOV TH0,#1AH หรือ MOV TH0,# -230 ก็จะมีค่าเท่ากัน (แอสเซมเบอล์ SXA51)

การทำ 2 complement

1) 230 ทำเป็นเลขฐาน 16 เท่ากับ E 6
2) ทำเป็นเลขฐาน 2 เท่ากับ 1110 0110
3) 1 complement เท่ากับ 0001 1001
4) 2 complement เท่ากับ(+1) 0001 1010
5) ทำเป็นเลขฐาน 16 เท่ากับ 1 A


            การทำงานของTimer/Counter ในโหมด 2

     ในการทำงานของโหมด 2 จะเป็นแบบโหลดค่าข้อมูลใหม่ในการเริ่มนับ หรือตั้งเวลาอัตโนมัติ (Auto reloads mode) แสดงการทำงานของ Timer/counterในโหมด 2 ในรูปที่ 2 การใช้งานในโหมดนี้จะแยกรีจิสเตอร์ไทม์เมอร์ออกเป็น 2 ตัว ซึ่งมีขนาดตัวละ 8 บิต การเก็บค่าเริ่มต้นการนับจะกำหนดให้อยู่ในข้อมูลของรีจิสเตอร์ THx ค่าของการนับสูงสุดคือ 256 ครั้ง (THx = 00) ในขณะที่ Timer ทำงานรีจิสเตอร์ TLx ก็จะทำหน้าที่เป็นตัวนับค่าข้อมูลซึ่งมีขนาด 8 บิต โดยนำค่าเริ่มต้นที่จะนับมาจากค่าข้อมูลในรีจิสเตอร์ THx ดังนั้นค่าข้อมูลที่อยู่ในรีจิสเตอร์ TLx จะถูกเพิ่มขึ้นทุกแมชชีนไซเคิลจนมีค่าข้อมูลถึง FF เมื่อนับต่ออีก 1 แมชชีนไซเคิล ก็จะวนกลับไป 00 อีกครั้ง ซึ่งคือค่านับเกิน (Over flow) นั้นเองทำให้แฟลก TF0 (หรือTF1 ) ถูกเซตเป็นลอจิก 1 และหลังจากนั้นค่าข้อมูลเดิมที่อยู่ในรีจิสเตอร์ THx ก็จะถูกนำไปกำหนดให้กับข้อมูลใน รีจิสเตอร์ TLx ใหม่อีกครั้ง เพื่อเป็นค่าเริ่มต้นของการนับในรอบต่อไปอีก การทำงานจะเป็นเช่นนี้ ตลอดไป (ที่เราเรียกว่า Auto reload ) ส่วนของแฟลก TFx จะถูกเคลียร์โดยอัตโนมัติเมื่อไมโครคอนโทรลเลอร์กระโดดไปทำโปรแกรมตอบสนอง อินเตอร์รัพต์ ของ Timer ในแต่ละรอบ    

              

                                                        รูป แสดงการทำงานของ Timer/counter ในโหมด 2 (8 bit Auto reload)

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

                                  

โปรแกรมและผังงาน

Download    ASM :: HEX

 

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

; *******************************************************************************
; ** Project Timer 0 - 99 min Designed by adisak51.com **
; ** TIMER/COUNTER :: user TIMER0 = Timer mode2 EXT:: OUTPUT BIT P3.7 **
; *******************************************************************************

COUNT_200 EQU 21H ;กำหนดให้เนื้อที่ในหน่วยความจำข้อมูล COUNT_200 ที่ตำแหน่งแอดเดรส 21H
COUNT_10 EQU 22H ;กำหนดให้เนื้อที่ในหน่วยความจำข้อมูล COUNT_10 ที่ตำแหน่งแอดเดรส 22H
COUNT_2 EQU 23H ;กำหนดให้เนื้อที่ในหน่วยความจำข้อมูล COUNT_2 ที่ตำแหน่งแอดเดรส 23H
SEC_60 EQU 24H ;กำหนดให้เนื้อที่ในหน่วยความจำข้อมูล SEC_60 ที่ตำแหน่งแอดเดรส 24H
MIN EQU 25H ;กำหนดให้เนื้อที่ในหน่วยความจำข้อมูล COUNT_2 ที่ตำแหน่งแอดเดรส 25H
DIGIT0 BIT P3.1 ;กำหนดให้บิต P3.0 ของพอร์ต P3 เป็น DIGIT0
DIGIT1 BIT P3.0 ;กำหนดให้บิต P3.1 ของพอร์ต P3 เป็น DIGIT1
LED_OUT BIT P3.7 ;กำหนดให้บิต P3.7 ของพอร์ต P3 เป็นการแสดงผลครบกำหนดเวลาที่ตั้งไว้
LED_DP BIT 07H ;กำหนดให้ LED_DP อยู่ที่หน่วยความจำแบบบิตตำแหน่ง 07H ที่แอดเดรส 20H(20H.7)
SW_DOWN BIT P3.2 ;กำหนดให้บิต P3.7 ของพอร์ต P3 เป็น สวิตซ์ลดค่าเวลา
SW_START BIT P3.3 ;กำหนดให้บิต P3.5 ของพอร์ต P3 เป็น สวิตซ์ตกลงการกำหนดค่าเวลา
SW_UP BIT P3.4 ;กำหนดให้บิต P3.4 ของพอร์ต P3 เป็น สวิตซ์เพิ่มค่าเวลา<br><br>

เป็นไดเร็กทีพที่ใช้กำหนดค่าแอดเดรสของตำแหน่งหน่วยความจำที่เข้าแบบบิต ให้กับสัญญาลักษณ์ ในกรณีที่มีค่าอยู่ที่หน่วยความจำตำแหน่งแอดเดรส 20H - 2FH (20H.0 - 2FH.7 หรือตำแหน่งของบิตที่ 00-FFH)

;***********************************************************************
;************* โปรแกรมย่อยการเพิ่มค่าข้อมูลที่ MIN *************
;***********************************************************************
;***********************************************************************
;************* โปรแกรมย่อยการลดค่าข้อมูลที่ MIN *************
;***********************************************************************

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

;**********************************************************
;**** โปรแกรมย่อยเก็บค่าข้อมูลที่จะแสดงผลตำแหน่ง DATA และ DATA+1 ******
;**********************************************************


  
   
DIV AB เป็นคำสั่งที่ใช้ในการหารค่าข้อมูลในรีจิสเตอร์ A ด้วยค่าข้อมูลที่รีจิสเตอร์ B แล้วนำผลลัพธ์จากการหารที่ได้ เก็บไว้ที่รีจิสเตอร์ A ส่วนเศษของการหารเก็บไว้ที่รีจิสเตอร์ B

      ตัวอย่าง หากค่าที่เราต้องการกำหนดไว้ที่รีจิสเตอร์ ACC = 7910 และกำหนดค่าที่รีจิสเตอร์ B = 1010 หลังจากเราใช้คำสั่ง DIV ABผลลัพท์เราจะได้ค่าข้อมูลที่รีจิสเตอร์ ACC = 07H และที่รีจิสเตอร์ B = 09H

;*********************************
;**** โปรแกรมย่อยหน่วงเวลา ******
;*********************************

             การทำงานในคำสั่งหนึ่งๆของไมโครคอนโทรลเลอร์ อาจจะประกอบไปด้วยรอบการทำงาน(Machine Cycle) หลายๆ รอบ ในแต่ละรอบการทำงานก็จะประกอบไปด้วยสภาวะเฟตช์ และเอ็กซีคิวซึ่งแต่ละคำสั่งอาจจะต้องใช้จำนวนรอบการทำงานที่แตกต่างกันไป การหาค่าเวลาที่ปฏิบัติตามคำสั่งนั้น สามารถคิดได้จากผลรวมของรอบการทำงานทั้งหมดได้ ดังนั้นหากเราจะกำหนดเวลาเพื่อให้ได้ค่าตามที่ต้องการ โดยให้ไมโครคอนโทรลเลอร์กระทำตามคำสั่งโดยให้เสียเวลาไปเปล่าๆ ในการทำงาน เราเรียกว่าการหน่วงเวลา วิธีการสร้างโปรแกรมหน่วงเวลาจะใช้การกำหนดค่าให้กับรีจิสเตอร์ หรือหน่วยความจำในตำแหน่งหนึ่งโดยให้ได้รอบการทำงานตามที่กำหนด หลังจากนั้นจะทำการลดค่าในรีจิสเตอร์ หรือหน่วยความจำลงไปเรื่อยๆ ทีละ 1 ค่า แล้วจะทำการตรวจสอบค่าข้อมูลจนกว่าจะมีค่าเท่ากับ 0 จึงจะให้ออกจากโปรแกรมหน่วงเวลาได้

             การทำงานของแต่ละคำสั่งจะใช้เวลาในการประมวลผลที่แตกต่างกันไปโดยนับหน่วยของรอบการทำงานหรือ
                แมชชีนไซเคิล (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  

                                 
                     


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


การสร้าง

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


         จากการทดลอง หลังจากกดที่สวิตซ์รีเซต แอลอีดี 7 ส่วนจะแสดงผลเป็นเลข 00 และจะคอยการกำหนดค่าเวลาโดยจะตรวจสอบการกดสวิตซ์จำนวน 3 ตัวด้วยกัน เราสามารถที่จะกำหนดค่าเวลาได้โดยกดที่สวิตซ์ SW_UP จะเพิ่มขึ้นครั้งละ 1 นาที หรือลดค่าเวลาโดยกดที่ SW_DOWN หลังจากนั้นเมื่อกดที่สวิตซ์ SW_START ไมโครคอนโทรลเลอร์ก็จะเริ่มทำการนับ ค่าเวลาตามที่กำหนด แอลอีดีแสดงผลจะทำการนับลงทีละ 1 นาที จนถึง 00 จึงจะหยุดการนับ หลังจากนั้นจะใช้คำสั่งเซตที่บิต P3.7 โดยแสดงผลที่ LED1 หากเราต้องการเปลี่ยนแปลงเวลาก็จะต้องทำการกดสวิตซ์รีเซต หลังจากนั้นถึงจะกำหนดค่าที่หน่วยความจำใหม่ได้

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

      1 ถอดไอซี AT89C2051 ออกจากบอร์ด
      2 เสียบแจ็คอแดปเตอร์ AC หรือ DC เข้าสู่บอร์ด สังเกตที่ LED1 จะต้องสว่าง แสดงว่ามีไฟ +VCC 5 โวลท์ในวงจร ถ้า LED1 ไม่สว่างให้ตรวจสอบแรงดันที่ป้อนจากอแดปเตอร์ ,ขั้วของไดโอดบริดจ์ ,ขั้วของตัวเก็บประจุ ไอซี 7805 และ ขั้วของ LED1 ตามลำดับ
      3 ให้ใช้สายไฟขนาดเล็ก (สายโทรศัพท์) เสียบที่ขา 10 ( Ground )ของซ็อกเก๊ตไอซี และให้นำปลายสายอีกข้างหนึ่งไปเสียบที่ขา 2 (P3.0) จากนั้นให้ใช้สายไฟขนาดเล็กอีกเส้นหนึ่งแตะขาที่ 10 กับขาที่ 12 (P1.0) ถึงขาที่ 19 (P1.7) จนครบทุกขา สังเกตที่แอลอีดี 7 เซกเมนต์หลักที่ 0 (ขวามือ) จะต้องสว่างตามเซกเมนต์ของตำแหน่งที่ต่อกับขานั้นๆ หลังจากนั้นให้เปลี่ยนตำแหน่งของสายทดลองกับหลักถัดมา โดยต่อที่ขา 10 กับขาที่ 3 แล้วทดสอบแต่ละเซกเมนต์แบบเดิมอีกครั้งหนึ่ง
      4 ให้ใช้สายไฟขนาดเล็กเสียบที่ขา 20 (+ VCC) ของซ็อกเก๊ตไอซี จากนั้นให้นำปลายสายอีกข้างหนึ่งไปเสียบกับขาที่ 11ของซ็อกเก็ต(P3.7)จะต้องได้ยินเสียงรีเลย์ทำงาน พร้อมทั้ง LED 2 แสดงผลไปด้วย
      5 การทดลองในส่วนของวงจรรีเซต ให้ต่อสายระหว่างขาที่ 1 กับขาที่ 12 เมื่อทำการกดที่สวิตซ์รีเซตทุกครั้งจะทำให้ LED 2 ดับ และเมื่อปล่อยที่คีย์สวิตซ์รีเซตจะทำให้ LED1 สว่าง
      6 ขั้นตอนสุดท้ายให้ใส่ IC2 แล้วป้อนไฟเข้าสู่บอร์ด แอลอีดี 7 เซกเมนต์จะต้องแสดงเป็นตัวเลข 00 ให้กดเพิ่มค่าที่สวิตซ์ UP เป็น 01 หลังจากนั้นให้เริ่มกดที่สวิตซ์ START เปรียบเทียบเวลาของเครื่องตั้งเวลาที่เราสร้างขึ้น กับนาฬิกาข้อมือ เมื่อครบกำหนด 1 นาที สังเกตที่รีเลย์จะทำงานมีเสียงดัง"คลิ้ก" และ LED2 จะแสดงผล เมื่อครบกำหนดค่าที่ตั้งไว้

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

     เราสามารถที่จะนำวิธีการของ TIMER/COUNTER มาใช้งานในส่วนของตัวตั้งเวลา เพื่อประยุกต์ใช้งานกับโครงงานต่างๆได้ สามารถที่จะดัดแปลง เพื่อนำไปใช้งานกับเครื่องใช้ไฟฟ้า เช่น ตู้เย็นในกรณีที่เกิดไฟฟ้าดับ และหลังจากนั้นเริ่มมีการจ่ายไฟฟ้าใหม่อีกครั้งหนึ่ง โดยเราจะกำหนดให้ตั้งเวลาไว้ประมาณ 3 นาที หลังจากนั้นตู้เย็นจึงจะทำงานได้ เพื่อป้องกันปัญหาที่อาจจะเกิดจากกระแสไฟกระชากขณะจ่ายระบบในครั้งแรก
                               
  

อุปกรณ์

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



       TRANSISTER :: BC547 BC557 BC337

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

 

  อุปกรณ์สารกึ่งตัวนำ   
IC1- LM7805
IC2 -AT89C1051 (ที่โปรแกรมแล้ว)
Transistor Q1,Q2 BC558
TR3 BC547
D1 Bridge Diode W04
D1 - 1N4001
LED1-LED2 สีแดง
LED 7 Segment Common Anode 2 ตัว
 

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

 1  ตัว
      ตัวต้านทาน:
์R 10 K 1/4 W
R 1 K 1/4 W
R3-R10 680 โอมห์ 1/4 W
 

  3  ตัว
  1  ตัว
  8  ตัว
      ตัวเก็บประจุ
C1 - 100 UF /16V
C3 - 47 UF/16V
C5 - 1 UF /16V
C6,C7- 33 PF เซรามิค
C2,C4,C8- 0.1 UF เซรามิค
C9,C10 0.1 UF ไมล่า
  
  1  ตัว
  1  ตัว
  1  ตัว

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

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

    3  ตัว 
    1  ตัว

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

Designed by Mr.Adisak chinawong

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