准备
硬件:单片机最小系统及电源,CH340芯片的usb-ttl线,89c52芯片,11.0592hz晶振。
软件:sdcc,stcgal,CH340驱动
- 安装驱动
先安装一下驱动链接下的驱动,有一个权限的提示,需要去权限需要去处理一下,一方面把运行程序的权限给到“任何人”,另一方面手动的去点击一下允许。 - 单片机最小系统
先把89c52芯片插入卡槽,注意缺口位置对着压杆位置,晶振的两个引脚差最左和最右的两个插槽。 - 连接单片机
如下图所示,USB的电源连接在电源线上,usb转ttl从左到右分别是GND,RXD,TXD,链接到单片机最小系统当中,GND接单片机的GND,RXD接单片机的TXD,TXD接单片机的RXD。
- 使用以下代码检测是否有串口,如果有说明链接成功。如果没有,就去检测一下驱动和线是否插好
ls /dev/tty.usbserial*
点亮一个led小灯
- LED小灯的参数
工作电流10至20 mA,压降2v(可以用万用表量出),所以电阻应该是1k到2k? - 单片机的输出参数
输出电流一般是10~20mA,电压为5v, - 所以需要一个电阻去承担另外3v的压降
电阻值应该是,3/0.002 ~ 3/0.001 1000~3000之间。 - 按下图接线,P20链接发光二极管负极,发光二极管正级前面加一个电阻后接入5v引脚
5.找个编辑器创建文本main.c,写入以下代码保存,这里代码的意思就是把P2_0的端口置为低电平,也就是0v,这样就形成了压降,led点亮。写成1,那就是灭了。
#include <8051.h>
void main() //主函数
{
P2_0 = 0;
}
- 使用sdcc编译main.c,生成的文件中只有main.ihx是有用的
sdcc main.c
- 使用stcgal 工具刷入单片机,下面的{???}替换成查询到的端口。看到下图,再按一下单片机最小系统的电源,等待结果就行。
stcgal -P stc89 -p /dev/tty.usbserial-{????} main.ihx