实验一:点亮单个led灯;
实验二:led灯亮灭闪烁显示;
实验三:led流水灯点亮
实验一程序:点亮单个led灯;
#include <rge52.h>
void main()
{
while(1)
{
P2=0xfe; /*1111 1110 低电平点亮,高电平熄灭,所以结果是灭灭灭灭 灭灭灭亮*/
}
}
注意事项:
1.我的led接的P2口所以是P2=0xfe,你接几口就改 P 几口。
2.你要亮那个灯就按上面那个写出二进制然后转换16进制。
比如你要亮左边第一个灯,二进制就是0111 1111进制转换就是0x7f。
二进制转16进制,4个二进制转一位16进制,右边开始 1111>>f , 0111>>7
3.至于你是低电平亮还是高电平亮,主要看你原理图led灯是接共阳还是共阴。
(图中是共阳,所以是低电平点亮)
实验一原理图:
原理图元器件清单:
实验二程序:led灯的亮灭闪烁显示
#include <reg52.h>
void Delay500ms() //软件生成延时函数
{
unsigned char i, j, k;
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0xfe;//1111 1110
Delay500ms();//延时500ms
P2=0xff;//1111 1111
Delay500ms();//延时500ms
}
}
注意事项:
1.该程序延时函数是软件生成延时500ms如果你想要延时1秒或其他时间就看我另外一个帖子如何软件自动生成延时函数_学习笔记吧的博客-CSDN博客,然后替换掉,并且下面Delay500ms改新的子函数名,就是延时其他时间了;
2.该程序是实现一个灯的亮灭,如果你需要改其他某一位或全部一起亮灭,就需要改P2=的值。
还是一样,比如需要8个灯一起亮灭就是0000 0000>>0x00 全亮, 1111 1111>>0xff 全灭。
实验二原理图:
实验三程序:led流水灯点亮
因为流水灯操作有点多,想讲细一点,所以另外发个帖子讲,大家可以在我主页搜索《led流水灯点亮》,或者下面链接直达。https://blog.csdn.net/qq_64972872/article/details/127294908https://blog.csdn.net/qq_64972872/article/details/127294908
这些应该差不多了吧,可能还有什么开幕式流水灯就是中间开始往两边走,有点像爱心流水灯一个程序,还有定时器控制流水灯延时时间。这个你们遇见了评论区再说,一般是不会出,到时候有人需要就加进来。