永发信息网

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

答案:1  悬赏:30  手机版
解决时间 2021-04-08 09:03
  • 提问者网友:世勋超人
  • 2021-04-07 08:09
大家帮我看个PIC的LED闪烁程序
最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-04-07 09:03
小哥,问题表达清楚,是要A端口的某一个LED闪烁还是所有A端口LED闪烁;
TRISA=0x07表明RA0,RA1,RA2是作为输入功能的,当然不能作为输出去控制LED;
另外,想对A端口的某一位操作,可定义成TRISAbits.TRISA3,就是你理解的TRISA3;
其他的如LATAbits.LATA3、PORTAbits.RA3追问首先很感谢你的回复。
我想要实现的功能是RA0,RA1,RA2闪烁。
TRISA=0x07;代表的是RA0,RA1,RA2作为输出。。写法是和AVR相反的,,所以,为0即设为输出。

看了一下,PDF数据手册里确实没有TRISA3,。头文件里也没有定义,,

那么,方向寄存器不能设置TRISA3,我要做按键检测的话,要怎么做?追答TRISA = 0x07 = 0b00000111;表明RA0,RA1,RA2的方向寄存器给的值为1,
RA3~RA7的方向寄存器给的值为0,按我的理解:方向寄存器置1设置为输入,清0设置为输出,应该和AVR是一样的
头文件有如下定义:
extern volatile near unsigned char       TRISA;
extern volatile near struct {
  unsigned TRISA0:1;
  unsigned TRISA1:1;
  unsigned TRISA2:1;
  unsigned TRISA3:1;
  unsigned TRISA4:1;
  unsigned TRISA5:1;
  unsigned TRISA6:1;
} TRISAbits;
看看联合体(union)和结构体(struct)就懂了
要是想对A端口的某一位操作,如第3位
要将RA3设置为输入,则TRISAbits.TRISA3 = 1;
读RA3的数据,x = PORTAbits.RA3;
将RA设置为输出,则TRISAbits.TRISA3 = 0;
写RA3的数据,LATAbits.LATA3 = x;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