单片机 想用74HC595控制8位led灯 有数据输入到595中 可是8位led灯一直常亮或不正常显示。

单片机 想用74HC595控制8位led灯 有数据输入到595中 可是8位led灯一直常亮或不正常显示。,第1张

参考这个

#include<reg52h>

#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);

}

3个74HC595级联驱动4个3位数码管和4个LED的电路是可以的,只是写程序时,每一次要串行输入到3片595中数据是3个字节,12位的数码管扫描显示。四个LED灯正极接ⅤCC,只控制负极显示。而现在的电路将四个LED也参与数码管扫描显示了,不必要。还有重要的问题是数码管的段控段ABCDEFG都必须加限流电阻,四个LED也要串联限流电阻。如果是仿真,限流电阻可以省,但实现板必须要有。

可以用类似单片机的上电复位电路

给595的/SCLR(10脚)引脚上拉电阻,下拉电容。

上电时,电容还没有充电,引脚低电平,过一段时间之后

电容点压慢慢升高至高电平,芯片正常工作。

注意复位时间不要比单片机的上电复位时间长太多,要不然

程序开始运行的时候,595还在复位状态,没有响应数据的锁存

CHKDAT BIT P30

CHKCLKO BIT P31

CHKSCO BIT P32

DAT1 EQU 50H ; 数据1

DAT2 EQU 51H ; 数据2

DA0: MOV A, DAT1

ACALL HC59500 ; 8位移位输出1

MOV A, DAT2

ACALL HC59500 ; 8位移位输出2

CLR CHKSCO ; 锁存器输出控制

SETB CHKSCO

--------

RET

HC59500: MOV R2, #08H ; 8位移位输出

HC59502: RRC A

MOV CHKDAT, C

CLR CHKCLKO

SETB CHKCLKO

DJNZ R2, HC59502

RET

595驱动led偶会出错应该是以下两个原因。1、由于单片机总是自动复位造成的单片机有程序控制led闪烁。

2、单片机电源不稳,其他硬件毛病等,闪烁也会发生。故障排查及解决方法

一、单元板故障:

A整板不亮

1、检查供电电源与信号线是否连接。

2、检查测试卡是否以识别接口,测试卡红灯闪动则没有识别,检查灯板是否与测试卡同电源地,或灯板接口有信号与地短路导致无法识别接口。(智能测试卡)

3、检测74HC245有无虚焊短路,245上对应的使能(EN)信号输入输出脚是否虚焊或短路到其它线路。

注:主要检查电源与使能(EN)信号。

B在点斜扫描时,规律性的隔行不亮显示画面重叠

1、检查A、B、C、D信号输入口到245之间是否有断线或虚焊、短路。

2、检测245对应的A、B、C、D输出端与138之间是否断路或虚焊、短路。

3、检测A、B、C、D各信号之间是否短路或某信号与地短路。

注:主要检测ABCD行信号。

C全亮时有一行或几行不亮

1、检测138到4953之间的线路是否断路或虚焊、短路。

D在行扫描时,两行或几行(一般是2的倍数,有规律性的)同时点亮

1、检测A、B、C、D各信号之间是否短路。

2、检测4953输出端是否与其它输出端短路。

E全亮时有单点或多点(无规律的)不亮

1、找到该模块对应的控制脚测量是否与本行短路。

2、更换模块或单灯。

F全亮时有一列或几列不亮

1、在模块上找到控制该列的引脚,测是否与驱动IC(74HC595/TB62726、、、)输出端连接。

G有单点或单列高亮,或整行高亮,并且不受控

1、检查该列是否与电源地短路。

2、检测该行是否与电源正极短路。

3、更换其驱动IC。

H显示混乱,但输出到下一块板的信号正常

1、检测245对应的STB锁存输出端与驱动IC的锁存端是否连接或信号被短路到其它线路。

I显示混乱,输出不正常

1、检测时钟CLK锁存STB信号是否短路。

2、检测245的时钟CLK是否有输入输出。

3、检测时钟信号是否短路到其它线路。

注:主要检测时钟与锁存信号。

J显示缺色

1、检测245的该颜色的数据端是否有输入输出。

2、检测该颜色的数据信号是否短路到其它线路。

3、检测该颜色的驱动IC之间的级连数据口是否有断路或短路、虚焊。

注:可使用电压检测法较容易找到问题,检测数据口的电压与正常的是否不同,确定故障区域。

K输出有问题

1、检测输出接口到信号输出IC的线路是否连接或短路。

2、检测输出口的时钟锁存信号是否正常。

3、检测最后一个驱动IC之间的级连输出数据口是否与输出接口的数据口连接或是否短路。

4、输出的信号是否有相互短路的或有短路到地的。

5、检查输出的排线是否良好。

整屏故障:

整屏不亮(黑屏)

1、检测电源是否通电。

2、检测通讯线是否接通,有无接错。(同步屏)

3、同步屏检测发送卡和接收卡通讯绿灯有无闪烁。

4、电脑显示器是否保护,或者显示屏显示领域是黑色或纯蓝。(同步屏)

整块单元板不亮(黑屏)

1、连续几块板横方向不亮,检查正常单元板与异常单元板之间的排线连接是否接通;或者芯片245是否正常。

2、连续几块板纵方向不亮,检查此列电源供电是否正常。

单元板上行不亮

1、查行脚与4953输出脚是否有通。

2、查138是否正常。

3、查4953是否发烫或者烧毁。

4、查4953是否有高电平。

5、查138与4953控制脚是否有通。

单元板不亮

1、查595是否正常。

2、查上下模块对应通脚是否接通。

3、查595输出脚到模块脚是否有通。

单元板缺色

1、查245 RG数据是否有输出。

2、查正常的595输出脚与异常的595输入脚是否有通。

以上就是关于单片机 想用74HC595控制8位led灯 有数据输入到595中 可是8位led灯一直常亮或不正常显示。全部的内容,包括:单片机 想用74HC595控制8位led灯 有数据输入到595中 可是8位led灯一直常亮或不正常显示。、3个74HC595级联驱动4个3位数码管和4个LED电路图、单片机连接74HC595驱动8个LED时,上电一瞬间会出现乱码,请问怎样可以清除掉等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9492676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存