เขียนโปรแกรมไฟกระพริบ

       ในโมดูลนี้ จะเป็นการเขียนโปรแกรมควบคุมไฟกระพริบ โดยให้ LED กระพริบทุกๆ 500 ms โดยใช้ PORTD เป็นตัวเชื่อมต่อกับ LED 


วงจรที่ใช้ในการทดลอง


การทำงานของวงจร

ขั้นตอนการเขียนโปรแกรม
       1. สร้างโปรเจ็ขึ้นมาใน MPLAB ตั้งชื่อว่าอะไรก็ได้ เมื่อสร้างโปรเจ็คเสร็จจะได้หน้าตาดังรูปที่ 1 (โปรเจ็คที่เราสร้างขึ้นนี้เราจะนำไปใช้กับทุกๆ โมดูล ที่เราเรียน)

     

รูปที 1

       2. กดไปที่ File >  New หรือ กด Ctrl+N ก็จะได้หน้ากระดาษขาวมาสำหรับเขียนโค้ด จากนั้นทำการ Save โดยเข้าไปที่ File > Save As ตั้งชื่อไฟล์ โดยการตั้งชื่อจะตั้งใส่ .c ต่อท้ายชื่อไฟล์เสมอ ตัวอย่างเช่น ผมจะตั้งชื่อไฟล์โค้ดว่า Testled ผมจะต้องตั้งชื่อว่า Testled.c 

 

รูปที่ 2
       3. ทำการเขียนโค้ดโปรแกรม ดังนี้
          
       #include <p1F4520.h>
       #include <delays.h>

       #pragma config OSC = HS
       #pragma config LVP = OFF
       #pragma config WDT = OFF

              void delay_ms(int ms)
              {
            for(;ms>0;ms--)
            {
                 Delay1KTCYx(5);
            }
       }
       void main()
       {
            TRISD = 0x00;
            PORTD = 0;
            while(1)
            {
                 PORTD = 0xFF;
                 delay_ms(500);
                 PORTD = 0xFF;
                 delay_ms(500);
            }
       }

       4. เมื่อทำการเขียนโค้ดเสร็จแล้ว ก็กดปุ่ม Build All โดยเข้าไปที่ Project > Build All หรือกด Ctrl+F10 ถ้าโค้ดไม่ผิดก็จะขึ้น คำว่า BUILD SUCCEEDED ดังรูปที่ 3 เราก็จะเห็น Hex ไฟล์เกิดขึ้นมาในโฟลเดอร์ที่เก็บโปรเจ็คของเรา



     อธิบายคำสั่ง
          #include <p18f4520.h>          ใช้สำหรับติดต่อกับไลบารี ของ PIC 18F4520
          #include <delays.h>              ใช้สำหรับติดต่อกับไลบารีที่ใช้ในการหน่วงเวลา

          #pragma config OSC = HS      กำหนดรูปแบบสัญญาณนาฬิกา
          #pragma config LVP = OFF     Single-Supply ICSP disabled
          #pragma WDT = OFF             WDT disabled (control is placed on the SWDTEN bit)

          TRISD = 0x00;                       กำหนดให้ PORTD เป็น Output

          PORTD = 0xFF;                     กำหนดให้ PORTD ทั้ง PORTD มีลอจิก 1
          delay_ms(500);                    หน่วงเวลา 500 ms
          PORTD = 0x00;                     กำหนดให้ PORTD ทั้ง PORTD มีลอจิก 0
          delay_ms(500);                    หน่วงเวลา 500 ms

ก็หวังเป็นอย่างยิ่งว่าจะเป็นประโยชน์ สำหรับผู้ที่ศึกษาไม่มาก ก็น้อยและเจอกันใหม่ใน โมดูลหน้า 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น