วันพฤหัสบดีที่ 20 ธันวาคม พ.ศ. 2561

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 3

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 3

ใบรายงานผลการปฏิบัติงาน

     1. Code Program ที่เขียนขึ้น ด้วยโปรแกรม Micro  C    พร้อมอธิบายโปรแกรม
       #define digit1 PORTE.F0 
       #define digit2 PORTE.F1
      unsigned char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
      unsigned char i1,i2,i3,i4,i5,i6;

      void interrupt()
{
     i6++;
     if(i6>9)
     {
             i6=0;
             i5++;
     }
     if(i5>9)
     {
             i5=0;
             i4++;
     }
     if(i4>9)
     {
             i4=0;
             i3++;
     }
     if(i3>5)
     {
             i3=0;
             i2++;
     }
     if(i2>9)
     {
             i2=0;
             i1++;
     }
     if(i1>5)i1=0;
     TMR3H=0xD8;
     TMR3L=0xF0;
     PIR2.TMR3IF=0;
}

     void main()
{
     TRISB=0;
     TRISC=0;
     TRISD=0;
     TRISE=0;
     T3CON=0x80;
     TMR3H=0xD8;
     TMR3L=0xF0;
     PIE2.TMR3IE=1;
     PIR2.TMR3IF=0;
     INTCON.PEIE=1;
     INTCON.GIE=1;
     T3CON.TMR3ON=1;
     while(1)
     {
             digit1=0;digit2=1;
             PORTC=segment[i1];
             PORTD=segment[i3];
             PORTB=segment[i5];
             delay_ms(15);
             digit1=1;digit2=0;
             PORTC=segment[i2];
             PORTD=segment[i4];
             PORTB=segment[i6];
             delay_ms(15);
      }
}
       2. ภาพจำลองการทำงานด้วยโปรแกรม Proteus


   3. อธิบายการทำงานของโปรแกรม 

          

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 2

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 2

ใบรายงานผลการปฏิบัติงาน

     1. Code Program ที่เขียนขึ้น ด้วยโปรแกรม Micro  C    พร้อมอธิบายโปรแกรม
       #define digit1 PORTB.F5
       #define digit2 PORTB.F6 
       #define digit3 PORTB.F7
       unsigned char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
      unsigned char i,j;

      void interrupt()
{
     if(INTCON.INT0IF==1)
     {
            i++;
            if(i>9)i=0;
            INTCON.INT0IF=0;
     }
     if(INTCON3.INT1IF==1)
     {
            j++;
            if(j>9)j=0;
            INTCON3.INT1IF=0;
     }
}

     void main()
{
     TRISB=0x03;
     TRISC=0;
     INTCON.INT0IE=1;
     INTCON.INT0IF=0;
     INTCON2.INTEDG0=0;
     INTCON3.INT1IE=1;
     INTCON3.INT1IF=0;
     INTCON2.INTEDG1=0;
     INTCON.GIE=1;
     while(1)
    {
           digit1=0;digit2=1;digit3=1;
           PORTC=segment[i];
           delay_ms(25);
           digit1=1;digit2=0;digit3=1;
           PORTC=~0x3F;
           delay_ms(25);
           digit1=1;digit2=1;digit3=0;
           PORTC=segment[j];
           delay_ms(25);
    }
}
     2. ภาพจำลองการทำงานด้วยโปรแกรม Proteus

 3. อธิบายการทำงานของโปรแกรม 

          

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 1

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 1

