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

PIC ภาษา C ตอน รับค่าจากสวิตช์ (2)

มาถึงตอนนี้มาดูการเขียนการรับค่าจากสวิตช์แบบอื่นกันบ้างครับ
จากรูปจะเป็นการต่อสวิตช์เข้าที่ขา RC0(15) และ output จะต่อ LED ไว้ที่ portB ตั้งแต่ RB0 - RB1 ครับ


ในส่วนของ code ดังนี้
include<16F877.h>
#FUSES NOWDT,NOPROTECT,NOLVP,HS
#USE delay(clock=20000000)
#USE fast_io(b)
#USE fast_io(c)
void main ()
{
set_tris_b(0X00);
set_tris_c(0XFF);
while(1)
{
if(input(PIN_C0)==0)
{
output_b(0X00); //0000 1111
}
if(input(PIN_C0)==1)
{
output_b(0XFF); //0000 0000
}
}
}


ในสภาวะปกติ เมื่อมีการกด สวิตช์ PIN_CO ให้ค่า 0 LED จะติดทุกดวง
และเมื่อเราไม่กด สวิตช์ PIN_C0 ให้ค่า 1 LED จะดับหมด จาก code การกำหนด PIN_CO หมายถึง การกำหนดขาที่ portC คือ RC0 นั้นเอง หรือ ถ้าเราต้องการกำหนดเป็นแบบเจาะจงขาใดก็สามาถทำได้เช่น output_high(PIN_B3); หรือ output_low(PIN_B3); ซึ่งจะเป็นการบอกสถานะของตำแหน่งของขานั้นๆ เราสามารถประยุกย์ code นี้ไปใช้ในด้านอื่นได้อีกมากมายครับ

หากจะต่อสวิตช์ เป็น 2 ตัว ก็ไม่มีปัญหาซึ่งเราก็แค่กำหนดค่าเพิ่มไปเท่านั้นเอง


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