http://www.epro.co.th
สร้างเว็บไซต์Engine by iGetWeb.com

 หน้าแรก

 สินค้า

 บทความ

 วิธีการสั่งซื้อ

 ติดต่อเรา

 ข่าวสาร

 รูปภาพ

 Facebook

 Download

 เว็บบอร์ด

สถิติ

เปิดเว็บ04/12/2011
อัพเดท08/03/2017
ผู้เข้าชม499,964
เปิดเพจ459,002
สินค้าทั้งหมด70

ตะกร้าสินค้า

จำนวนสินค้า : 0 รายการ
ราคา :0 ฿

จดหมายข่าว

อีเมล์

ตอนที่ 2 การใช้งาน 7-Segment 1 หลัก

ตอนที่ 2 การใช้งาน 7-Segment 1 หลัก

การทำงานของโปรแกรม

                เมื่อกด  SW1   นับเลขขึ้นตั้งแต่ 0-9   7- Segment จะติดตัวเลขเพิ่มขึ้นเรียงตามการกดสวิตช์  จะนับได้จนถึงเลข 9  

                เมื่อกด  SW2   นับเลขลงตั้งแต่  9-0 7- Segment จะติดตัวเลขลดลงเรียงตามการกดสวิตช์  จะลดลงถึงเลข 0

 

/*******************************************************************************

* Purpose     : 7-Segments LED Display

* Author      : Mr.Sarayut Yaemprayoon

* Email       : electronicpro-1@hotmail.com

* wwww        : www.allelecpro.com

* Compiler    : CCS C Compiler

* Target      : PIC16F877A

*******************************************************************************/

 

#include <16F877A.h>              // header file for PIC16F877A   [1]

 

/***************** Setting configuration fuses ********************************/

#fuses HS,NOWDT,NOPROTECT,NOLVP  // Configuration word          [2]

#use delay(clock=8000000)        // Change OSC here (default 8MHz)  [3]

#define SwCoUp PIN_D0            //    [4]

#define SwCoDo PIN_D1            //    [5]

 

int LED_MAP[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66,   //0,1,2,3,4      [6]       

                                    0x6D, 0x7D, 0x07, 0x7F, 0x6F};  //5,6,7,8,9

                            

//******************** Main Functions *****************************************/

void main(void)

{

    int i=0;

   

    set_tris_b(0x00);            // Set port port_b all output.   [7]

    set_tris_d(0xff);             // Set port port_d all input.    [8]

 

    output_b(0x00);              //     [9]

 

    while (true)

    {  /*****Count Up.*****/      //     [10]

         if(!input(SwCoUp))                //Press SW1.

        { if(i==9)                                                     

           i=9;

           else  i++;                                     //Inc number 7-segment.

         

         while(!input(SwCoUp));}     //While press SW1.

        

       /*****Counr down*****/     //     [11]

         else                   

          if(!input(SwCoDo))                //Press SW2.

         {if(i==0)

              i=0;

          else  i--;                                   //Dec number 7-segment.

       

         while(!input(SwCoDo));}     //While press SW2.

        

       output_b(LED_MAP[i]);    //Display 7-segment.  [12]

        delay_ms(1); 

       

    }

}

/***************************('_') End ('_')******************************/

 

อธิบายโปรแกรม

[1] เรียกใช้เฮดเดอร์ไฟล์เบอร์ PIC16F877A  โดย .h เป็นนามสกุลที่ย่อมาจาก เฮดเดอร์ไฟล์  หากมีการใช้ PIC เบอร์อื่นก็ต้องเปลี่ยนเป็นเบอร์ ตามที่เราใช้ เช่น 16F887 ,18F4431

[2] การกำหนดสถานะเริ่มต้องของ PIC เช่น

                ออสซิเลเตอร์ที่ใช้งาน(LP,XT,HS,RC)

                การเปิดใช้งานวอตช์ด็อกไทเมอร์ (WDT,NOWDT)

                การป้องกันการคัดลอกโค๊ต (PORTECT,NOPORTECT)

และอื่นๆ โดยดูได้จาก ViewàValid Fuses

[3] ใช้ Crystal ในการกำเนิดความถี่ 8MHzซึ่งจะมีความสัมพันธ์กับออสซิเลเตอร์ที่ใช้งาน(LP,XT,HS,RC) ในที่นี้ใช้เป็น HS

[4]ประกาศให้ PIN D0 ชื่อ SwCoUp ในวงจรคือ SW1

[5]ประกาศให้ PIN D1 ชื่อ SwCoDo ในวงจรคือ SW2

[6]ตัวแปรอะเรย์ เก็บรูปแบบการแสดงผลตั้งแต่ตัวเลข 0-9

[7]ใช้ Port B เป็น Output ใช้สำหรับต่อ 7-Segment

[8]ใช้ Port D เป็น Input คือ SW1 และ SW2

[9]Port B เป็น ‘0’

[10]นับตัวเลขขึ้นตั้งแต่ 0-9 โดยมีการเช็ค SW1 เมื่อ SW1 ถูกกด จะมีการเพิ่มค่าตัวแปร i ขึ้น 1และเพิ่มขึ้นไม่เกิน 9

[11]นับตัวเลขขึ้นตั้งแต่ 9-1 โดยมีการเช็ค SW2 เมื่อ SW2 ถูกกด จะมีการลดค่าตัวแปร i ลง 1และลดลงไม่ตำกว่า 0

[12]คำสั่ง output_b นำค่าตัวแปรอะเรย์แสดงผลผ่าน Port B โดยชี้ตำแหน่งตัวแปรอะเรย์ โดยตัวแปร i

 

 ***Download ไฟล์ได้จาก***


http://cid-c0a6064779796550.skydrive.live.com/browse.aspx/.Public

Download คู่มือไม่ได้โปรดแจ้ง electronicpro-1@hotmail.com   
ขอบคุณครับ^^

ความคิดเห็น

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

* *

 

*

view

 หน้าแรก

 สินค้า

 บทความ

 รวมรูปภาพ

 เว็บบอร์ด

ติดต่อเรา

view