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

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

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

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

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

     unsigned char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
      int i=6,j=0;

     void interrupt()
{
     j--;
     if(j<0)
     {
            j=9;
            i--;
     }
     if(i==0&&j==0)
     {
            T0CON.TMR0ON=0;
            PORTB.F5=1;
     }
     TMR0H=0xC2;
     TMR0L=0xF7;
     INTCON.TMR0IF=0;
}
   
     void main()
{
     TRISB=0x01;
     TRISC=0;
     PORTB.F5=0;
     T0CON=0x05;
     TMR0H=0xC2;
     TMR0L=0xF7;
     INTCON.TMR0IE=1;
     INTCON.TMR0IF=0;
     INTCON.GIE=1;
     while(1)
     {
             if(PORTB.F0==0)T0CON.TMR0ON=1;
             digit1=0;digit2=1;
             PORTC=segment[i];
             delay_ms(50);
             digit1=1;digit2=0;
             PORTC=segment[j];
             delay_ms(50);
     }
}


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



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

ส่วนประกอบงานวิชา ไมโครคอนโทรนเลอร์ ครั้งที่ 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