#+title: 基于51单片机的心形LED流水帐 #+date: <2023-05-20 Sat 21:54> #+author: thebesttv 520 没有 npy,就自己弄板子玩,悲。 好久没有玩玩硬件相关的了,就想着从简单的开始入门画板子。 照着立创官方的[[https://oshwhub.com/course-examples/gong-cheng-wen-jian-ji-yu-51-dan-pian-ji-de-xin-xing-liu-shui-deng-she-ji][基于51单片机的心形流水灯设计]]画的板子, 然后用 PlatformIO 上的 51 单片机样例改的代码。 * 画板子 使用 STC89C52RC 作为 MCU,Type-C 口供电(仅供电),30 个 LED,用排针引出串口烧录。 一些小总结: - 直接使用 5V 驱动。 - 晶振频率 11.0592 MHz。 - 30 个 IO 口(P0.0--7、P1.0--7、P2.0--7、P3.2--7)对应 30 个 LED,使用低电平点亮。 - P0.0--P0.7 作为 IO 口时需要外接 10K 的上拉电阻。 - 元件都是直插的,方便焊接。 - 外围电路很简单,基本只有晶振和复位。 * 代码 使用 PlatformIO 作为 IDE,开发板选择 Generic-8051,开一个空项目。 然后再去 PIO Home 导入样例,选 anymcu-blink。 =platformio.ini= 修改为: #+begin_src text [env:STC89C52RC] platform = intel_mcs51 board = STC89C52RC #+end_src 具体代码在私有仓库里,单纯做个记录,就不放出来丢人了hh * 烧录 PIO 在烧录时使用 [[https://github.com/grigorig/stcgal][stcgal]],随便找一个 USB 转串口的线即可。 注意*烧录前先断开串口的 VCC*,只接 RX、TX、GND。 等开始烧录,显示 “Cycling power: done” 时再接上 VCC。 或者,也可以一直插着 VCC,然后在烧录时重新插拔一次。