ใบรายงานผลการปฏิบัติงาน

     1. Code Program ที่เขียนขึ้น ด้วยโปรแกรมMicro  C  พร้อมอธิบายโปรแกรม

 
      void main()
           {  
      unsigned char dice[]={0x08,0x22,0x2A,0x55,0x5D,0x77}; //ประกาศตัวแปร
      unsigned char i;   //ประกาศตัวแปร
      TRISC=0; //พอร์ต  C เป็น OUTPUT
      TRISB=0x01;  //พอร์ต B เป็น INPUT
      PORTC=0;  //พอร์ต  C เป็น แอคทีพ   low
      while(1) //คำสั่งวนลูป
            {
      if(PORTB.F0==0)  //ถ้าB เป็น  0 ทำใน  ปีกกา
            {
                    PORTC=dice[i];
                    delay_ms(500);
                    PORTC=0;
            }
            i++;
            if(i>5)i=0;
            }
      

      2. ภาพจำลองการทำงานด้วยโปรแกรม Proteus






      3. อธิบายการทำงานของโปรแกรม 

          เมื่อกด sw โปรแกรม จำทำการสุ่ม เปิด led เป็นลูกเต๋าแต่ละเลข


วันอาทิตย์ที่ 16 ธันวาคม พ.ศ. 2561

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 3

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 3

ใบรายงานผลการปฏิบัติงาน

1. Code Program ที่เขียนขึ้น ด้วยโปรแกรม Arduino  พร้อมอธิบายโปรแกรม
#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);

void setup() 
{
pinMode(1,INPUT);
pinMode(0,INPUT);
  pinMode(7,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(4,OUTPUT);

}
void loop() 
{                         
  int x=digitalRead(1);
   int xx=digitalRead(0);

if (x==0) 

lcd.begin(16,2);
   lcd.setCursor(0,0);
  lcd.print("1");
                         digitalWrite(7, HIGH);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, LOW);                     
        digitalWrite(4, LOW);      
  delay(500);
  lcd.print("2");
                       digitalWrite(7, LOW);                     
  digitalWrite(6, HIGH);
                      digitalWrite(5, LOW);                     
      digitalWrite(4, LOW);     
  delay(500);
  lcd.print("3");
                       digitalWrite(7, HIGH);                     
  digitalWrite(6, HIGH);
                      digitalWrite(5, LOW);                     
      digitalWrite(4, LOW);     
  delay(500);
  lcd.print("4");
                       digitalWrite(7, LOW);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, HIGH);                     
      digitalWrite(4, LOW);     
  delay(500);
  lcd.print("5");
                        digitalWrite(7, HIGH);                     
  digitalWrite(6, LOW);
                        digitalWrite(5, HIGH);                     
       digitalWrite(4, LOW);     
  delay(500);
  lcd.print("6");
                       digitalWrite(7, LOW);                     
  digitalWrite(6, HIGH);
                       digitalWrite(5, HIGH);                     
     digitalWrite(4, LOW);     
  delay(500);
  lcd.print("7");
                       digitalWrite(7, HIGH);                     
  digitalWrite(6, HIGH);
                      digitalWrite(5, HIGH);                     
    digitalWrite(4, LOW);     
  delay(500);
  lcd.print("8");
                       digitalWrite(7, LOW);                     
  digitalWrite(6, LOW);
                      digitalWrite(5, LOW);                     
      digitalWrite(4, HIGH);     
  delay(500);
  lcd.print("9");
                        digitalWrite(7, HIGH);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, LOW);                     
       digitalWrite(4, HIGH);     
  
}                          
 if (xx==0) 
lcd.begin(16,2);
lcd.setCursor(0,0);
  lcd.print("9");
                        digitalWrite(7, HIGH);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, LOW);                     
    digitalWrite(4, HIGH); 
    delay(500);    
  lcd.print("8");
                       digitalWrite(7, LOW);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, LOW);                     
    digitalWrite(4, HIGH); 
    delay(500); 
  lcd.print("7");
                        digitalWrite(7, HIGH);                     
  digitalWrite(6, HIGH);
                       digitalWrite(5, HIGH);                     
    digitalWrite(4, LOW);   
    delay(500);
  lcd.print("6");
                       digitalWrite(7, LOW);                     
   digitalWrite(6, HIGH);
                        digitalWrite(5, HIGH);                     
   digitalWrite(4, LOW); 
    delay(500);
  lcd.print("5");
                         digitalWrite(7, HIGH);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, HIGH);                     
     digitalWrite(4, LOW);     
  delay(500);
  lcd.print("4");
                        digitalWrite(7, LOW);                     
  digitalWrite(6, LOW);
                        digitalWrite(5, HIGH);                     
      digitalWrite(4, LOW);     
  delay(500);
  lcd.print("3");
                        digitalWrite(7, HIGH);                     
  digitalWrite(6, HIGH);
                      digitalWrite(5, LOW);                     
     digitalWrite(4, LOW);     
  delay(500);
  lcd.print("2");
                        digitalWrite(7, LOW);                     
   digitalWrite(6, HIGH);
                       digitalWrite(5, LOW);                     
      digitalWrite(4, LOW);     
  delay(500);
  lcd.print("1");
                       digitalWrite(7, HIGH);                     
  digitalWrite(6, LOW);
                       digitalWrite(5, LOW);                     
       digitalWrite(4, LOW);      
  delay(500);



}                          
    2. ภาพจำลองการทำงานด้วยโปรแกรม Proteus
 



      3. อธิบายการทำงานของโปรแกรม
      เมื่อกด สวิชต์ ขา 13 จะทำการนับ จาก 0-9
      เมื่อกด สวิชต์ ขา 12 จะทำการนับ จาก 9-0



ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 2

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 2

