简单io应用—流水灯控制_制作简单有趣的可调速流水灯

当夜幕降临的时候,在繁华的城市就会有无数的彩灯闪烁述说着城市的繁华,大家注意到没有这些色彩鲜艳的广告彩灯的工作原理和制作过程吗?今天给大家说说一个简单且速度可控的流水灯的制作过程,希望对初学电子爱好者有所帮助。

9ab48b7b553d55a2163c06067cff8b5d.png

城市霓虹灯

可调速流水灯采用3V~5v直流供电,通过调节电位器RP1,可改变流水灯的流动速度。当阻值增大时,流动速度变慢,反之,则流动速度变快。也可在电容C2两端加入音频信号,来控制流水灯的流水速度。NE555时基电路组成振荡电路,电源VCC通过电阻R2、RP1向电容C1充电,当充电到一定程度后,2、6脚电压升高,当2、6脚电压升高到2/3VCC后,3脚输出为低电平,7脚对地呈低阻态,电容C1通过电位器和7脚对地放电,当放电至使2、6脚电压低于1/3VCC时,3脚输出为高电平,7脚对地呈高阻态,VCC通过RP1又开始对电容C1充电,周而复始。通过调节RP1的阻值,可以改变电容充放电的时间常数,从而改变3脚输出脉冲的频率。从3脚输出振荡脉冲作为CD4017工作的时钟脉冲,在时钟脉冲的作用下,CD4017十进制计数器开始计数,从10个输出端依次输出高电平,不断循环。10只发光二极管被依次点亮。其原理图如下:

da86844706c9bdd7cd5e9b7a8d85a11b.png

可调速流水灯工作原理图

本控制板应用了两个芯片作为控制,一个是十进制计数器CD4017,一个是NE555模数集成芯片。CD4017 是5 位Johnson 计数器,具有10 个译码输出端,CP、CR、INH 输入端。时钟输入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制。INH 为低电平时,计数器在时钟上升沿计数;反之,计数功能无效。CR 为高电平时,计数器清零。Johnson 计数器,提供了快速操作、2 输入译码选通和无毛刺译码输出。防锁选通,保证了正确的计数顺序。译码输出一般为低电平,只有在对应时钟周期内保持高电平。在每10 个时钟输入周期CO 信号完成一次进位,并用作多级计数链的下级脉动时钟。CD4017的管脚排列和功能表分别如下图所示:

bd41f70ad1d019f165f724705339fe84.png

CD4017芯片引脚图与真值表

NE555芯片是一个应用非常广泛的芯片,共有8个引脚第1脚:公共地端为负极。第2脚:低触发端TRIG,低于1/3电源电压时即导通。第3脚:输出端OUT,电流可达200mA。第4脚:强制复位端RESET,不用时可与电源正极相连或悬空。第5脚:用来调节比较器的基准电压,简称控制端CONT,不用时可悬空,或通过0.01μF电容器接地。第6脚:高触发端THRES,也称阈值端,高于2/3电源电压时即截止。第7脚:放电端DISCH。第8脚:电源正极VDD。其管脚图与内部等效图如下图所示:

74cea2679ddeb5aabf018219b2c9f826.png

NE555管脚图与内部等效图

这个电路装配比较简单,可以用万能PCB板装配也可以用制作的成品套件进行安装,装配时要注意区分发光二极管的正负极,引脚长的为正极,短的为负极。集成电路注意让电路缺口与电路板上图示一致。注意区分电池正负极。在焊接电阻前,先用万用表测量一下,做到心中有数,安装时请先安装低矮和耐热的元件,后安装怕热的元件(集成电路)。

0eb87357842b3060cddc49ded5204c71.png

可调速流水灯PCB板

181604e84e198590a91cafc805097162.png

安装好可工作的效果图

这个制作非常适合电子爱好初学者进行实践学习使用。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、一盏一盏:第一盏灯先亮--延时--熄灭--延时--下一盏灯; 2、利用数组方法点亮:定义一个数组(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盏灯,第二盏灯....亮),再利总线,按顺序点亮八盏灯; 3、利用移位方法点亮:(1)、利用移位运算和按位或运算,依次点亮八盏灯; (2)、包含intrins头文件(里面含有移位函数),使用相应的左移或右移函数进行移位, 下面是代码和注释,详细解释了点亮流水灯的思路,附件含有源代码和仿真文件,有需要的可以下载 //方式0控制流水灯循环点亮 #include //包含51单片机寄存器定义的头文件 #include //包含函数_nop_()定义的头文件 unsigned char code Tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码,该数组被定义为全局变量 sbit P17=P1^7; /************************************************************** 函数功能:延时约150ms **************************************************************/ void delay(void) { unsigned char m,n; for(m=0;m<200;m++) for(n=0;n<250;n++) ; } /************************************************************** 函数功能:发送一个字节的数据 **************************************************************/ void Send(unsigned char dat) { P17=0; //P1.7引脚输出清0信号,对74LS164清0 _nop_(); //延时一个机器周期 _nop_(); //延时一个机器周期,保证清0完成 P17=1; //结束对74LS164的清0 SBUF=dat; //将数据写入发送缓冲器,启动发送 while(TI==0) //若没有发送完毕,等待 ; TI=0; //发送完毕,TI被置“1”,需将其清0 } /******************************************* 函数功能:主函数 ******************************************/ void main(void) { unsigned char i; SCON=0x00; //SCON=0000 0000B,使串行口工作于方式0 while(1) { for(i=0;i<8;i++) { Send(Tab[i]); //发送数据 delay(); //延时 } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值