用STC89C52 ,74hc138驱动列,74hc595驱动行,8x8点阵显示问题。

程序如下,想显示箭头,结果只显示了最后一行的两个点。想破脑袋也不会,初学者的苦恼,希望高人指点,或者推荐一篇相关文章,和我这题目一样的.#include<reg52.h>... 程序如下,想显示箭头,结果只显示了最后一行的两个点。
想破脑袋也不会,初学者的苦恼,希望高人指点,或者推荐一篇相关文章,和我这题目一样的.
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit H_shcp=P1^3; //HC595芯片
sbit H_stcp=P1^4;
sbit H_oe=P1^5;
sbit H_ds=P1^6;
sbit HC138_G=P3^1; //HC138芯片

uchar data_t[]={0,0x66,0x99,0x81,0x81,0x42,0x24,0x18}; //桃心
uchar data_j[]={0x00,0x00,0x18,0x3c,0x5a,0x18,0x00,0x00}; //箭头

void sendbyte_H(uchar aa) //HC595控制 行
{
uchar z;
for(z=0;z<8;z++) //循环8次移入数据
{
H_shcp=0;
H_ds=aa&0x01; //数据进入HC595数据线上
H_shcp=1; //数据在上升沿输入
aa>>=1; //数据右移一位
}
H_stcp=0;
H_stcp=1; //一个高电平上升沿将数据送入显示
H_ds=1; //释放数据总线
}

void sendbyte_L() //HC138控制 列
{
static uchar i;
P1=(P1&0xf8)|i; //先与后或
++i;
if(i>=8)
i=0;
}

void main()
{
uint i,j,t,r;
H_oe=0;
HC138_G=1;
i=0;
// wei_1(); //关闭八段数码管
while(1)
{
for(r=20;r>0;r--) //显示箭头
{
for(i=0;i<8;i++)
{
sendbyte_H(data_j[i]);
sendbyte_L();
for(j=300;j>0;j--);
}
}
for(t=10;t>0;t--) //关闭显示
{
for(i=0;i<8;i++)
{
sendbyte_H(0);
sendbyte_L();
for(j=1000;j>0;j--);
}
}
}
}
展开
 我来答
_参与交流_
2010-12-08 · TA获得超过228个赞
知道答主
回答量:106
采纳率:0%
帮助的人:96.8万
展开全部
没有看到你的原理图,只能从原理上告诉你如何检查故障,或称之为“授以渔”吧。
你的问题是:结果只显示了最后一行的两个点
说明你的sendbyte_L()行选择有问题,可能是软件问题,也可能是硬件问题
首先断开138输入A、B、C与cpu的连接,手动设置A、B、C的高低电平,看显示是否对应的8个行是否轮流都亮,不亮再看138输出8个引脚的电平是否相应变化,这样就可以排查硬件问题。
假如硬件没有问题,检查软件,你的关闭显示段去掉,再看看;或者直接在程序中固定某行亮,依次排查,相信很快就可以找到问题所在了。
在检查故障中可以学到很多东西,比一帆风顺的做好作品学到的东西要多得多。
祝你成功!
rrcosh
2010-12-08 · TA获得超过575个赞
知道小有建树答主
回答量:2168
采纳率:0%
帮助的人:907万
展开全部
检查电源是否充裕

建议换74LS系列

74LSxxxx 是 Low power Schottky制程
74HCxxxx 是 High speed CMOS 制程
两者 功能是一样的, 规格上有些差异

74LS 供电压 VCC 5V +/- 5% , 74HC 供电压 VCC 2.0 ~ 6.0V
输入电压 High (ViH) 74LS 是 2.0V , 74HC 是3.5V
输入电压 Low (ViL) 74LS 是 0.8V , 74HC 是1.5V
输出电压 High (VoH) 74LS 是 2.7Vmin , 74HC 是VDD-0.1V
输出电压 Low (VoL) 74LS 是 0.5V , 74HC 是0.1V
静泰消耗电流 74LS 是 0.4mA , 74HC 是0.0005mA
传递延迟 Tp 74LS 是 9.0ns ,74HC 是 8.0ns

74LS 比较耗电, 驱动能力也比较强, 如果不考虑耗电量
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gpasb46
2010-12-10 · TA获得超过3628个赞
知道小有建树答主
回答量:1614
采纳率:100%
帮助的人:1013万
展开全部
检查电源是否充裕

建议换74LS系列

74LSxxxx 是 Low power Schottky制程
74HCxxxx 是 High speed CMOS 制程
两者 功能是一样的, 规格上有些差异

74LS 供电压 VCC 5V +/- 5% , 74HC 供电压 VCC 2.0 ~ 6.0V
输入电压 High (ViH) 74LS 是 2.0V , 74HC 是3.5V
输入电压 Low (ViL) 74LS 是 0.8V , 74HC 是1.5V
输出电压 High (VoH) 74LS 是 2.7Vmin , 74HC 是VDD-0.1V
输出电压 Low (VoL) 74LS 是 0.5V , 74HC 是0.1V
静泰消耗电流 74LS 是 0.4mA , 74HC 是0.0005mA
传递延迟 Tp 74LS 是 9.0ns ,74HC 是 8.0ns

74LS 比较耗电, 驱动能力也比较强, 如果不考虑耗电量
你的串号我已经记下,采纳后我会帮你制作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2010-12-09 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来风love
2010-12-08 · TA获得超过145个赞
知道答主
回答量:25
采纳率:0%
帮助的人:27.4万
展开全部
同意楼上的答案,先检查电源,如果你不考虑耗电量,建议你换成74LS系列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式