ZHAOBAO511 发表于 2022-1-21 10:42:42

版主在不?51头文件改为STC运行不正常。

本帖最后由 ZHAOBAO511 于 2022-1-21 10:50 编辑

版主在不?51头文件改为STC运行不正常。有个程序是51的头文件在STC15上运行正常,改为STC15的头文件反而运行不正常了,是个OLED显示屏,一直黑屏,IO口有反应,就是屏不亮,请问还要改哪个地方才正常?

lb0857 发表于 2022-1-21 11:03:15

高阻准双向口这里{:lol:}{:lol:}{:lol:}

ZHAOBAO511 发表于 2022-1-21 11:16:59

本帖最后由 ZHAOBAO511 于 2022-1-21 11:18 编辑

lb0857 发表于 2022-1-21 11:03
高阻准双向口这里

谢谢,配置了,还是不行。P0M1 = 0;        P0M0 = 0;        //设置为准双向口
        P1M1 = 0;        P1M0 = 0;        //设置为准双向口
        P2M1 = 0;        P2M0 = 0;        //设置为准双向口
        P3M1 = 0;        P3M0 = 0;        //设置为准双向口
        P4M1 = 0;        P4M0 = 0;        //设置为准双向口
        P5M1 = 0;        P5M0 = 0;        //设置为准双向口
        P6M1 = 0;        P6M0 = 0;        //设置为准双向口
        P7M1 = 0;        P7M0 = 0;        //设置为准双向口
这里全配为准双向口,然后OLED接口是I2C。另外是不是晶振问题?在STC头文件有个晶振选项,51的没有,就是内部默认了。外边没接晶体。

lb0857 发表于 2022-1-21 13:24:30

示波器 或者 逻辑分析仪看看时序哦   

ZHAOBAO511 发表于 2022-1-21 13:58:34

lb0857 发表于 2022-1-21 13:24
示波器 或者 逻辑分析仪看看时序哦

好的,谢谢

小李非刀 发表于 2022-1-21 13:58:43

示波器看看是否有访问OLED屏信号,没有就要查程序,有的话,看看速度是否过快(I2C)。

ZHAOBAO511 发表于 2022-1-21 14:03:29

小李非刀 发表于 2022-1-21 13:58
示波器看看是否有访问OLED屏信号,没有就要查程序,有的话,看看速度是否过快(I2C)。 ...

51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。

kundi 发表于 2022-1-21 15:12:31

ZHAOBAO511 发表于 2022-1-21 14:03
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ...

我在STC8系列单片机上 使用硬件IIC,在6.00MHz 下,实测最高速度刚好400KHz.所以你可以试试6MHZ或增加必要的nop指令

ZHAOBAO511 发表于 2022-1-21 16:00:29

kundi 发表于 2022-1-21 15:12
我在STC8系列单片机上 使用硬件IIC,在6.00MHz 下,实测最高速度刚好400KHz.所以你可以试试6MHZ或增加必要 ...

明白了,谢谢,可能是太快了。

modbus 发表于 2022-1-21 16:46:09

ZHAOBAO511 发表于 2022-1-21 14:03
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ...

51分12T、6T、4T、假1T、准1T、真1T、完美1T,运行速度都不一样

ZHAOBAO511 发表于 2022-1-21 16:50:50

modbus 发表于 2022-1-21 16:46
51分12T、6T、4T、假1T、准1T、真1T、完美1T,运行速度都不一样

谢谢,以前只用了89S51的,看来那个是12T;

小李非刀 发表于 2022-1-24 13:55:03

ZHAOBAO511 发表于 2022-1-21 14:03
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ...

如果你原来的程序是在最老的89系列上验证的,则改为STC10、STC11、STC12、STC15、STC8系列,速度原来越快,I2C访问就会出问题。我也大量使用I2C接口的0.96寸12864 OLED屏,其访问速度最好不要超过1MHz。比如这样操作:

        B = dat;
        SDA = B7;NOP(5);        SCL = 1;        delay_1us();        SCL = 0;        delay_1us();   //写一个位

ZHAOBAO511 发表于 2022-1-27 09:27:53

小李非刀 发表于 2022-1-24 13:55
如果你原来的程序是在最老的89系列上验证的,则改为STC10、STC11、STC12、STC15、STC8系列,速度原来越快 ...

好的,谢谢。
页: [1]
查看完整版本: 版主在不?51头文件改为STC运行不正常。