嵌入式学习小组
直播中

乔丽娜

8年用户 1173经验值
私信 关注

N76E003驱动TM1640显示停不住是怎么回事?

程序是以前STC15上用的,都没什么问题,移植过来就不行,断点显示的时候能显示全部,告诉运行就只显示一个数字 了,而且很暗。

uchar j;
         
                start();
                send_data(writedatamode_z);                          //自动地址
                stop();
               
                start();
                send_data(startdata);                           //起始地址
                 for(j=0;j<13;j++)                                    //送16位数
                {
                         send_data(num[j]);
                        
                }  
                stop();


                start();
                send_data(display);                          //开显示
                stop();        



/*命令说明*/                                       
#define writedatamode_z  0x40   // 采用自动地址加一方式写显示缓存
#define writedatamode_g  0x44   //采用地址固定模式写缓存
#define readkeymode  0x42       //  键盘扫描模式
#define        startdata  0xc0                 //起始地址
#define display   0x8c          //开启显示 亮度用后三位决定
#define closedis   0x80         //关显示

sbit SCLK=P0^7;
sbit DIO =P0^6;

uint code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                       0x7f,0x6f,0x77,0x7C,0x58,0x5E,0x79,0x71};                                                                                                                                                                                                        
void start()                   //开始条件
{
          SCLK=1;
        DIO=1;
        DIO=0;
        SCLK=0;               
}

void send_data(uchar x)                  //送数据        低位先传
{
        uchar  i;
        for(i=0;i<8;i++)
        {
                SCLK=0;
                DIO=(bit)(x&0x01);
                SCLK=1;
                x>>=1;
        }
        SCLK=0;
}
void stop()                                         //结束条件
{
        SCLK=0;
        DIO=0;
        SCLK=1;
        DIO=1;
}




回帖(1)

话多显蠢

2024-1-11 11:44:08
可能是因为N76E003和STC15的器件特性不同,需要进行一些调整和优化才能正常工作。建议检查程序中是否存在兼容性问题,例如硬件时钟、寄存器地址等方面,也可以尝试重新编写针对N76E003的程序。另外,暗的显示可能与电源电压不够或者驱动方式不正确有关,可以检查相关电路和代码。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分