Traffic Light Project using PIC16F628

Traffic-Light-Project-using-PIC16F628-01

โครงงานไฟจราจรโดยใช้ไมโครคอนโทรลเลอร์ PIC16F628 ทำง่ายไม่ซับซ้อนเหมาะสำหรับผู้เริ่มต้น สามารถหาซื้ออุปกรณ์การทดลองได้ง่ายในท้องตลาดทั่วไป PIC16F628 เป็นไมโครคอนโทรลเลอร์ขนาดเล็ก 18 ขา สามารถใช้เป็น output ได้ถึง 13 ขา แต่เราจะใช้ทำโครงงานนี้เพียง 12 ขา ซึ่งเพียงพอในการใช้งานโดยไม่จำเป็นต้องซื้อไมโครคอนโทรลเลอร์ที่ราคาสูงกว่านี้

PIC16F628

PIC16F628

Port A มี 8 ขา เราจะเลือกใช้ตั้งแต่ RA0-RA3 และ Port B มี 8 ขา เราใช้ทั้งหมด 8 ขา รวมกันทั้งหมด 12 ขา สำหรับขับหลอด LED จำนวน 12 หลอด

วิธีการทำ ต่อขา RA0-RA3 และ RB0-RB7 ไปที่หลอด LED โดยผ่านตัวต้านทาน 470Ω ต่อขา OSC1,OSC2 ด้วยคริสตัส 4 MHz แต่ละขาต่อด้วย C 22pF ลง GND สวิตซ์รีเซ็ตจะต่อหรือไม่ก็ได้ถ้าต้องการต่อใช้ R 4.7kΩ ต่อเข้าขา MCLR และอีกทางหนึ่งต่อใส่ปุ่มกดลง GND สุดท้ายต่อ Vss ลง GND และ VDD ใส่แหล่งจ่ายไฟ 5V. DC จะเหลือขา RA4 ที่เราไม่ได้ใช้ก็ลอยไว้อย่างนั้นก็ได้

วงจรไฟจราจร

วงจรไฟจราจร

ขั้นตอนการเขียนโปรแกรม เริ่มต้น ให้ไฟจราจรทิศที่ 1 เป็นไฟเขียวเป็นเวลา Wait1 มิลลิวินาที จากนั้นกระพริบ Wait2 มิลลิวินาที ตามด้วยไฟเหลืองติดค้างเป็นเวลา Wait3 มิลลิวินาที สุดท้ายกลับเป็นไฟแดงทุกทิศ ทำแบบนี้ให้ครบทุกทิศและกลับมาเริ่มต้นใหม่

ตัวแปร Wait1, Wait2, Wait3 สามารถแก้ไขได้ในโปรแกรม

 

define OSC 4

TRISA=%00000000
PORTA=%00000000
TRISB=%00000000
PORTB=%00000000

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

Rl1  VAR PORTA.0
Yl1  VAR PORTA.1
Gl1  VAR PORTA.2
Rl2  VAR PORTA.3
Yl2  VAR PORTB.0
Gl2  VAR PORTB.1
Rl3  VAR PORTB.2
Yl3  VAR PORTB.3
Gl3  VAR PORTB.4
Rl4  VAR PORTB.5
Yl4  VAR PORTB.6
Gl4  VAR PORTB.7
Wait1   var word
Wait2   var word
Wait3   var word

Wait1=400
Wait2=40
Wait3=200

main:
gosub Go1
gosub Go2
gosub Go3
gosub Go4
goto main

Go1:
PORTA=%00000000
PORTB=%00000000
HIGH Gl1
HIGH Rl2
HIGH Rl3
HIGH Rl4
pause Wait1
Low Gl1
pause Wait2
High Gl1
pause Wait2
Low Gl1
pause Wait2
High Gl1
pause Wait2
Low Gl1
pause Wait2
High Gl1
pause Wait2
Low Gl1
High Yl1
pause Wait3
Low Yl1
High Rl1
pause Wait3
Return

Go2:
PORTA=%00000000
PORTB=%00000000
HIGH Rl1
HIGH Gl2
HIGH Rl3
HIGH Rl4
pause Wait1
Low Gl2
pause Wait2
High Gl2
pause Wait2
Low Gl2
pause Wait2
High Gl2
pause Wait2
Low Gl2
pause Wait2
High Gl2
pause Wait2
Low Gl2
High Yl2
pause Wait3
Low Yl2
High Rl2
pause Wait3
Return

Go3:
PORTA=%00000000
PORTB=%00000000
HIGH Rl1
HIGH Rl2
HIGH Gl3
HIGH Rl4
pause Wait1
Low Gl3
pause Wait2
High Gl3
pause Wait2
Low Gl3
pause Wait2
High Gl3
pause Wait2
Low Gl3
pause Wait2
High Gl3
pause Wait2
Low Gl3
High Yl3
pause Wait3
Low Yl3
High Rl3
pause Wait3
Return

Go4:
PORTA=%00000000
PORTB=%00000000
HIGH Rl1
HIGH Rl2
HIGH Rl3
HIGH Gl4
pause Wait1
Low Gl4
pause Wait2
High Gl4
pause Wait2
Low Gl4
pause Wait2
High Gl4
pause Wait2
Low Gl4
pause Wait2
High Gl4
pause Wait2
Low Gl4
High Yl4
pause Wait3
Low Yl4
High Rl4
pause Wait3
Return

ตัวอย่าง

Facebook Comments