打印

求大侠指导!!!急啊!

[复制链接]
4592|44
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我使用的是PIC 16F877A单片机 我想实现的功能是:RB为输入,内置上拉;RD打开一个三极管(控制RB口是否接地) 然后判断3个RB口的电平变化,请各位大侠看看程序那里有问题! 主要是只能进入第一个IF 之后的IF进不去了 编译什么的全部通过,个人感觉是不是RB口的使用方法错了   我是个初学者求各位帮帮忙啊!!! 老总催着交作业!
#include<pic.h>
#define unchar unsigned char
#define uint unsigned int
void ys()
{
int a,b;
for(a=1;a<3000;a++)
{
for(b=1;b<20;b++);
}
}
void sd0()         //报警函数
{
RD1=1;
ys();
}
void main()          //主函数
{
TRISB=1;
TRISD=0;
RBPU=0;
while(1)              //死循环
{            
RD2=0;RD5=0;RD4=0;RB5=1;RB4=1;RB2=1;RD0=1;RD1=0;RD6=1;RD7=1; //初始化赋值
if((!RB5)&&(!RB4)&&(!RB2))                                  //通路判断   
{
RD2=0;RD5=1;RD4=1;ys();            
if((!RB5)&&(RB4)&&(RB2))                                  //第一路判断
{
RD2=1;RD5=0;RD4=1;ys();
if((RB5)&&(!RB4)&&(RB2))                                     //第二路判断
{
RD2=1;RD5=1;RD4=0;ys();
if((RB5)&&(RB4)&&(!RB2))                                        //第三路判断
{   
while((!RB2))               //抽线判断
{
RD0=0;
ys();
RD0=1;
ys();
}
}else{sd0();}
}else{sd0();}
}else{sd0();}
}else{sd0();}
}
}

相关帖子

沙发
NE5532| | 2014-3-23 20:59 | 只看该作者
while主循环里做端口初始化,楼主要一直初始化下去?RB口变化中断?中断服务函数在哪里?怎么用RB变化这个东西的?没看出来呢。

使用特权

评论回复
板凳
ZG11211| | 2014-3-23 21:21 | 只看该作者
TRISB=1;
就是TRISB=0b00000001;
楼主你想干什么?

使用特权

评论回复
地板
wang074581|  楼主 | 2014-3-23 21:27 | 只看该作者
我就是不知道RB用的对不对啊!
我想同时判断3个RB口的电平 不知道怎么写 求指教 大侠!

使用特权

评论回复
5
wang074581|  楼主 | 2014-3-23 21:28 | 只看该作者
NE5532 发表于 2014-3-23 20:59
while主循环里做端口初始化,楼主要一直初始化下去?RB口变化中断?中断服务函数在哪里?怎么用RB变化这个 ...

我就是不知道RB用的对不对啊!
我想同时判断3个RB口的电平 不知道怎么写 求指教 大侠!

使用特权

评论回复
6
NE5532| | 2014-3-23 21:30 | 只看该作者
你要判断RB口线上的电平,你主循环里面是轮询方式,哪里需要用RB口变化中断呢?直接读不就得了。

使用特权

评论回复
7
wang074581|  楼主 | 2014-3-23 21:31 | 只看该作者
ZG11211 发表于 2014-3-23 21:21
TRISB=1;
就是TRISB=0b00000001;
楼主你想干什么?

TRISB=0xff 和TRISB=1不是一样的么?  我想把B口设置为输入端口! 然后同时判断3个B端口的电平变化来操作! 我不晓得怎么写!

使用特权

评论回复
8
wang074581|  楼主 | 2014-3-23 21:34 | 只看该作者
NE5532 发表于 2014-3-23 21:30
你要判断RB口线上的电平,你主循环里面是轮询方式,哪里需要用RB口变化中断呢?直接读不就得了。 ...

我把RB口的电平变化放在WHILE里就是让他一直循环操作此过程! 如果IF错误就又重头开始! 版主 没明白你的意思啊

使用特权

评论回复
9
wang074581|  楼主 | 2014-3-23 21:37 | 只看该作者
NE5532 发表于 2014-3-23 21:30
你要判断RB口线上的电平,你主循环里面是轮询方式,哪里需要用RB口变化中断呢?直接读不就得了。 ...

版主求帮忙!

使用特权

