sky999 发表于 2024-1-14 14:39:35

请教下这种程序怎么写

下图是个LED模拟数码管的原理图,用的是5个IO口,但是写程序怎么写都是错的,我想知道,如果我想点亮红圈中的LED,或者某1个LED,但是又必须让其他LED保持熄灭,程序应该怎么写,提供下思路,谢谢了




神农鼎 发表于 2024-1-14 16:59:13

I/O 口不够,也是参照下图,
增加 多组,也只是需要增加公共控制端, 公共端的三级管电路可以省略

段码的选择【 P6.7 ~ P6.0】是共享的






神农鼎 发表于 2024-1-14 15:20:47

先 搞个正常的硬件


一灯大师,I/O口控制: LED点灯, NPN/PNP三级管, N-MOS管/P-MOS管, 光耦, 继电器 - I/O读写及点灯,外部中断 ,所有I/O都支持的普通I/O中断,按键扫描 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

神农鼎 发表于 2024-1-14 15:24:39



从这个也行:



【新提醒】RMB0.99, USB, STC8H2K08U-45MHz-TSSOP20,51世界全面 进入 USB 时代 - 51 发烧友,UAC,极致音频,大国工匠,艺术人生,乐林漫步 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

LAOXU 发表于 2024-1-14 15:24:56

1, 初始化, 所有Newx 置 1,

2, A1 亮:New1 置 1, New2 置 0, (如 B1 亮:New1 置 1, New3 置 0, 依次类推, 动态扫描, 每次只 点亮 一个 LED)

3, 延时 1ms

4, 循环, 返回 1

templeton 发表于 2024-1-14 16:19:32

按沙发层说的做吧,改下电路,不要只想着省IO啊。按照这个原理图,A1亮的话,B1和B?就会至少有一个亮,或全亮。

sky999 发表于 2024-1-14 16:42:45

神农鼎 发表于 2024-1-14 15:20
先 搞个正常的硬件




IO口不够

sky999 发表于 2024-1-14 16:43:16

神农鼎 发表于 2024-1-14 15:24
从这个也行:




我用的是STC8H1K08,原理图画的是STC15

sky999 发表于 2024-1-14 16:44:13

LAOXU 发表于 2024-1-14 15:24
1, 初始化, 所有Newx 置 1,

2, A1 亮:New1 置 1, New2 置 0, (如 B1 亮:New1 置 1, New3 置 0, 依 ...

这种写法试过了,不可行,New1 置 1, New2 置 0,其他不管置1还是0,都会导致其他IO口亮

sky999 发表于 2024-1-14 16:44:45

templeton 发表于 2024-1-14 16:19
按沙发层说的做吧,改下电路,不要只想着省IO啊。按照这个原理图,A1亮的话,B1和B?就会至少有一个亮,或 ...

是的,做了几种扫描程序,都无法做到单独亮1个

神农鼎 发表于 2024-1-14 16:58:21

见 STC8H实验箱 原理图


www.stcai.com/syx

页: [1] 2 3
查看完整版本: 请教下这种程序怎么写