目录
- 新建项目
- 选择型号
- 添加新文件到该项目
- 设置字体和utf-8编码
- 二极管如何区分正负极
- 原理:CPU通过寄存器来控制硬件电路
- 用P2寄存器的值控制第一个灯亮
- 进制转换
- 编译
- 查看P2寄存器的地址
- 生成HEX文件
- 把代码下载到单片机中
- 下载程序到单片机
新建项目
选择型号
stc是中国生产的、这个里面没有包括stc型号,可以用Atmel中的AT89C52代替
添加新文件到该项目
设置字体和utf-8编码
二极管如何区分正负极
VCC是LED模块中的正极。(VCC,是Volt Current Condenser的简写,意思是电路的供电电压)
左边的红色部分是负极、它们的编号对应引脚部分的编号。
LED模块蓝色的框是电阻、对应上图红框圈着的东西。
电阻是一千欧的。
1000欧对应102。
102 = 10 x 10^2 = 1000欧
473 = 47 x 10^3 = 47 000欧
1001 = 100 x 10
1002 = 100 x 10^2
高电流是5V、低电流是0V
灯直接接5V的话可能会烧毁、所以需要电阻。
原理:CPU通过寄存器来控制硬件电路
寄存器的八位对应LED的低电流端的8个引脚
寄存器的1代表高电流 5V。
0代表低电流0V
用P2寄存器的值控制第一个灯亮
当最上面的设置为0,那么就对应低电流,D1就可以亮。
其它的设置为1、那么负极设置成高电流、设置为1的不会亮。
从而只让第一个灯亮。
P2 = 1111 110
直接这样写系统会认为是十进制、所以需要进制转换。
进制转换
十六进制就是十进制到10的时候编程A、然后15的时候变成F
二进制1111 1110 可以转换为 0xFE
void main()
{
P2 = 0xFE; // 相当于二进制1111 1110
}
这样的话第一个端口是低电流,其它都是高电流。
编译
点击编译发现报错说P2没有定义。
导入:
#include <REGX52.H>
查看P2寄存器的地址
导入项目之后,右键这个包可以打开里面的内容:
P2已经被定义为0xA0;
导入包之后代码就不会报错了,因为会把P2自动识别为0xA0这个地址的寄存器。
点击编译。
生成HEX文件
然后重新编译。
如果不生成HEX文件,是无法将代码弄到单片机中的。
把代码下载到单片机中
此处要看清单片机的型号,我的是STC89C52RC。
找到项目的Objects文件,打开hex后缀的文件
点击打开。
下载程序到单片机
此时单片机必须是打开状态、点击下载,右边显示正在检测。
然后 关闭单片机,然后重新打开
右边下交显示成功下载则成功。