评论回复
10
NE5532| | 2014-3-23 21:41 | 只看该作者
我也没明白你的意思,你先画流程图传上来吧,就在纸上画,画了用手机拍照发上来。

使用特权

评论回复
11
wang074581|  楼主 | 2014-3-24 09:19 | 只看该作者
NE5532 发表于 2014-3-23 21:41
我也没明白你的意思,你先画流程图传上来吧,就在纸上画,画了用手机拍照发上来。 ...

这个是电路图 我用CAD简单画了下! 求版主帮忙看看 我的程序那里有问题! 我想用RD来控制RB是否接地 然后同时判断3个RB口的接地情况! 如此循环往复! 版主帮帮忙

图片2.png (33.85 KB )

图片2.png

使用特权

评论回复
12
pang3dsa| | 2014-3-24 10:01 | 只看该作者
RD2=0;RD5=1;RD4=1;ys();            
if((!RB5)&&(RB4)&&(RB2))                                  //第一路判断
如果是端口一一对应的话,应该是这样吧 if((RB5)&&(RB4)&&(!RB2))
而且通路判断的if语句不应该是一个一个的嵌套在里面吧。

使用特权

评论回复
13
wang074581|  楼主 | 2014-3-24 10:09 | 只看该作者
NE5532 发表于 2014-3-23 21:41
我也没明白你的意思,你先画流程图传上来吧,就在纸上画,画了用手机拍照发上来。 ...

粗略树图

图片4.png (103.98 KB )

图片4.png

使用特权

评论回复
14
NE5532| | 2014-3-24 10:27 | 只看该作者
本帖最后由 NE5532 于 2014-3-24 10:33 编辑

直接读入判断即可。楼主画完流程图可以看出来了没?这几个判断不是嵌套的关系,而是顺次执行的关系。

使用特权

评论回复
15
wang074581|  楼主 | 2014-3-24 11:17 | 只看该作者
NE5532 发表于 2014-3-24 10:27
直接读入判断即可。楼主画完流程图可以看出来了没?这几个判断不是嵌套的关系,而是顺次执行的关系。 ...

版主 请帮审查一下程序 程序编译没有错! 但是未按照预想的思路走! 只能进入第1个if就弹出来了! 不能跑到最后! 我不知道是什么原因 拜托了!

使用特权

评论回复
16
wang074581|  楼主 | 2014-3-24 11:20 | 只看该作者
NE5532 发表于 2014-3-24 10:27
直接读入判断即可。楼主画完流程图可以看出来了没?这几个判断不是嵌套的关系,而是顺次执行的关系。 ...

还有版主所说的不是嵌套? 我个人觉得是嵌套啊!  进了第一个IF才能进第2个IF这应该是嵌套的关系吧! 如果第1个IF与第2个IF没有关系的话才不叫嵌套啊! 我这个IF相互之间是有关联的 我个人觉得是嵌套啊!

使用特权

评论回复
17
wang074581|  楼主 | 2014-3-24 11:55 | 只看该作者
pang3dsa 发表于 2014-3-24 10:01
RD2=0;RD5=1;RD4=1;ys();            
if((!RB5)&&(RB4)&&(RB2))                                  //第一 ...

大侠 我的所有数据都上传了 如果有时间请帮忙看看那里有问题!

使用特权

评论回复
18
wang074581|  楼主 | 2014-3-24 11:56 | 只看该作者
pang3dsa 发表于 2014-3-24 10:01
RD2=0;RD5=1;RD4=1;ys();            
if((!RB5)&&(RB4)&&(RB2))                                  //第一 ...

大侠 我所有的数据都上传了 如果有时间请帮忙看看那里有问题  谢谢

使用特权

评论回复
19
wang074581|  楼主 | 2014-3-24 14:14 | 只看该作者
NE5532 发表于 2014-3-24 10:27
直接读入判断即可。楼主画完流程图可以看出来了没?这几个判断不是嵌套的关系,而是顺次执行的关系。 ...

版主 帮帮忙!!帮小弟审阅审阅

使用特权

评论回复
20
NE5532| | 2014-3-24 14:26 | 只看该作者
早饭午饭和晚饭的关系是平级关系还是嵌套关系?楼主没吃早饭,连午饭晚饭也不准吃了??

使用特权

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

本版积分规则

2

主题

28

帖子

0

粉丝