找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2449|回复: 4
打印 上一主题 下一主题
收起左侧

单片机控制40个led单灯往复流水灯!看看这么设计合理不?

[复制链接]
跳转到指定楼层
楼主
电路原理图如下:

//40个led单灯流水,上电后正循环单灯流水,到第40个led时是倒着单灯流水!看看这么设计合理不??谢谢各位大师指点,我刚开始入门
//74HC595 走马灯演示程序
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dat[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ;
sbit DAT=P1^0 ; //串行数据输入
sbit CLK =P1^1 ; //移位时钟脉冲
sbit RCK =P1^2 ; //输出锁存器控制脉冲
uchar temp ;
void delay(int ms)
{
while(ms--);
}
/********************************************************/
/*将显示数据送入74HC595内部移位寄存器 */
/********************************************************/
void Write(void)
{
uchar j ;
for (j=0 ;j< ;8 ;j++)
{
temp << = 1 ;
DAT=CY ;
CLK=1 ; //上升沿发生移位
_nop_() ;
_nop_() ;
CLK=0 ;
}
}
/********************************************************/
/********************************************************/
void OUT_DAT(void)
{
RCK=0 ;
_nop_() ;
_nop_() ;
RCK=1 ; //上升沿将数据送到输出锁存器
_nop_() ;
_nop_() ;
_nop_() ;



}
/********************************************************
* 主程序 *
*********************************************************/
main()
{
uchar i ;
CLK=0 ;
RCK=1 ;
while(1)
{
for (i=0 ; i< ;8 ; i++)
{
temp=dat[ i ] ; //取显示数据
Write() ;
OUT_DAT() ;
delay(100) ;
}
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:360884 发表于 2019-6-15 10:40 | 只看该作者
硬件上注意晶振的匹配电容值=晶振寄生电容±2pf就没啥问题,软件上看不懂
回复

使用道具 举报

板凳
ID:560577 发表于 2019-6-15 11:08 | 只看该作者
有请各位大侠,详细讲解一下!!不要吝啬键盘
回复

使用道具 举报

地板
ID:552614 发表于 2019-6-15 16:54 | 只看该作者
如果仿真能够和你预期的结果一样,那就是合理的啊
回复

使用道具 举报

5#
ID:123289 发表于 2019-6-17 15:29 | 只看该作者
硬件上只要能串出40个灯就可以了,如何排列不重要。那是软件要干的活。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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