3387|13

8

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

小白自学pic24fj,遇到问题求大神指导。急急急!!! [复制链接]

 

自己刚入门PIC24fj256ga108的单片机,我写了程序,控制8个继电器分别导通电路的,但是程序烧写到单片机中,无法使电路按照我要求导通。大神们看一下,是不是我程序出问题了。顺便麻烦看一下我是不是串口写错了,串口调试的时候没有反应。麻烦大神看一下我的工程文件有什么问题吗
#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;   
}




pic24GAv2.1.zip

192.45 KB, 下载次数: 2

最新回复

http://www.microchip.com/development-tools/downloads-archive  详情 回复 发表于 2017-2-15 13:27
点赞 关注
 

回复
举报

1万

帖子

24

TA的资源

版主

沙发
 
输出使用LATx寄存器,而不是PORTx。
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
dcexpert 发表于 2017-2-15 09:28
输出使用LATx寄存器,而不是PORTx。

使用LAT操作也是一样的问题,我就改成了port,我的程序和串口有问题吗版主大人。方便的话能否打开我的工程文件帮我看一下呢

点评

你仿真看看,描述的太简单,不好分析。 proteus支持这个型号,可以在proteus中调试,不但方便,速度也快。 另外建议程序中不要直接对寄存器赋值,这样不好维护和修改,可以多使用位操作。PIC的头文件中已经定  详情 回复 发表于 2017-2-15 10:09
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

4
 
配置位你设置了吗?在设置中是在程序中配置,但程序中又没有配置代码。
 
 
 

回复

1万

帖子

24

TA的资源

版主

5
 
cp1994 发表于 2017-2-15 09:32
使用LAT操作也是一样的问题,我就改成了port,我的程序和串口有问题吗版主大人。方便的话能否打开我的工 ...

你仿真看看,描述的太简单,不好分析。

proteus支持这个型号,可以在proteus中调试,不但方便,速度也快。

另外建议程序中不要直接对寄存器赋值,这样不好维护和修改,可以多使用位操作。PIC的头文件中已经定义了很多位变量,你可以打开看看。
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

6
 
gs001588 发表于 2017-2-15 09:51
配置位你设置了吗?在设置中是在程序中配置,但程序中又没有配置代码。

应该怎么设置
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

7
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

8
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

9
 
查看本帖全部讨论,请登录或者注册

点评

http://www.microchip.com/mplab/mplab-x-ide http://www.microchip.com/mplab/compilers  详情 回复 发表于 2017-2-15 13:24
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

10
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

11
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

12
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

13
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

14
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【回帖赢京东卡】说说无线技术那些事儿
即日起—2月28日,参与回帖讨论都有机会赢取【30元京东卡】

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表