打印

刚学PIC就碰到辣手的问题

[复制链接]
1787|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pic, pi, ic
如图下图所示,怎么实现第一格第二格第三格灯常亮,第四格灯闪烁呢?小弟初学PIC 望各位多多指教:)

PIC.jpg (22.17 KB )

PIC.jpg
沙发
Light_David| | 2012-9-4 00:11 | 只看该作者
就为了省一个IO,有必要这样折腾吗?

这个灯可以这样驱动:
      D3亮 : PC7=L, PC2=X, PB7=Z
         D4亮 : PC7=H, PC2=L, PB7=Z
         D6亮 : PC7=Z, PC2=L,PB7=H
         D7亮 : PC7=Z, PC2=X,PB7=L

       以上是单个亮的情况,L=驱动为低电平,H=驱动为高电平,Z=驱动为高阻模式,X=无关。
     想同时亮其中几个,按上述时序做成动态刷新即可.

其实电路可以改进一下,驱动起来更加简单,而且还可以再省一个IO!(我经常用的方法)
就是将PC2取消,直接接地即可。
那么:
      D3亮 : PC7=L, PB7=Z
         D4亮 : PC7=H, PB7=Z
         D6亮 : PC7=Z, PB7=H
         D7亮 : PC7=Z, PB7=L
只是这个方法不适合5V的系统,否则LED无法全部熄灭,原因很简单,这里就不啰嗦了吧.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
gddw1954 + 1
板凳
yewuyi| | 2012-9-4 09:36 | 只看该作者
就为了省一个IO,有必要这样折腾吗?

这个灯可以这样驱动:
      D3亮 : PC7=L, PC2=X, PB7=Z
         D4亮 : PC7=H, PC2=L, PB7=Z
         D6亮 : PC7=Z, PC2=L,PB7=H
         D7亮 : PC7=Z, PC2=X,PB7=L

    ...
Light_David 发表于 2012-9-4 00:11


很多时候还是需要省着点用资源的。。。

使用特权

评论回复
地板
Light_David| | 2012-9-4 15:29 | 只看该作者
很多时候还是需要省着点用资源的。。。
yewuyi 发表于 2012-9-4 09:36


感觉还是有点划不来 .
这么整,还得管控TRIS ,再加上PIC读修改写的问题,,
此时若再在中断中操作这些端口的某些Bit 就真变的棘手了.

话说回来,依楼主的环境.
用我提出的改进方法把PC2那端直接接地,更是再省一个脚,更合适.

使用特权

评论回复
5
gddw1954|  楼主 | 2012-9-4 21:47 | 只看该作者
谢谢两位老师的回答。
但我不解的是怎么使D3,D4,D5常亮 而D6闪烁。

使用特权

评论回复
6
gddw1954|  楼主 | 2012-9-4 22:37 | 只看该作者
哈哈 搞定了! 谢谢了!

使用特权

评论回复
7
SevenWans| | 2012-9-5 10:08 | 只看该作者
瞎折腾啊……

使用特权

评论回复
8
yewuyi| | 2012-9-5 10:43 | 只看该作者
谢谢两位老师的回答。
但我不解的是怎么使D3,D4,D5常亮 而D6闪烁。
gddw1954 发表于 2012-9-4 21:47


PC2输出低,PB7在输出高电平和高阻抗之间循环,则既可实现。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

1

粉丝