บทความ

วงจรขับ LED สองขั้ว

รูปภาพ
Components Required 8051 Microcontroller (AT89C51 is used here) Programmer for 8051 Microcontroller 11.0592 MHz Crystal Capacitors – 2 X 33pF, 10µF Resistors – 150Ω, 10KΩ X 2 Push Buttons X 3 Bipolar LED (two leads) Connecting Wires Breadboard Power Supply Code #include<reg51.h> sbit red = P0^0; sbit green = P0^1; sbit red_switch = P0^6; sbit green_switch = P0^7; unsigned char i=0; void delay (int); void main() { red=0; green=0; while(1) { red=0; green=0; while(1) { if(red_switch==0) { green=0; red=1; while(red_switch==0); } else if(green_switch==0) { green=1; red=0; while(green_switch==0); } } }

อาทิตย์ติดตามแผงวงจรพลังงานแสงอาทิตย์

รูปภาพ
ส่วนประกอบสำคัญ Solar panel ATmega328 Micro Controller Light Dependent Resistor (LDR) x 2 10KΩ x 3 Servo Motor 16MHz Crystal 22pF Ceramic Capacitors x 2 Push Button Breadboard Cardboard Connecting Wires Code #include <Servo.h> Servo myservo;  int ldr1 = 4; int ldr2 = 5; int val1; int val2;  int pos=90; void setup() {   myservo.attach(11);   Serial.begin(9600);   myservo.write(pos);  }     void loop() {   val1 = analogRead(ldr1);              val2 = analogRead(ldr2);   val1 = map(val1, 0, 1023, 0, 180);      val2 = map(val2, 0, 1023, 0, 180);      if(val1 > (val2+50))   {        if(pos<180)      pos=pos+1;     myservo.write(pos);     Serial.println("backward");            delay(10);          }   else if(val2 > (val1+50))   {     if(pos>0)      pos=pos-1; myservo.write(pos);     Serial.println("forward");            delay(10);   }                     }

การควบคุมมอเตอร์โดยใช้ไมโครคอนโทรลเลอร์ 8051 & L293D

รูปภาพ
ส่วนประกอบที่จำเป็น AT89C51 (8051 Microcontroller) L293D Motor Driver 5V Bipolar Stepper Motor 16X2 LCD Diaplay 11.0592 MHz Quartz Crystal 10KΩ Resistors X 2 10KΩ POT 8x 1KΩ Resistor Pack 33pF Ceramic Capacitors X 2  10μF/16V Capacitor Push Buttons X 4 330Ω Resistor 5V Power Supply Code #include<reg51.h> #define lcd P0 sbit rs=P2^0; sbit e=P2^1; sbit sw1=P1^2; sbit sw2=P1^1; sbit sw3=P1^3; sbit sw4=P1^0; sbit forward = P3^0; sbit backward = P3^1; sbit stop = P3^2; void delay (int); void cmd (unsigned char); void display (unsigned char); void string (char *); void init (void); void delay (int d) { unsigned char i; for(;d>0;d--) { for(i=250;i>0;i--); for(i=248;i>0;i--); } } void cmd (unsigned char c) { lcd=c; rs=0; e=1; delay(10); e=0; } void display (unsigned char c) { lcd=c; rs=1; e=1; delay(10); e=0; } void string (char *p) { while(*p) { display(*p++); } } void init (void) {

แผนภาพวงจรของการควบคุมความเร็วมอเตอร์กระแสตรงแบบ PWM โดยใช้ไมโครคอนโทรลเลอร์

รูปภาพ
ส่วนประกอบวงจร 8051 ไมโครคอนโทรลเลอร์ 11.0592 MHz Crystal ตัวเก็บประจุ - 33pF x 2, 10µF ตัวต้านทาน - 1KΩ x 4, 10KΩ x 2 มอเตอร์ 12V DC L298N ขับมอเตอร์ กดปุ่ม x 5 1KΩ x 8 ตัวต้านทานแบบดึงขึ้น สายเคเบิลอนุกรม แบตเตอรี่หรืออะแดปเตอร์ 12V สายเชื่อมต่อ Code #include<reg51.h> sbit PWM_Pin = P0^0;   sbit low = P0^4; sbit medium = P0^5; sbit high = P0^6; sbit off = P0^7; void InitPWM_timer(void); unsigned char PWM = 0;   unsigned int temp = 0;    char a=1; int main(void) { low=1; medium=1; high=1; off=1; PWM_Pin=0; InitPWM_timer();                 while(1)                   {    if(low==0) { PWM=102; a=0; } else if(medium==0) { PWM=153; a=0; } else if(high==0) { PWM=255; a=0; } else if(off==0) { a=1; PWM_Pin=0; } } }

ไฟ LED เชื่อมต่อกับ 8051

รูปภาพ
ไฟ LED เชื่อมต่อกับ 8051 ส่วนประกอบที่จำเป็น AT89C51 (ไมโครคอนโทรลเลอร์ 8051) 8 LEDs 8 ตัวต้านทาน - 1KΩ Crystal oscillator - 11.0592MHz 2 ตัวเก็บประจุ - 33pF 2 ตัวต้านทาน - 10KΩ  1 ตัวเก็บประจุ - 10μF  1 ปุ่มกด  โปรแกรมเมอร์ 8051  แหล่งจ่ายไฟ 5V Code #include<reg51.h> #define led P0 unsigned char i=0; void delay (int); void delay (int d) { unsigned char i=0; for(;d>0;d--) { for(i=250;i>0;i--);                 for(i=248;i>0;i--); } } void main() { while(1)//// led blink  { led=0xff; delay(1000); led=0x00; delay(1000); ++i; if(i==7) { i=0; break; }   } while(1)//// binary equivalent representation of 1byte data { led=i++; if(i==256) { i=0; break; } delay(500); } while(1); }

ใบงานที่ 9

รูปภาพ
void main() {   int i=3;   int j;   TRISC=0;     do {        switch (i)          {           case 1:            PORTC.F3=1;            delay_ms(200);            PORTC.F3=0;            delay_ms(200);            break;           case 2:            PORTC.F0=0;            delay_ms(200);            PORTC.F0=0;            delay_ms(200);            break;           case 3:            PORTC.F0=1;            delay_ms(200);            PORTC.F0=0;            delay_ms(200);            break;           case 4:            PORTC.F0=0;            delay_ms(200);            PORTC.F0=0;            delay_ms(200);            break;          }            j++;       }     while(j<5)  }

ใบงานที่ 8

รูปภาพ
code void main() {   int i=3;   int j;   TRISC=0;     while(j<5)     {     switch (i)     {       case 1:            PORTC.F3=1;            delay_ms(200);            PORTC.F3=0;            delay_ms(200);            break;        case 2:            PORTC.F0=0;            delay_ms(200);            PORTC.F0=0;            delay_ms(200);            break;         case 3:            PORTC.F0=1;            delay_ms(200);            PORTC.F0=0;            delay_ms(200);            break;        case 4:            PORTC.F0=0;            delay_ms(200);            PORTC.F0=0;            delay_ms(200);            break;     }            j++;    }  }