Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Memrogram Seri Atmel AT89 Melalui Arduino

Komponen dan persediaan

Arduino UNO
× 1
LED (generik)
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)

Aplikasi dan layanan online

Arduino IDE
8051 Pemrogram SPI

Tentang proyek ini

Dalam Tutorial ini saya akan menunjukkan cara Membakar File Hex Anda Ke AT89c52 menggunakan Arduino Uno hanya dalam beberapa langkah mudah. Untuk ini kita harus menghubungkan AT89c52 ke Arduino Uno dan memberikan indikasi yang dipimpin melalui antarmuka LED ke At89c52.

Langkah 1:Daftar Bahan

  • Arduino UNO
  • Mikrokontroler AT89C52
  • kapasitor 10uF
  • Kabel Jumper
  • Resistor 8.2kohm
  • Kapasitor 510 ohm
  • LED
  • Kristal 12 MHz
  • 2 x 33pF Kapasitor

Langkah 2:Menghubungkan Mikrokontroler

Hubungkan pengontrol mikro seperti yang disebutkan di bawah ini:

  • Arduino Uno At89c52
  • Sematkan 6 Pin 5
  • Sematkan 7 Pin 4
  • Sematkan 8 Pin 3
  • Sematkan 9 Pin 2

Langkah 3:Kristal

Hubungkan Crystal di Pin 18 dan 19 Atmel dan kemudian hubungkan dua kapasitor 33pf dari pin 18 dan 19 ke Ground of Atmel. Lihat Bagian Skema Untuk Diagram Sirkuit Penuh.

Langkah 4:VCC Dan GND

Hubungkan Pin 5v Arduino Uno ke pin ke-40 Atmel dan pin GND ke Pin ke-20 Atmel.

Langkah 5:Antarmuka LED

Antarmuka LED dengan bantuan Diagram Sirkuit yang disediakan di Bagian Skema.

Langkah 6:Perangkat Lunak

Kami membutuhkan Programmer 8051 SPI untuk Membakar File Hex Ke 89c52. Tautan Disediakan di Bagian Perangkat Lunak. Unggah Kode yang diberikan ke Arduino UNO dan Programmer Anda sudah siap.

Kode

  • File tanpa judul
File tanpa judulC/C++
#define dummyData 0xAA#define RDY 75#define NRDY 76const int _MISO =4;const int _MOSI =5;const int _CLK =3;const int RST =2;/* Variable definition block */byte data;byte AL ,AH; // byte alamat 16-bit lockByte; // sematkan bit kunci dengan ini SigH,SigL; // Signature Bytesvoid setup(){pinMode(_MISO, INPUT);pinMode(_MOSI, OUTPUT);pinMode(_CLK, OUTPUT);pinMode(RST, OUTPUT);Serial.begin(115200); // tergantung pada pengaturan PC host}void loop(){ while (!Serial.available()); // tunggu karakter if (Serial.available()> 0) switch (Serial.read()) { case 'p':Serial.write(progEnable()); merusak; case 'r':readProgmem(); Serial.tulis(data); merusak; case 'a':while(!Serial.available()); AL =Serial.read(); merusak; case 'A':while(!Serial.available()); AH =Serial.read(); merusak; case 'd':while(!Serial.available()); data =Serial.read(); merusak; kasus 'S':AH =0; AL =0; SigH =readSign(); Serial.write(SigH); merusak; kasus 's':AH =2; AL =0; SigL =readSign(); Serial.write(SigL); AH =1; AL =0; SigL =readSign(); Serial.write(SigL); merusak; // baca kasus SigL 'o':digitalWrite(RST,1);break; huruf 'c':digitalWrite(RST,0);break; kasus 'e':eraseChip(); Serial.write(RDY); merusak; kasus 'j':istirahat; kasus 'w':writeProgmem(); merusak; }}unsigned char SendSPI(data char unsigned){ uint8_t retval =0; uint8_t intData =data; int t; for (int ctr =0; ctr <7; ctr++) { if (intData &0x80) digitalWrite(_MOSI,1); else digitalWrite(_MOSI,0); digitalWrite(_CLK,1); delayMicroseconds(1); t =digitalBaca(_MISO); digitalWrite(_CLK,0); jika (t) retval |=1; lain retval &=0xFE; retval<<=1; intData<<=1; delayMicroseconds(1); } if (intData &0x80) digitalWrite(_MOSI,1); else digitalWrite(_MOSI,0); digitalWrite(_CLK,1); delayMicroseconds(1); t =digitalBaca(_MISO); digitalWrite(_CLK,0); jika (t) retval |=1; lain retval &=0xFE; pengembalian kembali; }byte progEnable(){ SendSPI(0xAC); KirimSPI (0x53); KirimSPI(data dummy); return SendSPI(dummyData);}void eraseChip(){ SendSPI(0xAC); KirimSPI (0x9F); KirimSPI(data dummy); KirimSPI(data dummy); delay(520);}void readProgmem(){ SendSPI(0x20); Kirim SPI(AH); Kirim SPI(AL); data =SendSPI(dummyData);}void writeProgmem(){ SendSPI(0x40); Kirim SPI(AH); Kirim SPI(AL); SendSPI(data);}kosongkan writeLockBits(){ SendSPI(0xAC); KirimSPI(lockByte); KirimSPI(data dummy); SendSPI(dummyData);}batalkan readLockBits(){ SendSPI(0x24); KirimSPI(data dummy); KirimSPI(data dummy); lockByte =SendSPI(dummyData);}byte readSign(){ SendSPI(0x28); Kirim SPI(AH); Kirim SPI(AL); return SendSPI(dummyData);}

Skema


Proses manufaktur

  1. Memrogram Seri Atmel AT89 Melalui Arduino
  2. Membaca Sinyal PPM Penerima RC Menggunakan Arduino
  3. Arduino - Kirim Suhu ke Web melalui Serial
  4. ThimbleKrox - Kontrol Mouse dengan Jari Anda
  5. Kontrol Sirkuit Peka Gerakan melalui Intel Curie
  6. BLUE_P:Perisai Pemrograman Arduino Nirkabel
  7. Arduino - Pintu Pemantau Terbuka melalui Facebook Messenger
  8. Arduino - Menggambar melalui Web Menggunakan Step Motor Controller
  9. Kalkulator Arduino
  10. 25 kHz 4 Pin Kontrol Kipas PWM dengan Arduino Uno