标题: STC15w系列单片机为什么io配置了推挽模式没有作用 [打印本页]

作者: 702724152    时间: 2023-7-2 09:21
标题: STC15w系列单片机为什么io配置了推挽模式没有作用
P3端为数码管段码。main主函数里配置p3m1=0x00.p3m0=0xff。为什么数码管亮度没有改变
P3io口
作者: xuyaqi    时间: 2023-7-2 10:19
数码管亮度不光跟io口有关,跟数码管本身是否高亮,电路,程序都有关。
作者: wulin    时间: 2023-7-2 13:44
配置了推挽模式数码管亮度没有改变,说明数码管亮度不足应该是代码问题,与端口模式没有什么关系。
作者: 188610329    时间: 2023-7-2 16:26
要么你限流电阻太大了,要么公共端你没有用三极管。不然是足够亮到你觉得刺眼的。
作者: lyh04189999    时间: 2023-7-2 23:08
初始值和后面的代码有关
作者: cnfloatleaf    时间: 2023-7-3 01:34
估计是你的(数码管公共端)的驱动电流不够,应该用三极管或者ULN来驱动。
作者: HLzhou    时间: 2023-7-3 09:10
建议增加三极管或者相关逻辑驱动芯片做为数码管的驱动,增加驱动电流能力,然后可以通过软件调整刷新速度实现不同亮度的调节。。
作者: 702724152    时间: 2023-7-3 09:38
是程序问题,测试通过高亮显示,终于会了IO口配置。STC可以通过IO口配置省去外置三极管,电阻上拉下拉等增强电流方式
作者: zhigang001    时间: 2023-7-3 09:51
不建议直接用IO口驱动数码管
作者: real8799190    时间: 2023-7-3 12:52
STC15W 系列单片机的 P3 端口默认为开漏模式,即使配置了推挽输出模式也可能无效。这是因为在使用 STC15W 系列单片机时,配置 P3 端口的 IO 模式需要在软件中设置寄存器 P3M1 和 P3M0。

根据您提供的代码 p3m1=0x00; p3m0=0xff;,P3 端口被配置为推挽输出模式。但是,您还需要确保在设置 IO 模式之后,通过修改 P3 端口的数据来改变数码管的亮度。可以通过以下代码示例来实现:

c
P3M1 = 0x00;
P3M0 = 0xFF;

// 在 main 函数或其他适当的地方设置数码管的亮度
P3 = 0xFF;  // 将 P3 端口设为高电平,点亮数码管(假设数码管为共阳极,高电平表示亮)

while (1) {
    // 循环中可以根据需要改变数码管的亮度
    P3 = 0xAA;  // 假设将数码管的亮度设为一半
    // 延时等待一段时间,然后再次修改 P3 的值改变亮度
    // ...
}
请注意,在这个示例中,P3 端口被配置为推挽输出模式,通过设置 P3 的数据值来改变数码管的亮度。您可以根据实际需求修改 P3 的值以达到所需的亮度效果。

另外,也请确保数码管的其他相关连接正确,例如数码管的控制引脚和电源供应等。如果问题仍然存在,可能需要检查硬件电路和连接是否正确,或者咨询单片机的供应商或技术支持部门以获取更详细的帮助。
作者: 984905742    时间: 2023-7-13 18:11
增加驱动电流能力,驱动电流不够
作者: npn    时间: 2023-7-13 21:49
cnfloatleaf 发表于 2023-7-3 01:34
估计是你的(数码管公共端)的驱动电流不够,应该用三极管或者ULN来驱动。

STC出现强推模式的目的,是为了不需要三极管驱动数码管或点阵等(大功率除外),STC89没有这些寄存器就需要了。
作者: npn    时间: 2023-7-13 21:56
你驱动的是1位静态共阳数码管,位码接VCC准双向就可以驱动,打开强推挽也没用。
只有共阴位码接GND或接IO口控制才需要打开,动态数码管点阵无论共阴共阳必须开。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1