CT107D-让我们先从亮第一个LED灯开始吧!
我们从官方的SCH文件中,可以看到LED相关电路:
上面还很贴心的给标注了D1~D8连接的相应MCU引脚,真是非常方便,从原理图上可以看出,假如我们想让LED(L1)亮起来,由于LED组为共阳结构,需给Q1端推送一个低电平,才能使得L1亮起来。
于是我信心满满的打开keil,然后编写C程序:
#include <reg52.h> sbit led_1=P0^0; int main() { while(1) led_1=0; return 0; }
真是的,这么简单,怎么能难倒我!
???我的内心充满了迷茫,甚至开始怀疑自己是不是在做梦。。。
仔细一看,左边还有一个74HC573锁存器,按照人类正常的逻辑,这个锁存器就是为了LED能够亮起来服务的,所以我条件反射的把它们忽略掉了。
再仔细一看,板子上其实搭载了4个锁存器,分别控制LED,数码管段选,数码管位选,ULN2003,并且需要这个玩意儿(74HC138)来控制
所以哪怕我只是想让这个LED亮起来,还得先去选择LED的锁存器,然后再传低电平过去?
行吧,什么神仙设计,咱认输了。
发现一个小问题,那就是上电之后,蜂鸣器会一直响,而且继电器也吸附了。
网上说什么的都有,我这里给通过上电控制它们关闭的方式搞定它们!
#include <reg52.h> sbit led_1=P0^0; sbit relay=P0^4; //继电器 sbit buzzer=P0^6; //蜂鸣器 int main() { P2=0xa0; buzzer=0; relay=1; P2=0x00; P2 =(P2&0x1f)|0x80; P0 = 0xfe; return 0; }
可以算是“半解决”了问题,因为通电的一瞬间,还是会响一下的,,,