参考这个
#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时,上电一瞬间会出现乱码,请问怎样可以清除掉等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)