LAB 1
ควบคุม
หลอด LED
เงื่อนไข
- กดสวิตซ์ SW1 หลอด LED ติด
- กดสวิตซ์ SW2 หลอด LED ดับ
จงเขียนโปรแกรมควบคุม 16F887 และจำลองการทำงานของวงจรด้วย โปรแกรม Proteus
การเขียนโปรแกรมด้วยภาษาซี
กำหนดขา INPUT , OUTPUT
SW1 คือ สวิตซ์ start กำหนดขา RC1
SW2 คือ สวิตซ์ stop กำหนดขา RC2
#include<pic.h>
__CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF); //__ คือ under score 2 ตัว _ คือ under score 1 ตัว
void main(void)
{
TRISC1=1; //ประกาศว่า ขา RC1 คือ input หาก = 1 จะเป็น input
TRISC2=1; //ประกาศว่า ขา RC2 คือ input หาก = 1 จะเป็น input
TRISC0=0; //ประกาศว่า ขา RC0 คือ output หาก = 0 จะเป็น output
RC0=0; //ประกาศค่าเริ่มต้นของ RC0 ให้เท่ากับ 0 คือ LED ยังไม่ทำงานนั้นเอง
while(1)
{
if(RC1==0) //ถ้ากด SW1 RC1=0ไหม
{
RC0=1; //แล้วให้ RC0=1 คือให้ LED ติด
}
if(RC2==0) //ถ้ากด SW2 RC2=0ไหม
{
RC0=0; //แล้วให้ RC0=0 คือให้ LED ดับ
}
}
}
จำลองการทำงานด้วยโปรแกรม Proteus
การเขียนโปรแกรมด้วยภาษาซี
กำหนดขา INPUT , OUTPUT
SW1 คือ สวิตซ์ start กำหนดขา RC1
SW2 คือ สวิตซ์ stop กำหนดขา RC2
#include<pic.h>
__CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF); //__ คือ under score 2 ตัว _ คือ under score 1 ตัว
void main(void)
{
TRISC1=1; //ประกาศว่า ขา RC1 คือ input หาก = 1 จะเป็น input
TRISC2=1; //ประกาศว่า ขา RC2 คือ input หาก = 1 จะเป็น input
TRISC0=0; //ประกาศว่า ขา RC0 คือ output หาก = 0 จะเป็น output
RC0=0; //ประกาศค่าเริ่มต้นของ RC0 ให้เท่ากับ 0 คือ LED ยังไม่ทำงานนั้นเอง
while(1)
{
if(RC1==0) //ถ้ากด SW1 RC1=0ไหม
{
RC0=1; //แล้วให้ RC0=1 คือให้ LED ติด
}
if(RC2==0) //ถ้ากด SW2 RC2=0ไหม
{
RC0=0; //แล้วให้ RC0=0 คือให้ LED ดับ
}
}
}
จำลองการทำงานด้วยโปรแกรม Proteus
หากมีข้อสงสัย อะไรก็ถามได้นะ
ตอบลบ