ใบรายงานผลการปฏิบัติงาน

    1. Code Program ที่เขียนขึ้น ด้วยโปรแกรม Arduino  พร้อมอธิบายโปรแกรม

#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);

void setup()
{
pinMode(13,INPUT);
pinMode(10,INPUT);
pinMode(1,OUTPUT);
pinMode(0,OUTPUT);



}

void loop()
{
 int x=digitalRead(13);
 int xx=digitalRead(10);

if (x==0)
{
  digitalWrite(0,HIGH);
  digitalWrite(1,LOW);
  lcd.begin(16,2);
  lcd.setCursor(0,0);
  lcd.print("(-_-) 2");
}                         
 if (xx==0)
{
  digitalWrite(1,HIGH);
  digitalWrite(0,LOW);
  lcd.begin(16,2);
  lcd.setCursor(0,0);
  lcd.print("(-_-) 1");
}                         


}
2. ภาพจำลองการทำงานด้วยโปรแกรม Proteus


    
3 3. อธิบายการทำงานของโปรแกรม
ก กดสวิตซ์ ที่ขา 13 มอเตอร์ ฝั่งซ้ายหมุน จอLCD แสดง (-_-) 2
   กดสวิตซ์ ที่ขา 10 มอเตอร์ ฝั่งซ้ายหมุน จอLCD แสดง (-_-) 1

วันอังคารที่ 27 พฤศจิกายน พ.ศ. 2561

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 1

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 1

ใบรายงานผลการปฏิบัติงาน

    1. Code Program ที่เขียนขึ้น ด้วยโปรแกรม Arduino  พร้อมอธิบายโปรแกรม

    

void setup() //ฟังชั่น กำหนดค่า
{
pinMode(0,OUTPUT); //ประกาศ  พิน0 เป็นoutput
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(13,INPUT);
pinMode(12,INPUT);
pinMode(11,INPUT);
}
void loop ()
{
int x=digitalRead(13); //อ่านค่าจาก พิน 13
int xx=digitalRead(12);
if (x==1) ถ้า   //เป็นจริง ทำในวงปีกกา
{
a ();
b ();
c ();
d ();
e ();
f ();
g ();
h ();
i ();
j ();
}
if (xx==1)
{
j ();
i ();
h ();
g ();
f ();
e ();
d ();
c ();
b ();
a ();
}

}
void a ()
{
digitalWrite(0,HIGH); //ให้ พิน 0 เป็น  แอคทีพ  LOW
digitalWrite(1,LOW);//ให้ พิน 1 เป็น แอคทีพ  HIGH
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
  delay(500); // หน่วงเวลา0.5 วินาที
}  
void b ()
{
digitalWrite(0,HIGH);
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
  delay(500); 
}  
void c () // ลูปที่กำหนดขึ้นมา
{
digitalWrite(0,LOW);
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);  
delay(500); 
}  
void d ()
{
digitalWrite(0,LOW);
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
  delay(500); 
}  
void e ()
{
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
  delay(500); 
}  
void f ()
{
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
  delay(500); 
}  
void g ()
{
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
  delay(500); 
}  
void h ()
{
digitalWrite(0,HIGH);
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
  delay(500); 
}  
void i ()
{
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
  delay(500); 
}  
void j ()
{
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
  delay(500); 
}  


      2. ภาพจำลองการทำงานด้วยโปรแกรม Proteus























3. อธิบายการทำงานของโปรแกรม
    เมื่อกด สวิชต์ ขา 13 จะทำการนับ จาก 0-9
    เมื่อกด สวิชต์ ขา 12 จะทำการนับ จาก 9-0