[PIC®/AVR®/dsPIC®产品]

自学pic24fj

[复制链接]
826|12
手机看帖
扫描二维码
随时随地手机跟帖
renyaq|  楼主 | 2023-1-7 23:11 | 显示全部楼层 |阅读模式
刚入门PIC,24fj256ga108的单片机,我写了程序,控制8个继电器分别导通电路的,但是程序烧写到单片机中,无法使电路按照我要求导通。

使用特权

评论回复
renyaq|  楼主 | 2023-1-7 23:16 | 显示全部楼层
大神们看一下,是不是我程序出问题了。顺便麻烦看一下我是不是串口写错了,串口调试的时候没有反应。麻烦大神看一下我的工程文件有什么问题吗
#include
#include"serial.h"
unsigned char RxData;//这个数是从串口收到数据,可以判断这个数据,来决定开哪一个继电器
int main()
{
TRISB = 0x0000;
     TRISC = 0X0000;
TRISD = 0x0000;
UART_Init();
while(1)
{   if(RxData==1)
        {PORTB = 0xCDFF;
   PORTD = 0xFFFF;
         PORTC = 0xFFFF;
}                     
       else if(RxData==2)
       { PORTB = 0xADFF;
   PORTD = 0xFFFF;
         PORTC = 0xFFFF;
       }
      else if(RxData==3)
      {PORTB = 0xF5FF;
      PORTD = 0xFFFF;
         PORTC = 0xEFFF;
                         }
    else if(RxData==4)
    { PORTB = 0xF5FF;
   PORTD = 0xEFFF;
         PORTC = 0xFFFF;
                         }
        else if(RxData==5)
    { PORTB = 0xBBFF;
   PORTD = 0xF7FF;
         PORTC = 0xFFFF;}
       else if(RxData==6)
    { PORTB = 0xBBFF;
      PORTD = 0xFFFB;
         PORTC = 0xFFFF;}
         else if(RxData==7)
     {PORTB = 0xFBFF;
   PORTD = 0xDFFF;
         PORTC = 0xFFFE;}
         else if(RxData==8)
       { PORTB = 0xFBFF;
   PORTD = 0xDFFF;
         PORTC = 0xFFFD;}
}   
}
下面是串口程序
#include
#include"serial.h"
void UART_Init(void)
{
TRISFbits.TRISF3=0;  
TRISFbits.TRISF2=1;  
U1STA=0x0400; //对发送机使能并对错误标志位清零,接受或者收到一个字符即产生//中断   
U1MODE=0x8000; //允许串行口工作使能且设置BREGH=0模式 、8位数据无奇偶校验、一位停止位  
U1BRG=50; //8M晶振且波特率设置为9600时,U1BRG设置值为51  
IFS0bits.U1TXIF=0;  
IFS0bits.U1RXIF=0;  
IEC0bits.U1TXIE=1; //允许串行通讯发送中断使能  
IEC0bits.U1RXIE=1;//允许串行通信接受中断
}
void __attribute__((interrupt))_U1RXInterrupt(void)
{   
IFS0bits.U1RXIF=0;  
RxData=U1RXREG;   
}

使用特权

评论回复
jiajs| | 2023-1-7 23:18 | 显示全部楼层
输出使用LATx寄存器,而不是PORTx。

使用特权

评论回复
wyjie| | 2023-1-7 23:20 | 显示全部楼层
不只配置位一处有问题,工程设置完全不对呀。还是用MPLAB X IDE吧

使用特权

评论回复
heweibig| | 2023-1-7 23:23 | 显示全部楼层
我这个程序用了从配置来说用了内部8M RC,指令时钟也是8M,波特率时钟即为4M。波特率设置寄存器 25

使用特权

评论回复
tpgf| | 2023-2-6 14:25 | 显示全部楼层
不明白楼主控制继电器为什么还需要通讯了呢

使用特权

评论回复
guanjiaer| | 2023-2-6 14:32 | 显示全部楼层
楼主通过单片机控制了一个专用的驱动器吗

使用特权

评论回复
heimaojingzhang| | 2023-2-6 14:47 | 显示全部楼层
楼主是使用的普通的io口控制的吗 看程序也对应不上

使用特权

评论回复
keaibukelian| | 2023-2-6 15:28 | 显示全部楼层
楼主的程序有点笨 建议修改一下风格

使用特权

评论回复
paotangsan| | 2023-2-6 15:39 | 显示全部楼层
感觉楼主是在对 一组一组的io口进行操作啊

使用特权

评论回复
renzheshengui| | 2023-2-6 15:57 | 显示全部楼层
引脚初始化代码没有 可能在引脚的功能配置那有问题

使用特权

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

本版积分规则

700

主题

10138

帖子

4

粉丝