今天看到开发板上面还有一个交通灯模块,于是就试了一下交通灯控制。
首先打开原理图,搜索交通灯,如下:
从上图中可以看出,所有的LD灯都是接在VCC上面的,所以LED灯的接法是共阳极的,需要给控制引脚一个低电平才可以触发。
这是交通灯的电路排布:
我的接线
JP1 --- P0 J22 --- P2.1|P2.0
交通定的原理应该大家都知道了吧,就不多作解释了。直接上程序:
#include
#define uchar unsigned char
#define uint unsigned int
//我的接线 JP1 --- P0 J22 --- P2.1|P2.0
//上面红灯亮
#define RED1 0x5e //01011110
#define RED1_ 0x02 //10
//黄灯亮
#define RED2 0x6d //01101101
#define RED2_ 0x02 //10
//右边红灯亮
#define RED3 0xB3 //10110011
#define RED3_ 0x01 //01
//延时函数
void delay_ms(uint ms)
{
uchar kk;
for(;ms>0;ms--)
for(kk=110;kk>0;kk--);
}
int main()
{
P0 = 0;
P2 = 0;
while(1)
{
P0 = RED1;
P2 = RED1_;
delay_ms(5000);
P0 = RED2;
P2 = RED2_;
delay_ms(2000);
P0 = RED3;
P2 = RED3_;
delay_ms(5000);
}
}
最终的实现结构图:
由于手机像素比较渣,拍出来不太容易看出效果,这是在提示我该换手机了;P
好了,交通灯的试验就到这里了,其实还可以加上数码管计时显示的。期望大家支持:)
今天看到开发板上面还有一个交通灯模块,于是就试了一下交通灯控制。
首先打开原理图,搜索交通灯,如下:
从上图中可以看出,所有的LD灯都是接在VCC上面的,所以LED灯的接法是共阳极的,需要给控制引脚一个低电平才可以触发。
这是交通灯的电路排布:
我的接线
JP1 --- P0 J22 --- P2.1|P2.0
交通定的原理应该大家都知道了吧,就不多作解释了。直接上程序:
#include
#define uchar unsigned char
#define uint unsigned int
//我的接线 JP1 --- P0 J22 --- P2.1|P2.0
//上面红灯亮
#define RED1 0x5e //01011110
#define RED1_ 0x02 //10
//黄灯亮
#define RED2 0x6d //01101101
#define RED2_ 0x02 //10
//右边红灯亮
#define RED3 0xB3 //10110011
#define RED3_ 0x01 //01
//延时函数
void delay_ms(uint ms)
{
uchar kk;
for(;ms>0;ms--)
for(kk=110;kk>0;kk--);
}
int main()
{
P0 = 0;
P2 = 0;
while(1)
{
P0 = RED1;
P2 = RED1_;
delay_ms(5000);
P0 = RED2;
P2 = RED2_;
delay_ms(2000);
P0 = RED3;
P2 = RED3_;
delay_ms(5000);
}
}
最终的实现结构图:
由于手机像素比较渣,拍出来不太容易看出效果,这是在提示我该换手机了;P
好了,交通灯的试验就到这里了,其实还可以加上数码管计时显示的。期望大家支持:)