大家帮我看个PIC的LED闪烁程序

大家帮我看个PIC的LED闪烁程序,第1张

小哥,问题表达清楚,是要A端口的某一个LED闪烁还是所有A端口LED闪烁;

TRISA=0X07表明RA0,RA1,RA2是作为输入功能的,当然不能作为输出去控制LED;

另外,想对A端口的某一位 *** 作,可定义成TRISAbits.TRISA3,就是你理解的TRISA3

其他的如LATAbits.LATA3、PORTAbits.RA3

PIC单片机没玩过,倒是用过51单片机。

申请一个定时器(一定要计算好时间,也就是初始值的设定),然后控制I/O引脚让一个LED亮,维持30s,在控制I/O口让另一个灯亮60s。

注意寄存器的配置。

ZLG7290是I2C通信,你可以一个I2C接口接多个ZLG7290。或者用我下面说的方案(很巧的一种方案,这是MICROCHIP公司推崇的)

你用的是PIC24HJ12GP202,有28引脚的那个单片机么?这个有21个IO引脚,其中有10个可以复用为AD输入引脚,还有两个引脚可配置为I2C接口。

根据你的描述,首先你需要有四个IO引脚做输入,不管是模拟输入还是数字输入,用23、24、25、26这四个引脚做输入应该可以把。然后2、3引脚可以用来做在线编程的数字输入口。

剩下的15个IO引脚,有两个17、18引脚可以做跟ZLG7290的I2C接口,I2C总线允许挂接多个I2C芯片。你可以用N个ZLG7290接LED和数码管(这是方案1)。

或者(这是我提议的方案2)用一个ZLG7290管理数码管。而剩下的13个引脚中用5个IO引脚就能控制了20个LED灯。具体看下面链接中这个文档的第三页的窍门2 。

这文档是PIC的生产商MICROCHIP公司推出的。适用于PIC这种需要控制输入输出的单片机。它的原理是,PIC单片机的某个IO引脚配置为输入的时候,这个IO引脚其实等于高阻输入状态,等于是和VDD和VSS都是断开的;

而当IO引脚配置为输出状态时,输出高电平为1的时候,它等于是短接到了VDD。而输出低电平为0时,它等于是短接到了VSS。

那么,可以看到图的接法,其中三个IO引脚接了六个灯,这六个灯在同一时间点里只有一个灯会亮。比如的当你让GP0作为输入,那么它对于外面的灯来说,就等于是没有电气输出而断开的,而GP1、GP2都作为输出,GP1=1 GP2=0这样GP1在等效电路上等于是短接Vdd,GP2等于是短接了VSS,这样电流从4号灯正端那里流入,负端留回GP2,3号灯因为是反向戒指,所以不会亮。其他如1号、2号灯都因GP0在等效电路上是断开的,所以也不会亮。

这样,根据程序的不同,可以随意让这六个灯点亮。要全亮也可以,在很短时间内轮流让这几个灯循环点亮,那在人眼看来就等于全亮了。

而根据公式   LED灯的数量= IO口数量 * (IO口数量-1)   那么你的20个LED等只需要5个IO口就能搞定,只是编程序的时候复杂点而已。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8005534.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存