74hc595级联时如何写入数据
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520393.JPG(原文件名:74hc595.JPG)
电路图如上,单个595的话,编写程序成功。可是两个级联不知如何用C语言写入数据使LED从上往下亮。请指教 把它当单个,送两次数据再锁存,自己试一下就知道了 先写入第一个最远端的那个数据,写完之后,继续写第二个,第三个,全部写完,把数据送出到输出端,就刷新了。 楼主研究出来了吗?我也在研究这个呢 当成16位处理就行了 能说具体点吗?
没思路,不知这个流水灯程序怎么写 终于搞定了,发来给大家参考
点击此处下载 ourdev_520855.rar(文件大小:38K) (原文件名:两片74hc595调试(16流水灯).rar) 仿真程序用什么版本打开??? 7.5啊 先发送最远端的那个数据,再继续发第二个,最后把数据送出到输出端就行了呀 回复【8楼】yhw100
7.5啊
-----------------------------------------------------------------------
我的是7.4 ,7.5那里有下载? 我先看看了 我已经改成7.4了的点击此处下载 ourdev_551567.rar(文件大小:53K) (原文件名:两片74hc595调试(16流水灯).rar) //74HC595练习程序
//串入并出实现16流水灯效果
//2009.12.28
#include"reg52.h"
sbit shcp=P2^0; //数据在上升沿进入移位寄存器
sbit date1=P2^1; //串行数据输入端
sbit clock=P2^2; //上升沿时将数据输出到并行端口
unsigned char tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char tab1[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay(unsigned int delay)
{
unsigned char i;
for(;delay>0;delay--)
for(i=0;i<125;i++);
}
void send_data(unsigned char date) //发送数据
{
unsigned char i;
for(i=0;i<8;i++) //把每一位数据移入寄存器
{
date=date<<1;
date1=CY;
shcp=0;
shcp=1;
}
}
void main()
{
unsigned char k;
for(k=0;k<16;k++)
{
send_data(tab);
send_data(tab1);
{clock=0;clock=1;};
delay(1000);
}
}
这样好像好点 标记 这个还是不难的,LED点阵屏都是用这种结构! 学习了!!谢谢!! 学习了,也想试试595看看。 MRAK 初学有用啊 谢谢楼主 mark 一直卡在这个上面 谢谢学习了 send_data(tab1);
{clock=0;clock=1;};
delay(1000);
这个大括号是什么意思? 先发数据,然后锁存生效,不然可以想想后果。 本帖最后由 xiongh 于 2014-8-1 15:52 编辑
看我的595应用,驱动24个数码管。
页:
[1]