之前一篇文章介绍了LED发光的原理,只需要将发光二极管对应的STC89C52引脚电平设置为低电平就可以了,好,我们把D1 D3 D5点亮。
怎么知道哪个引脚控制哪个发光二极管呢? 这个我想配套的电路原理资料会有解释的,我这里也是看视频知道的。
具体步骤是 先编写代码,编译,然后用开发板对应的烧录程序把最后生成的HEX文件写进去。
先看下代码:
#include 'reg52.h'
sbit ledD1=P2^0; //P20
sbit ledD3=P2^2; //P22
sbit ledD5=P2^4; //P24
void main()
{
while(1)
{
ledD1=0;
ledD3=0;
ledD5=0;
}
}
代码解释:
sbit ledD1=P2^0; //P20
要控制哪个引脚,就给这个引脚起一个名字,然后用这个名字设置引脚的数据。值得注意的是,P20引脚在程序中要写成P2^0,其他引脚也是类似的做法。
我给P20这个引脚起了一个名字,叫ledD1,因为它控制D1这个发光二极管是否发光。
ledD1=0;
这是把P20这个引脚设置为低电平,这样D1就亮了。
while(1)
{
ledD1=0;
ledD3=0;
ledD5=0;
}
为什么要有一个循环,因为我们想让D1 D3 D5一直亮,所以就必须一直给P20 P22 P24低电平,重复做一件事情,那不就是用循环吗?事实上我试过,直接把代码写成
ledD1=0;
ledD3=0;
ledD5=0;
D1 D3 D5也会一直亮,我猜测是编译器给我们自动加上了循环的代码。
烧录
电脑用USB线连接开发板之后安装驱动,打开烧录程序,依次点击 选择心片类型 串口号 打开文件 程序下载
最后看下效果图: