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

PIC ภาษา C ตอนเขียนโปรแกรมแรกขับหลอด LED


ในตอนนี้เรามาทำการเขียนโปรแกรมสำหรับ PIC กันครับ โปรแกรมแรกและที่ง่ายเห็นจะเป็นการสั่งงาน ของ Port เป็น output ครับ โดยเราจะทำการสั่งให้ IC PIC ขับหลอด LED กัน ซึ่งสามารถต่อวงจรได้ดังรูป ซึ่งผมเองจะใช้ piort B ในการทำงาน เรามาดู code กัน



#include<16F877.h>
#FUSES NOWDT,NOPROTECT,NOLVP,XT
#USE delay(clock=20000000)
#USE fast_io(b)
void main()
{
set_tris_b(0);
output_b(0X01);
}

ส่วนบนของโปรแกรมเป็นการกำหนดว่าจะใช้ IC PIC เบอร์อะไร (ต้องกำหนดให้ตรงกัน)
บรรทักต่อมา กำหนดคุณสมบัติต่างๆ
บรรทัดต่อมา กำหนดค่าความเร็วของสัญญาณคริสตัล คือใช้ที่ 20MHz
บรรทัดต่อมา กำหนดว่าจะใช้งานที่ port B
set_tris เป็นการบอกให้รู้ว่าใช้ port B เป็น output
output_b เป็นการส่งข้อมูลออกจาก port B (ในที่นี้จะเป็นการส่งสัญญาณ Hi หรือ Low)
0X01 เป็นการกำหนด bit ว่าให้สัญญาณออกตำแหน่งที่ขาในใน port B จะอธิบายได้ดังนี้
เมื่อกำหนดเป็น 0X01 จะเป็นการส่งสัญญาณ Hi ออกที่ขา RB0 หรือ ขาที่ 33 เมื่อกำหนดแบบนี้ LED1 จะสว่างครับ
เมื่อกำหนดเป็น 0X02 จะเป็นการส่งสัญญาณ Hi ออกที่ขา RB1 หรือ ขาที่ 34 เมื่อกำหนดแบบนี้ LED2 จะสว่างครับ
เมื่อกำหนดเป็น 0X04 จะเป็นการส่งสัญญาณ Hi ออกที่ขา RB2 หรือ ขาที่ 35 เมื่อกำหนดแบบนี้ LED3 จะสว่างครับ
เมื่อกำหนดเป็น 0X08 จะเป็นการส่งสัญญาณ Hi ออกที่ขา RB3 หรือ ขาที่ 36 เมื่อกำหนดแบบนี้ LED4 จะสว่างครับ
ดูๆไปแล้วก็เหมือนเป็น code 8 4 2 1 ที่เรียนดิจิตอลนั้นเองครับ ถ้ากำหนดแบบอื่นเช่น
ต้องการให้ LED 1 และ 2 ติด จะกำหนดเป็น 0X03 หรือ เทียบได้กับ 0011
ต้องการให้ LED 1 และ 3 ติด จะกำหนดเป็น 0X05 หรือ เทียบได้กับ 1010
ต้องการให้ LED 1 และ 4 ติด จะกำหนดเป็น 0X09 หรือ เทียบได้กับ 1001

ลองทำดูนะครับจะเห็นว่าไม่ใช่เรื่องยากเลยครับ หรือจะลองเปลี่ยนค่าอื่นดูได้ครับ เช่น 0X0F , 0X07 แล้วดูว่าผลที่ได้เป็นอย่างไร

ติอตามต่อนะครับว่าว่าจะเสนอตอนอะไร


เขียนเมื่อ 2 มี.ค. 2554