单片机 想用74HC595控制8位led灯 有数据输入到595中 可是8位led灯一直常亮或不正常显示。 10
这是我写的程序:#include<reg52.h>#include<intrins.h>sbitDATA=P0^0;//串行数据输入sbitSCK=P0^1;//位移锁存...
这是我写的程序:
#include<reg52.h>#include <intrins.h>
sbit DATA = P0^0;//串行数据输入sbit SCK = P0^1;//位移锁存器时钟讯号sbit LCK = P0^2;//平行锁存器时钟讯号
void main(){ unsigned char i = 0,SJ = 0xAA; unsigned int p = 0; while(1) { LCK = 0; for(i=0;i<8;i++) { SCK = 1; if((SJ<<p)&0x80) { DATA = 1; } else { DATA = 0; } SCK = 0; _nop_(); _nop_(); SCK = 1; p++;
} LCK = 1; _nop_(); _nop_(); LCK = 0; p=0; i=0; }} 展开
#include<reg52.h>#include <intrins.h>
sbit DATA = P0^0;//串行数据输入sbit SCK = P0^1;//位移锁存器时钟讯号sbit LCK = P0^2;//平行锁存器时钟讯号
void main(){ unsigned char i = 0,SJ = 0xAA; unsigned int p = 0; while(1) { LCK = 0; for(i=0;i<8;i++) { SCK = 1; if((SJ<<p)&0x80) { DATA = 1; } else { DATA = 0; } SCK = 0; _nop_(); _nop_(); SCK = 1; p++;
} LCK = 1; _nop_(); _nop_(); LCK = 0; p=0; i=0; }} 展开
4个回答
展开全部
参考这个
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit sh_cp=P2^0;
sbit ds=P2^1;
sbit st_cp=P2^2;
void delay()
{
uint a=20000;//慢点可以看清工作过程碰腔
while(a--);
}
void main()
{
uchar b,datah,datal;
datah=0xc0;
datal=0xf0;
for(b=0;b<8;b++)
{
sh_cp=0;
st_cp=0;
datah<<=1;
ds=CY;
delay();
sh_cp=1;//sh_cp上升沿 移位
delay();
st_cp=1;//st_cp上滑吵悔升沿 存储
}
for(b=0;b<8;b++)
{
sh_cp=0;
st_cp=0;
datal<<=1;
ds=CY;
delay();
sh_cp=1;//sh_cp上升沿 移位
delay();
st_cp=1;//st_cp上信正升沿 存储
}
sh_cp=0;
st_cp=0;
//while(16);
}
展开全部
#include<reg52.h>#include <intrins.h>仔饥
sbit DATA = P0^0;//串行数据输入
sbit SCK = P0^1;//位移锁存器时钟讯号
sbit LCK = P0^2;//平行锁存器时钟讯号
void main()
{
unsigned char i = 0,SJ = 0xAA;
while(1)
{
LCK = 0;
for(i=0;i<8;i++)
{
SCK = 1;
SJ<<1;
DATA=CY;
SCK = 0;
念搜返_nop_(); _nop_();
SCK = 1;
}
LCK = 1;
_nop_(); _nop_();
LCK = 0;
漏凯}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看尺袜插源困漏图,595的输出端,已经都是低电平了,
但是,LED,一个也没有亮。
是楼主的 LED,用的不对。雹烂
但是,LED,一个也没有亮。
是楼主的 LED,用的不对。雹烂
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要么时序问题,要么就是没有延时,闪的过快
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询