找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 26324|回复: 24
收起左侧

用定时器实现16个LED灯轮流点亮(流水灯),间隔时间为100ms

  [复制链接]
ID:116981 发表于 2016-6-12 17:55 | 显示全部楼层 |阅读模式
以下是8个LED灯轮流点亮的程序,按照以下方法怎么把它改成16个LED流水灯?会的大神请帮忙改一下,谢谢,本人初学者

#include<reg51.h>
//#include"stc.h"
unsigned char i=0;
void main(void)
{TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TMOD=0X01;//sj
ET0=0x01;
EA=1;
TR0=1;
while(1)
{if(i>7)i=0;
}}
void timer0IRQ(void) interrupt 1
{TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
P2=1<<i;
i++;}

回复

使用道具 举报

ID:126397 发表于 2016-6-12 18:19 | 显示全部楼层
这种经典例题,课本上有吧
回复

使用道具 举报

ID:116981 发表于 2016-6-12 18:50 | 显示全部楼层
龚小四 发表于 2016-6-12 18:19
这种经典例题,课本上有吧

没有啊
回复

使用道具 举报

ID:126404 发表于 2016-6-12 18:54 | 显示全部楼层
应该将65536,50000修改一下就可以了吧
回复

使用道具 举报

ID:116981 发表于 2016-6-12 19:19 | 显示全部楼层
kuanxin9 发表于 2016-6-12 18:54
应该将65536,50000修改一下就可以了吧

不可以啊
回复

使用道具 举报

ID:116981 发表于 2016-6-12 22:04 | 显示全部楼层
没人解答一下吗
回复

使用道具 举报

ID:126444 发表于 2016-6-12 23:16 | 显示全部楼层
流水灯你可以用移位啊
回复

使用道具 举报

ID:116981 发表于 2016-6-13 10:27 | 显示全部楼层
西塘乔巴 发表于 2016-6-12 23:16
流水灯你可以用移位啊

8个可以移位啊,但是要16个就不会了
回复

使用道具 举报

ID:33634 发表于 2016-6-13 10:34 | 显示全部楼层
每组输出口就只有8个,只能从外围电路下手,或是用两组输出口。
回复

使用道具 举报

ID:126482 发表于 2016-6-13 10:57 | 显示全部楼层
加个标志位判断是用P2口点亮led  还是用p0口点亮  然后其他不变  比如先轮流点亮po 的led之后  标志位为1  轮流点亮P2的  标志位清零
回复

使用道具 举报

ID:66032 发表于 2016-6-14 19:01 | 显示全部楼层
最简单的办法是用两组8位的IO口去调用数组,当然数组可以写成n种组合, 从左到右, 从右到左, 中间到两边, 两边到中间, 间隔依次点亮, 等等
回复

使用道具 举报

ID:126760 发表于 2016-6-14 22:56 | 显示全部楼层

流水灯你可以用移位试试看,应该ok
回复

使用道具 举报

ID:116981 发表于 2016-6-15 08:59 | 显示全部楼层
小扎托 发表于 2016-6-14 22:56
流水灯你可以用移位试试看,应该ok

您好,移位我只能弄8个灯,2组接口以上就不可以了
回复

使用道具 举报

ID:111634 发表于 2016-6-15 21:53 | 显示全部楼层
给你介绍3个16灯案例
回复

使用道具 举报

ID:111634 发表于 2016-6-15 21:53 | 显示全部楼层
本帖最后由 zl2168 于 2016-6-15 22:04 编辑

74HC164串入并出控制16循环灯

Proteus仿真一下,确认有效。


实例42 74HC164串行输出控制8-16循环灯.rar (53.19 KB, 下载次数: 107)
回复

使用道具 举报

ID:111634 发表于 2016-6-15 21:55 | 显示全部楼层
本帖最后由 zl2168 于 2016-6-15 22:05 编辑

74HC595串入并出控制16循环灯
Proteus仿真一下,确认有效。
实例44 74HC595串行输出控制8-16循环灯.rar (72.58 KB, 下载次数: 68)
回复

使用道具 举报

ID:111634 发表于 2016-6-15 21:57 | 显示全部楼层
本帖最后由 zl2168 于 2016-6-15 22:06 编辑

4094-2.jpg


CC4094串入并出控制16循环灯
Proteus仿真一下,确认有效。


实例43 CC4094串行输出控制8-16循环灯.rar (67.45 KB, 下载次数: 54)
回复

使用道具 举报

ID:116981 发表于 2016-6-15 22:08 | 显示全部楼层
zl2168 发表于 2016-6-15 21:53
74HC164串入并出控制16循环灯

先Proteus仿真一下,确认有效。

已经做出来了,谢谢你
回复

使用道具 举报

ID:61840 发表于 2016-6-15 23:15 | 显示全部楼层
直接用单片机的IO口,用两组应该也可以吧
回复

使用道具 举报

ID:111634 发表于 2016-6-16 11:19 | 显示全部楼层
对于单一计数案例,用两组IO共16条是可以的,不用也空着。但对于一个项目,计数仅是其数据处理的一个内容,花费16条IO口线,太浪费了。毕竟IO口线还要派其他用途。
回复

使用道具 举报

ID:208231 发表于 2017-6-5 23:24 来自手机 | 显示全部楼层
大神们,谁有16个灯循环亮,间隔时间用定时器可以调的单片机C51程序啊
回复

使用道具 举报

ID:208231 发表于 2017-6-5 23:25 来自手机 | 显示全部楼层
晴天2035 发表于 2016-6-15 22:08
已经做出来了,谢谢你

大神,怎么做的,能教我一下嘛
回复

使用道具 举报

ID:208231 发表于 2017-6-5 23:56 来自手机 | 显示全部楼层
zl2168 发表于 2016-6-15 21:53
74HC164串入并出控制16循环灯

先Proteus仿真一下,确认有效。

大神,有这个16路流水灯的程序吗,谢谢,我是新手,不怎么懂
回复

使用道具 举报

ID:111634 发表于 2017-6-6 15:00 | 显示全部楼层
落叶无痕23 发表于 2017-6-5 23:56
大神,有这个16路流水灯的程序吗,谢谢,我是新手,不怎么懂

仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表