在线做ppt的网站有哪些,网站验证码系统,沈阳口碑最好的男科医院,赞叹天河网站建设公司第一节主要是针对LED的控制学习。这个过程中我们需要掌握的#xff1a;1、控制的实现方法#xff0c;控制实现的方法在后续的学习中是通用的。2、如何知道谁控制谁#xff0c;通过查找开发板原理图获取#xff0c;原理图的阅读的能力#xff0c;在日后也是非常常用的。
一… 第一节主要是针对LED的控制学习。这个过程中我们需要掌握的1、控制的实现方法控制实现的方法在后续的学习中是通用的。2、如何知道谁控制谁通过查找开发板原理图获取原理图的阅读的能力在日后也是非常常用的。
一、原理图阅读 以我买的板子为例打开我的板子的原理图我们学的是方法不妨先按我的学习然后去对照自己的板子进行修改理解原理图如下 从这个图纸中我们很容易看出我们的LED通过VCC、和P2_XX代表数字控制。一端是高电平所以很显然当P2_X是低电平的时候我们可以点亮某一路小灯。 那么我们要关注P2_X如何控制我们继续查询开发板原理图 不难看出P2_X对应接在C51芯片的P2_0~7端口。 所以我们只需要对应的控制端口P2_X即可。
二、点亮一个灯
#include REGX52.Hvoid main()
{P20xFE; //1111 1110while(1){}
} 这一段代码就是直接控制P2一次控制8位。1111 1110让P2_0输出低电平剩余输出高电平我们就实现了D1小灯的亮。
三、LED闪烁 基于上一个电灯控制现在加一些些难度我们实现一个小灯的闪烁功能。 思路就是小灯亮一下暗一下。但是此时我们去直接
void main()
{while(1){P20xFE; //1111 1110P20xFF; //1111 1111}
}我们会发现小灯一直是亮的这是为什么因为单片机的处理速度非常快小灯在我们人眼可以查觉之外的时候已经完成了亮暗变化我们就一直以为是亮的。 为了解决这个问题我们需要引入延时函数可以借助stc-isp软件帮忙生成 我们可以写出下面的代码
#include REGX52.H
#include INTRINS.Hvoid Delay500ms() //12.000MHz
{unsigned char i, j, k;_nop_();i 4;j 205;k 187;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){P20xFE; //1111 1110Delay500ms();P20xFF; //1111 1111Delay500ms();}
}看着很多东西其实我们自己书写的只有main函数的while部分。
四、流水灯 难度再次升级我们能够控制一个灯的闪烁我们是不是就可以控制一排灯按照顺序点亮的操作视觉上我们看到的就是一个灯像流水一样流动。 思路其实很简单第一个量完第二个亮。。。以此类推。
#include REGX52.H
#include INTRINS.Hvoid Delay500ms() //12.000MHz
{unsigned char i, j, k;_nop_();i 4;j 205;k 187;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){P20xFE;//1111 1110Delay500ms();P20xFD;//1111 1101Delay500ms();P20xFB;//1111 1011Delay500ms();P20xF7;//1111 0111Delay500ms();P20xEF;//1110 1111Delay500ms();P20xDF;//1101 1111Delay500ms();P20xBF;//1011 1111Delay500ms();P20x7F;//0111 1111Delay500ms();}
}至此我们学会了如何直接控制输出端口操作LED小灯了。