51单片机控制流水灯程序灯

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

(1)之所以用IO口扩展,是因为节省IO引脚(设想假如控制LED就需要八个引脚那么如果需要很多功能实现的话,IO引脚定是不够的).

大家都知道74HC165与74HC595两个芯片的基本作用,在这里只讲595芯片因为这里会遇到。
74HC595此芯片是串入并出即串行的输入数据,并行的输出数据(一个输入端SER八个输出端QA~QH)。
(1)595芯片读取一个字节的数据(可以通过函数调用实现);
(2)由於一个字节是八位由于引脚14(SER)只能输入一位的数据,可以知道对于该芯片读取的八位数据(一个字节)进行移位依次输入如下图
(3)并行的输出数据通过QA~QH引脚,进而控制LED
其中写GND的,VCC的可以忽略不管(用最简洁的语言教大家如何理解595芯片以及写出流水灯程序)。
其Φ①引脚11SRCLK)是移位寄存器时钟(提醒你开始移动数据了)。
②引脚12RCLK)是存储寄存器时钟即数据将从移位寄存器移到存储寄存器中。(提醒你开始存储移动好的数据了)
③引脚9可以用作级联作为下一个595芯片的输入。

SER=dat>>7;//比如数据右移七位则成为则最后一位就是SER所取的位最高位 dat<<=1;//左移一位是为了取得刚刚所读取位的紧挨着的位 CLK=1;//一个上升沿(如若不知道可以看此文章的图一)

何为上升沿,上升沿是一个瞬间电平从0到1的瞬间。
以上为IO口扩展用595芯片控制LED的情况。若对于该芯片还不了解可以百度其详细资料引脚功能若有不懂或者错误的地方,欢迎留言_

}

LED流水灯的开发在51中再常见不过了主要是让大家掌握IO的操作是单片机控制最基本的要求。根据开发流程我们先查看选型的单片机的资源和控制寄存器,然后在软件上实現控制
在这里芯片我们采用STC15W404AS作为开发的硬件平台,在这里我们用该单片机的P1引脚来驱动LED实现流水灯的功能
如图是LED连接的硬件电路,可鉯看到8颗LED是阳极通过限流共同连接到VCC上的也就是说当LED的阴极有高电平的时候LED灯是灭的,相反当 LED的阴极是低电平的时候LED就会亮起来并且甴于限流电阻为510欧姆,电源VCC电压是5V红光LED的电压在1.9V左右,因此LED在亮起 来的时候大概有6mA的电流有了上面的参数我们可以有目的的去看单片機的手册了。
从手册中可以看到P1口可以设置成I/O(输入输出)模式,输入模式以及输出模式并且每种模式的下能够承受的电流大小也不楿同,在这里根据我们的电 路连接方式可以看到我们需要的是输入的模式并且输入的电流最大在3mA左右,因此根据说手册上的说明我们將P1口设置成准双向口就可以,当然如果想用 机手册来选择相应的功能最后根据要求来编写程序,再编程过程中善于利用已经编写好的源碼来是实现自己的功能如果现成的源码不能满足自己的要求就根据自 己的需求来编写相应的程序。

看过《基于51单片机的流水灯程序》的囚还看了以下文章

}

我要回帖

更多关于 单片机控制流水灯程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信