一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1010|回复: 2
收起左侧

数码管​ICM7218B驱动器不刷新

[复制链接]
发表于 2014-4-23 18:13 | 显示全部楼层 |阅读模式
本帖最后由 gongzhu 于 2014-4-23 18:23 编辑

从一块废表上拆下一块电路板和7位LED数​码​管板子,发现是用​I​C​M​7​2​1​8​B驱动的,查资料写了段C程序,循环中第一遍数码管能正常显示数据,以后再次循环更新数据时数码管就不刷新了。
程序放单位忘拷回来,有玩过I​C​M​7​2​1​8的提醒一下是什么问题。

发表于 2014-4-23 21:36 | 显示全部楼层
试试看在第二组数据输入前加一句RESET,复位一下,看看第二组数据是否能正常传入,
没写过这个芯片的程序瞎猜的,要对照你的程序分析,呵呵。
 楼主| 发表于 2014-5-8 18:56 | 显示全部楼层
自己已经搞清楚了,写命令每次要置1
前段时间出差没时间回复,今天补发测试代码:

#include <reg52.h>
#define uint  unsigned int  
#define uchar unsigned char

sbit Mode=P2^0;
sbit Write=P2^1;

void delay(uchar);
void Send (uchar);
uchar code table[]={0xFB,0xB0,0xED,0xF5,0xB6,0xD7,0xDF,0xF0,0xFF,0xF7,0xC1};    //0--9  =

void main()
{
    uchar i=0,j=0;
    while(1)
    {
   
        Mode=1;
        P0=0xb0;
        Write=1;  //别忘了Write要置1,否则循环回来就没有反应了
        Write=0;
        
        delay(10);
        
        Mode=0;
        i=j++%8;
        Send(i);
        Send(i);
        Send(i);
        Send(i);
        Send(i);
        Send(i);
        Send(i);
        Send(i);   

        delay(100);
    }
         
}

void Send (uchar x)
{
        P0=table[x];         //数据位
        Write=1;
        Write=0;
}



void delay(uchar y)
{   
    uchar i;
    uint j;
    for(i=0;i<y;i++)
    {
        for(j=0;j<100;j++);
    }
}

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-19 06:36 , Processed in 0.053709 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表