MAX7219驱动数码管无法正常显示

作者&投稿:左丘王 (若有异议请与网页底部的电邮联系)
STC89C52控制MAX7219驱动数码管无法正常显示~

如果在仿真是正确的话,会怀疑板子线路,程序是不会跑错的,在锁存数据时加一段延时吧。让数据稳定。

把复位电路改一下吧。。。

下载我的看看好使不
#define <reg51.h>
#define DECODE_MODE 0x09
#define INTENSITY 0x0A
#define SCAN_LIMIT 0x0B
#define SHUT_DOWN 0x0C
#define DISPLAY_TEST 0x0F
/*******************************/
sbit LOAD=P1^1;
sbit DIN=P1^0;
sbit CLK=P1^2;
/*******************************/
void Write_Max7219_byte(uchar temp)
{
uchar i;
for (i=0;i<8;i++)
{
CLK=0;
DIN=(bit)(temp&0x80);
temp<<=1;
CLK=1;
}
}
/*******************************/
void Write_Max7219(uchar address,uchar dat)
{
LOAD=0;
Write_Max7219_byte(address);
Write_Max7219_byte(dat);
LOAD=1;
}
/*******************************/
void Init_Max7219(void)
{
Write_Max7219(SHUT_DOWN, 0x01); //设置掉电模式
Write_Max7219(DISPLAY_TEST, 0x00); //设置不工作寄存器
Write_Max7219(DECODE_MODE, 0x09); //设置编码模式
Write_Max7219(SCAN_LIMIT, 0x06); //扫描控制寄存器
Write_Max7219(INTENSITY, 0x04); //设置亮度调节 0xX0~0xXf
}
/*******************************/
void main()
{
unsigned char ii;
Init_Max7219();
for(ii=1;ii<8;ii++)
{
Write_Max7219(ii,ii);
}
while(1);
}

7219因为是串行的很容易受干扰

这个可能是你硬件的问题。
你在CLK和DATA线上加103的电容试试


安宁市18760438708: MAX7219驱动数码管无法正常显示
伍灵氢化: 这个可能是你硬件的问题. 你在CLK和DATA线上加103的电容试试

安宁市18760438708: STC89C52控制MAX7219驱动2个四位一体的共阴数码管无法正常显示 -
伍灵氢化: 应该是程序设计的问题,因为这种连接是动态显示,单片机可以驱动.

安宁市18760438708: STC89C52控制MAX7219驱动数码管无法正常显示 -
伍灵氢化: 如果在仿真是正确的话,会怀疑板子线路,程序是不会跑错的,在锁存数据时加一段延时吧.让数据稳定.

安宁市18760438708: 我用的7219驱动8个数码管,都不亮.请看一下我的程序有问题吗?如果解决了,还有重赏 -
伍灵氢化: 下载我的看看好使不#define #define DECODE_MODE 0x09 #define INTENSITY 0x0A #define SCAN_LIMIT 0x0B #define SHUT_DOWN 0x0C #define DISPLAY_TEST 0x0F/*******************************/ sbit LOAD=P1^1; sbit DIN=P1^0; sbit CLK=...

安宁市18760438708: C8051F020单片机用max7219驱动数码管,数码管的数值怎么突然就变了,程序就不能正常运行了,急救!!! -
伍灵氢化: 检查硬件电路,注意防干扰.

安宁市18760438708: 两片7219驱动数码管,不显示什么原因.是程序还是电路.汇编,谢谢 -
伍灵氢化: 有的时候是电流不够 你可以加上拉电阻 主要是看看你的是共阴极还是共阳极 不能搞错

安宁市18760438708: 急!!!max7219驱动数码管问什么会闪烁不停?各种方法都试过了,没效果.. -
伍灵氢化: 我这有7219的正确模块程序,网上也大把的有,你先把程序有问题的可能性排除掉,那就可以考虑硬件了.我现在在用7219驱动4个数码管,很正常,我认为程序的问题可能性大!因为硬件就连接几个单片机的端口,调试思路如下:烧入正确测试程序,如显示静态的1234等等(网上下载程序);软件排除后,检查7219与单片机的几个控制引脚有无断路,短路;数码管各个引脚与7219的连接有无短路;各个引脚之间有无短路. 像你这种既然可以闪烁显示数字,说明硬件的问题不大,那很大可能是程序的问题.如果是7219级联驱动更多数码管的话的话,就更加需要调试程序了

安宁市18760438708: 我用MAX7219做的8位数码管显示电路,复位后8位数码管全亮,而且很暗,这是怎么回事?
伍灵氢化: 第一是电路的连接绝对要正确.不然工作不会正常. 第二是元器件的参数要合适.如果太暗,要看看哪个地方的压降太大了.例如限流电阻太大就这样.电源的内阻太大,也会这样. 第三,是程序的驱动要合适.对于动态显示,并且要程序控制段码和位码的.需要看看驱动的脉冲宽度,宽度太窄,亮度也会很低. 对于你的问题,我不是很清楚,你的程序跑得正常不正常.如果显示内容都是正常的.那么第一点基本就不用考虑了.着重检查第二点和第三点.

安宁市18760438708: PIC单片机 max7219驱动4段数码管 显示一个数怎么去掉前导0 -
伍灵氢化: 修改显示函数,当前面为0时不显示.7219打开硬件译码时,写入0xf就是不显示,如:write_7219(1,0xF); 就是第一个数码管不显示.这样只要在函数show_number_7219中判断一下是否前面是0,如果是那么写0xF,否则才写对应的真正数据.

安宁市18760438708: max7219(级联)显示问题
伍灵氢化: 我以前项目中用过4个max7219级联,用得比较稳定. 你这个现象是因为CLK,LOAD引脚窜入了干扰信号,而7219是边沿触发,容易受到干扰. 解决方法: 1、可以在靠近7219芯片的地方,给CLK,DIN加101 - 104的滤波电容,效果比较明显. 2、在程序中,加入抗干扰的驱动程序,定期重新配置7219 3、可以选用完全兼容的max7221代替

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网