Guten Abend. Ich habe eins dieser blauen STC8A8K64S4A12 Development Boards, wie sie bis vor kurzem von vielen Händlern auf ebay verfügbar waren (http://www.colecovision.eu/mcs51/STC8A8K64S4A12%20Development%20Board.jpeg). Leider ist es mir bisher nicht gelungen, den UART zu nutzen. Weder der Beispielcode aus Abschnitt 14.7.3 des Datenblatts, noch Beispielcode vom STC89C52RC (http://www.colecovision.eu/mcs51/STC89%20DEMO%20BOARD%20Serial.shtml) bewirken etwas: Selbst die LED, die an P3.0 und P3.1, den Pins für Rx / Tx, liegen zeigen keinerlei Aktivität. Den Code hatte ich noch an die Taktrate des STC8A8K64S4A12 angepasst, und auch noch ausprobiert, S1_S (für die Wahl der UART-pins) explizit auf 0 zu initialisieren, das half aber beides auch nicht. Anderer einfacher Code (LED blinken, http://www.colecovision.eu/mcs51/STC8A8K64S4A12%20Development%20Board%20LED.shtml) geht dagegen.
Auch beim IAP15W4K58S4 ist es mir bisher nicht gelungen, den UART zum Laufen zu bringen.
1 | #include <stdio.h> |
2 | |
3 | __sfr __at(0x88) TCON; |
4 | __sfr __at(0x89) TMOD; |
5 | __sfr __at(0x8b) TL1; |
6 | __sfr __at(0x8d) TH1; |
7 | |
8 | __sfr __at(0x98) SCON; |
9 | __sfr __at(0x99) SBUF; |
10 | |
11 | int putchar(int c) |
12 | {
|
13 | while(!(SCON & 0x02)); |
14 | SCON &= ~0x02; |
15 | SBUF = c; |
16 | return (c); |
17 | }
|
18 | |
19 | void main(void) |
20 | {
|
21 | unsigned long int i = 0; |
22 | |
23 | // Configure UART for 9600 baud, 8 data bits, 1 stop bit.
|
24 | TMOD = 0x20; |
25 | SCON = 0x40; |
26 | TH1 = 256 - 24.0 * 1000 * 1000 / 12 / 32 / 9600 + 0.5; |
27 | TCON |= 0x40; |
28 | SCON |= 0x02; // Tell putchar() the UART is ready to send. |
29 | |
30 | for(;;) |
31 | {
|
32 | printf("Hello World!\n"); |
33 | for(i = 0; i < 147456; i++); // Sleep |
34 | }
|
35 | }
|
Auch dort klappt es aber mit Timer und I/O (http://www.colecovision.eu/mcs51/STC15W4K56S4%20SCM%20LED.shtml).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.