參考資訊:
https://www.stcmicro.com/datasheet/STC15F204EA-cn.pdf
Register


main.s
.org 0h
jmp _start
.org 100h
_start:
setb p0.0
call delay_1s
clr p0.0
call delay_1s
jmp _start
; 1t + ((1t + (4t * 250) + 4t) * 200t) + 4t = 201005t
; 11.0592MHz = 0.09042us
; 201005t * 0.09042us = 18175us
delay_18ms:
mov r7, #200
d0:
mov r6, #250
d1:
djnz r6, d1
djnz r7, d0
ret
; 1t + ((4t + 201005t + 4t) * 55) + 4t = 11055720t
; 11055720t * 0.09042us = 999658us ~= 1s
delay_1s:
mov r5, #55
d2:
call delay_18ms
djnz r5, d2
ret
.end
編譯、燒錄
$ mcu8051ide --compile main.s
$ sudo stcgal -p /dev/ttyUSB0 -l 9600 -b 9600 -t 11059 main.hex
Waiting for MCU, please cycle power: done
Protocol detected: stc15a
Target model:
Name: STC15F204EA
Magic: F394
Code flash: 4.0 KB
EEPROM flash: 1.0 KB
Target frequency: 11.059 MHz
Target BSL version: 6.7R
Target options:
reset_pin_enabled=False
watchdog_por_enabled=False
watchdog_stop_idle=True
watchdog_prescale=256
low_voltage_reset=True
low_voltage_threshold=4
eeprom_lvd_inhibit=True
eeprom_erase_enabled=False
bsl_pindetect_enabled=False
Loading flash: 284 bytes (Intel HEX)
Trimming frequency: 11.059 MHz
Switching to 9600 baud: done
Erasing 2 blocks: done
Writing flash: 576 Bytes [00:00, 755.67 Bytes/s]
Finishing write: done
Setting options: done
Target UID: F39444AF01C2FD
Disconnected!
完成
