当前位置:文档之家› 蓝桥杯单片机设计与开发笔记(来源于网络)

蓝桥杯单片机设计与开发笔记(来源于网络)

蓝桥杯单片机设计与开发笔记(来源于网络)
蓝桥杯单片机设计与开发笔记(来源于网络)

蓝桥杯单片机设计与开发笔记(来源于网络)

蓝桥杯编程笔记

(亚洲一条龙整理)

近期和我们实验室的小伙伴一起参加了第七届蓝桥杯单片机开发与设计组省赛,在这里将备赛期间的一些资料和经验总结一下,并分享给大家。

蓝桥杯单片机开发板是国信长天的CT107D单片机综合训练平台,个人感觉这块开发板的设计还是很不错的。之前一直用的普中的板子,自己也做过一些最小系统板,练习了蓝桥杯的板子后根本不想再用普中的板子了。普中的板子将单片机的学习划分成很多个模块,操作各个模块时需要手动接线,因此很适合初学者,而蓝桥杯的板子则不需要自己手动接线,开发板也没有模块划的划分,能够让我们对单片机编程有更深入的理解,适合进阶练习。

虽然CT107D中使用了很多的锁存器,电路看起来比较复杂,但是熟悉之后会发现自己对之前毫不在意的锁存器有了更深刻的认识,对于模块化编程与代码复用也有了更深入的认识。通过这次比赛我对单片机编程也有了不同的认识,学到一个很重要的单片机编程套路就是通过定时器来

图2 74HC573真值表

要实现流水灯则必须改变74HC573的输出,则必须将Y4C置为高,给P0赋值后再将Y4C置为低进行锁存。我们在原理图中找到Y4C(如图3),图中WR与GND用跳帽连接起来,即WR为低电平

0。

图3 74HC138与74HC02

如图所示,Y4C由Y4和WR共同控制,74HC02是一个4路2输入或非门功能,WR为低电平,要使Y4C为高,则Y4必须为低电平,而Y4又由74HC138译码器控制。74HC138译码器的真值表

(如图4),要使得Y4为0,则三个输入端应该为100,即P2^7=1,P2^6=0,P2^5=0。又只需要操作P2口的这三位,不需要配置其他的五位,所以P2端口应该配置为:

P2 = ((P2&0x1f)|0x80);

编写代码:

while(1)

{

for(i=0; i<8; i++)

{

P2 = ((P2&0x1f)|0x80); //配置74 HC573,使其不锁存

P0 = ~(0x01<

P2 &= 0x1f; //再次配置74HC573,使其锁存

delay(); //适当延时使LED亮得充分

}

}

看到这里我们可能会感叹点个LED灯都这么麻烦,但是只要你把这个思路理清了,之后的蜂鸣器、继电器、数码管都是这个套路,因为他们共用的P0和P2端口,且都用到了上图3中的锁存器、138译码器和或非门。这就实现了一个8位的I/O口进行复用的分时来控制多个设备,这种设计是比较好的。

二、蜂鸣器和继电器

查看原理图找到继电器和蜂鸣器所在,然后可以看到(如图5)继电器和蜂鸣器的都是通过

ULN2003来驱动的,ULN2003内部集成了7个达

林顿管,可以有7路输入输出,这里不仅驱动了继电器和蜂鸣器,还有直流电机与步进电机。同样,我们只需要控制Y5C和P0口,而Y5C的控制则与Y4C的控制大同小异,这里就不详细讲解了。我们可以得到控制Y5C的正确配置P2端口的代码为:P2 = ((P2&0x1f)|0xA0);

我们再看继电器和蜂鸣器的电路,当ULN2003输出低电平时继电器和蜂鸣器才打开,而ULN2003每一路输入输出都加有一个非门,所以ULN2003的输入为高电平时蜂鸣器继电器才打开,为低电平时关闭。继电器对应的位为P0^4,蜂鸣器对应的位为P0^6,我们将P0口的这两位赋为1时,即P0=0x50时,两个设备均打开。

图5 蜂鸣器与继电器电路原理图

代码部分:

相关主题
文本预览
相关文档 最新文档