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