6个74hc595级联驱动6个8位数码管,显示乱码

6个74hc595级联驱动6个8位数码管(每个595驱动一个数码管),除了第一位外其他位都显示乱码,而且每次复位后乱码都改变,若i改成6,则乱码一直在变,这是为什么呢?这... 6个74hc595级联驱动6个8位数码管(每个595驱动一个数码管),除了第一位外其他位都显示乱码,而且每次复位后乱码都改变,若i改成6,则乱码一直在变,这是为什么呢?这是我的程序

#include <reg52.h> //51芯片管脚定义头文件
#include <intrins.h>
#include <stdio.h> //内部包含延时函数 _nop_();

#define uchar unsigned char
#define uint unsigned int

uchar code DAT[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x83,0xf8,0x80,0x98};

sbit SDATA_595=P0^0; //串行数据输入
sbit SCLK_595=P0^1; //SHcp移位时钟脉冲
sbit RCK_595=P0^2; //STcp输出锁存器控制脉冲
sbit oe_595=P0^3; //片选
//uchar temp;

/********************************************************/
/* */
/* 延时子程序 */
/* */
/********************************************************/

void delay(int ms)
{
int k;
while(ms--)
{
for(k=0; k<250; k++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}

/********************************************************/
/* */
/*将显示数据送入74HC595内部移位寄存器 */
/* */
/********************************************************/

void WR_595(uchar temp)
{
uchar j;
for (j=8;j>0;j--)

{
//temp=temp<<1;
//SDATA_595=CY;
SDATA_595=(temp&0x80);
SCLK_595=0; //上升沿发生移位
_nop_();
_nop_();
SCLK_595=1;
temp=temp<<1;
//SDATA_595=CY;
}
}

/********************************************************/
/* */
/*将移位寄存器内的数据锁存到输出寄存器并显示 */
/* */
/********************************************************/

void OUT_595(void)
{
//RCK_595=0;
// _nop_();
// _nop_();
RCK_595=1; //上升沿将数据送到输出锁存器
_nop_();
_nop_();
_nop_();
RCK_595=0;
}

main()
{
uchar tem;
uchar i,m;
SCLK_595=0;
RCK_595=0;
oe_595=0;

for(i=0;i<2;i++)
{
tem=DAT[i]; //取显示数据
WR_595(tem);
//delay(100);
}
OUT_595();

while(1) //for 在里面和外面一个效果都是乱码
{
// for(i=0;i<6;i++)
// {
// tem=DAT[i]; //取显示数据
// WR_595(tem);
//delay(100);
// }
// OUT_595();
// delay(100);
}
}
级联 没有问题啊 无语了……
展开
 我来答
做而论道
高能答主

2010-07-13 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
看看电路吧,可能是从第二个595开始,串行级连 端,接错了。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是一款广泛应用于消费类电子、汽车、工业和物联网领域的低功耗嵌入式系统芯片。ST公司推出了多个STM32系列,以满足不同应用需求。以下是ST公司主要的STM32系列:1. STM32WB系列:这是ST公司推出的第一款支持2.4GHz... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
niceidea001
2010-07-26
知道答主
回答量:19
采纳率:0%
帮助的人:2万
展开全部
可能是你的有些个线,没有接地。
595都要接的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友54c2a27c3
2010-07-13 · TA获得超过243个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:113万
展开全部
要不是你电路连接问题,就是你软件和595的时序问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式