Beschreibung
🔧 YS-51 Entwicklungsplatine – Vollständige Beschreibung
📌 Übersicht
Die YS-51 ist eine Entwicklungsplatine, die um den Mikrocontroller STC89C52gebaut ist, der zur Familie STC (Einzelchip-Mikrocomputer)gehört. Es handelt sich um einen 8051-kompatiblen Mikrocontroller, der sehr häufig in der Bildung und für kostengünstige eingebettete Anwendungen verwendet wird.
🧠 Hauptmerkmale
| Merkmale | Beschreibung |
|---|---|
| Mikrocontroller | STC89C52RC (kompatibel mit Intel 8051) |
| Takt | 11,0592 MHz Quarz-Oszillator (typisch) |
| Interner RAM | 128 Byte |
| EEPROM/Flash | 8KB (programmierbar über UART) |
| GPIO | 32 I/O-Pins (4 Pins von 8 Bit) |
| Schnittstellen | UART, Timer, Interrupt, SPI/I2C (via Bit-Banging) |
| Betriebsspannung | 5V DC |
| Programmierung | Über TTL-Serielle Schnittstelle (UART) |
🔌 Komponenten auf der Platine
- Status-LED
- Reset-Taster
- Außenquarz
- Serienverbindungsanschluss für die Programmierung
- Männliche Steckkontakte für jede I/O-Schnittstelle
- Energieversorgung über USB oder Pinheader
🔗 Kompatibilität mit Arduino
Die Platine YS-51 ist nicht direkt mit demArduino IDE kompatibel, da der Mikrocontroller STC89C52 nicht nativ von Arduino unterstützt wird (wie es ATmega328p, ATmega2560 usw. sind).
Trotzdem kannst du:
- Den STC89C52 mit seinem offiziellen Software (STC-ISP) programmieren.
- Arduino als Serienbrücke verwenden, um den Code auf den STC zu laden.
- Oder sie über UART miteinander kommunizieren, als separate Geräte.
🛠️ Anleitung zur Programmierung der YS-51
1️⃣ Benötigt
- YS-51 Platine
- USB-TTL-Wandler (z.B. CH340 oder FTDI)
- Programmier-Software STC-ISP
- IDE zum Schreiben des Codes: Keil uVision 5 (Sprache C)
2️⃣ Verbindungen für die Programmierung
Verbinde die Pins wie folgt:
| YS-51 Pin | USB-TTL |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
| VCC | 5V |
Um die Programmierung zu starten:
- Drücke den Knopf RESET auf der YS-51.
- Starte das Laden des Programms STC-ISP.
- Lass RESET los.
3️⃣ Schreibe ein einfaches LED Blink Programm
#include <reg52.h>
sbit LED = P1^0;
void delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 123; j++);
}
void main() {
while (1) {
LED = 0;
delay_ms(500);
LED = 1;
delay_ms(500);
}
}
4️⃣ Kompilieren und Laden
- Kompiliere die Datei
.cin Keil uVision → erzeuge Datei.hex. - Öffne STC-ISP → wähle die korrekte COM-Port.
- Lade die Datei
.hexauf die YS-51. - Drücke RESET zum Starten.
🧪 Beispiele für Kommunikation mit Arduino
➕ Arduino als Master UART
Wiring (serielle Kommunikation):
| Arduino | YS-51 |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
Arduino Code:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello from Arduino");
delay(1000);
}
STC Code (Keil C):
#include <reg52.h>
#include <stdio.h>
void UART_Init(void) {
SCON = 0x50; // UART mode 1
TMOD = 0x20; // Timer 1 mode 2
TH1 = 0xFD; // Baud rate 9600
TL1 = 0xFD;
TR1 = 1; // Start Timer1
TI = 1;
}
void main() {
UART_Init();
while (1) {
if (RI) {
RI = 0;
P1 = SBUF; // visualizza byte ricevuto su P1
}
}
}
🧭 Weitere Beispiel Projekte
- LCD Display 1602 mit STC
- Steuerung mit kompatiblen 8051 Bibliotheken.
- Zähler mit siebensegmentanzeige
- Verwende Timer + GPIO.
- Temperatursensor (DS18B20 oder LM35)
- Analoge Lesung (über externen ADC) oder digitale (1-wire).
📚 Nützliche Ressourcen
📌 Schlussfolgerung
Die YS-51 ist eine vielseitige Platine für Anfänger, die mit der 8051-Architektur beginnen möchten. Obwohl sie nicht direkt mit dem Arduino-Ekosystem kompatibel ist, kann sie zur Kommunikation mit Arduino verwendet oder mit speziellen Werkzeugen programmiert werden. Sie bietet eine ausgezeichnete Möglichkeit, die Grundlagen traditioneller Mikrocontroller zu erlernen.
Lasst uns mit einem spezifischen vollständigen Projekt basierend auf der YS-51-Platine (STC89C52): Steuerung eines Relais über einen Taster und serielle Kommunikation mit Arduino.
🔌 Projekt: Steuerung eines Relais mit STC89C52 und Kommunikation mit Arduino
🎯 Ziele
- Verbinden Sie einen Taster um ein Relais-Modul einzuschalten/auszuschalten.
- Empfangen ein Befehl über Seriale von Arduino um den Relais zu aktivieren/deaktivieren.
- Senden den Zustand des Relais an Arduino.
🧱 Notwendige Materialien
| Komponente | Menge |
|---|---|
| YS-51 mit STC89C52 | 1 |
| Arduino Uno/Nano | 1 |
| 5V Relais Modul | 1 |
| Taster + Widerstand von 10kΩ | 1 |
| Dupont Kabel | verschiedene |
| 5V Versorgung | 1 |
🔌 Verbindungsplan
YS-51 → Relais
| STC89C52 | Relais |
|---|---|
| P1.0 | IN (Signal) |
| GND | GND |
| VCC | VCC |
YS-51 → Knopf
| Knopf | STC89C52 |
|---|---|
| Einer der Enden | P1.1 |
| Der andere Ende | GND |
Verwenden Sie eine internen Pull-up oder eine externe Widerst von 10kΩ zwischen P1.1 und VCC.
YS-51 ↔ Arduino (UART)
| STC89C52 | Arduino |
|---|---|
| TX (P3.1) | RX |
| RX (P3.0) | TX |
| GND | GND |
💾 STC89C52 Code (Keil C)
#include <reg52.h>
#include <stdio.h>
sbit RELAY = P1^0;
sbit BUTTON = P1^1;
void UART_Init(void) {
TMOD = 0x20; // Timer1 Mode2
TH1 = 0xFD; // 9600 baud
TL1 = 0xFD;
TR1 = 1; // Start timer
SCON = 0x50; // UART mode 1, 8-bit, enable RX
TI = 1; // Set transmit ready
}
void UART_SendString(char *s) {
while (*s) {
SBUF = *s++;
while (!TI);
TI = 0;
}
}
void delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 123; j++);
}
void main() {
UART_Init();
RELAY = 0; // relè OFF
while (1) {
if (BUTTON == 0) { // premuto (collegato a GND)
RELAY = !RELAY; // cambia stato
UART_SendString(RELAY ? "Relay ONn" : "Relay OFFn");
delay_ms(500); // debounce
}
if (RI) {
char cmd = SBUF;
RI = 0;
if (cmd == '1') {
RELAY = 1;
UART_SendString("Relay ONn");
} else if (cmd == '0') {
RELAY = 0;
UART_SendString("Relay OFFn");
}
}
}
}
💻 Arduino Code (Serial Monitor + Command Sending)
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
String stato = Serial.readStringUntil('n');
Serial.println("STC ha risposto: " + stato);
}
if (Serial.availableForWrite()) {
char comando = Serial.read();
// Comandi manuali da Serial Monitor
if (comando == '1') Serial.write('1');
else if (comando == '0') Serial.write('0');
}
// Simula un comando automatico ogni 5 sec
static unsigned long t = millis();
if (millis() - t > 5000) {
Serial.write('1');
delay(2000);
Serial.write('0');
t = millis();
}
}
⚙️ Keil uVision and STC-ISP Installation (Step by Step)
🔽 1. Download the tools
- Keil uVision5:
https://www.keil.com/download/product/ - STC-ISP Programmer (v6.85 or similar):
http://www.stcmcu.com/datasheet/stc-isp-15xx-v6.85.zip
🧰 2. Keil Installation
- Start the setup.
- During the installation, select „8051 microcontroller support“.
- Erstelle ein neues Projekt:
- Ziel:
STC89C52RCoGeneric 8051 - Datei hinzufügen
.c
- Ziel:
- Kompiliere (
F7) → erhalte Datei.hex.
💾 3. Verwendung von STC-ISP
- Verbinde die YS-51 über USB-TTL.
- Starte
STC-ISP. - Wähle:
- Korrekte COM-Port
- Chip-Typ:
STC89C52RC - Lade Datei
.hex
- Drücke RESET auf der Platine.
- Klicke „Download/Programmieren“.
- Warte auf Bestätigung (Dauer: etwa 3–4 Sekunden).
✅ Endtest
- Wenn Sie den Knopf auf dem YS-51 drücken, wird das Relais aktiviert/deaktiviert.
- Über den seriellen Monitor von Arduino senden Sie
'1'o'0'. - Überprüfen Sie den Rückmeldungsoutput von STC → Arduino → PC.
Tutorial: Wie man die YS 51 Entwicklungsplatine STC verwendet
Die YS 51 Platine auf STC ist ideal für Macher, die das universum niedrigkostiger Mikrocontroller erforschen möchten. Es handelt sich um einen einzigen Chip, der in eine vollständige Entwicklungsplatine integriert ist, und ist sowohl für Anfänger als auch für mittlere Entwickler geeignet.
Was du brauchst
- YS 51 Entwicklungsplatine STC
- USB-Mikro-USB-Anschluss
- Arduino IDE installiert
Schritte
- Verbinden Sie das USB-Kabel mit der YS 51 Platine und dem Computerhardware.
- Öffnen Sie die Arduino IDE und wählen Sie ‚STC89C52RC‘ als Gerät im Menü ‚Gerät > Platine‘.
- Überprüfen Sie die installierte Firmware-Version auf der Platine. Falls erforderlich, laden Sie und installieren Sie die neueste Version vom offiziellen Website.
- Lade ein Beispiel-Sketch aus der Arduino Bibliothek (z.B. Blink) um die Verbindung zu testen.
- Wähle ‚Datei > Neues Dokument‘ in der Arduino IDE und füge den im Tutorial bereitgestellten Sketch ein.
- Kompiliere und lade den Sketch auf den Mikrocontroller YS 51.
- Überprüfe die korrekte Ausführung des Codes durch Überwachung der Ausgänge über den Serial Monitor von Arduino.
- Ermittle weitere Funktionen der Platine durch die von dem Hersteller bereitgestellten Dokumente.
Beispielcode
// Includi la libreria necessaria
#include <STC89.h>
// Definisci le pin
#define LED_BUILTIN 13
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Accendi il LED
delay(1000); // Attende un secondo
digitalWrite(LED_BUILTIN, LOW); // Spegni il LED
delay(1000); // Attende un secondo
}
Mini-Projekt
Erstelle eine kleine Nachtlampe mit der YS 51 Entwicklungsplatine STC. Verbinde einen Lichtsensor und programmier die Platine, um eine Lampe automatisch zu schalten, wenn es dunkel wird.
Häufige Fehler
- Stelle sicher, dass die Arduino IDE korrekt mit den Einstellungen des Mikrocontrollers konfiguriert ist.
- Überprüfe die USB-Verbindungen zwischen dem Computer und der Platine.
- Überprüfe, ob es Fehler in der Kompilierung des geladenen Codes gibt.
- Überprüfen Sie die Hardware-Kompatibilität zwischen der YS 51 Platine und dem verwendeten Entwicklungs-Hardware.
Empfohlenes Zubehör
- USB-Mikro-USB-Kabel
- JTAG-Kabel für Debugging
- Steckbrett
- Verschiedene Sensoren
Häufige Fragen
Wo kann ich das Datenblatt für die YS 51 finden?
Das Datenblatt ist auf der Produktionswebsite oder in der ‚Dokumentation‘ Ordner des Arduino IDE Installationspakets verfügbar.
Kann ich die YS 51 mit anderen Programmiersprachen als C/C++ verwenden?
Die meisten Funktionen der Platine sind über das Arduino IDE zugänglich, aber Sie müssen zusätzliche Bibliotheken installieren, um andere Sprachen zu verwenden.
Was ist der Unterschied zwischen YS 51 und Arduino Uno?
Die YS 51 ist ein kostengünstiger Mikrocontroller mit begrenzten Funktionen im Vergleich zum Arduino Uno, bietet aber eine kosteneffiziente Lösung für einfache Projekte.





















Rezensionen
Es gibt noch keine Rezensionen.