マイコンSTC12C5204ADの使い方5

マイコン側のシリアル通信プログラムを新しくします。
シリアル通信のPythonのプログラムは前回の「test4.py」のままです。

使用機材
aitendo_8051コアマイコン [STC12C5204AD]
aitendo_USB-TTL変換モジュール [U2TL2303-10P]
aitendo_ブレッドボード[SYB-46]

回路
マイコンPORT/
3/--10K--GND
4/--USB-TTL変換TX
5/--USB-TTL変換RY(RX?)
14/--GND--USB-TTL変換GND
28/--+5V--USB-TTL変換5V

マイコンのプログラムを「prog3.c」とします。
------------------------------------------------------
// SDCC を使用
#include <8051.h>

void main() {
char c;

// Timer1 を使って、9600bps に設定する
TMOD |= 0x20; // Timer1: mode=2
TH1 = 0xFD; // set reload value
TCON |= 0x40; // set TR1; start Timer1

// UART を 8bit mode に設定、受信を許可(REN=1)
SCON= 0x50; // 8bit-UART(SM0=0,SM1=1), REN=1

//UARTでデータを受信すると、RIフラグが立つ。
//RI フラグを検出後、RIフラグをクリアして、SBUF からデータを受信。
// 送信は、SBUF にデータを書き込むと送信される。

for(;;) {
if(RI) {
RI= 0;
c= SBUF;
SBUF= c;
}
}
}
------------------------------------------------------
prog3.cをコンパイルしてマイコンに入力します。
------------------------------------------------------
aaa@aaa:~/Desktop/シリアル_C言語/prog3$ sdcc prog3.c
aaa@aaa:~/Desktop/シリアル_C言語/prog3$ ls
prog3.asm prog3.ihx prog3.lst prog3.mem prog3.rst
prog3.c prog3.lk prog3.map prog3.rel prog3.sym
aaa@aaa:~/Desktop/シリアル_C言語/prog3$ stcgal prog3.ihx
Waiting for MCU, please cycle power: done
Protocol detected: stc12b
Target model:
Name: STC12C5204AD
Magic: E164
Code flash: 4.0 KB
EEPROM flash: 2.0 KB
Target frequency: 10.915 MHz
Target BSL version: 6.6H
Target options:
reset_pin_enabled=True
low_voltage_reset=False
oscillator_stable_delay=32768
por_reset_delay=short
clock_gain=high
clock_source=external
watchdog_por_enabled=False
watchdog_stop_idle=True
watchdog_prescale=256
eeprom_erase_enabled=False
bsl_pindetect_enabled=False
Loading flash: 124 bytes (Intel HEX)
Switching to 19200 baud: testing setting done
Erasing 2 blocks: done
Writing flash: 640 Bytes [00:00, 2327.04 Bytes/s]
Finishing write: done
Setting options: Protocol error: incorrect magic in option packet
Disconnected!
aaa@aaa:~/Desktop/シリアル_C言語/prog3$
------------------------------------------------------
Pythonのプログラムを下に示します。
ファイル名を「test4.py」とします。
------------------------------------------------------
import serial

ser = serial.Serial('/dev/ttyUSB0',9600)

ser.write("abc")

string = ser.read(3)
print(string)

ser.close()
------------------------------------------------------
上のプログラムを実行します。
------------------------------------------------------
aaa@aaa:~/Desktop/python/test4$ python test4.py
abc
aaa@aaa:~/Desktop/python/test4$
------------------------------------------------------