打印

一段令我费解好几天的PIC单片机程序,大家帮帮我啊~~~

[复制链接]
2404|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiangxu87|  楼主 | 2008-9-9 18:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <pic.h>
#include <pic1687x.h>
int i=1;
void main(void)
{while(1)
{if(PC1==0)
  {i++;
    if(i=4)
        {i=1;}
}
if(i==1)
{第一盏灯亮;}
if(i==2)
{第二盏灯亮;}
if(i==3)
{第三盏灯亮;}
}
}
灯和相关的管脚相连,具体程序不写了,也就是对应管脚的电平控制。PC1和按钮相连,按钮按下i加一,第一盏灯灭第二个灯亮,再按第二个灯灭第三个亮,这是这个程序想表达的,但是当第二个灯灭亮了以后不按按钮,过一会第一个灯就自己亮了,也就是i自己又变为1了,这是为什么呀,请各位赐教

相关帖子

沙发
jiangxu87|  楼主 | 2008-9-9 19:16 | 只看该作者

求救

没人看看吗?郁闷啊!!!

使用特权

评论回复
板凳
nigerboy| | 2008-9-9 21:23 | 只看该作者

{i++;
    if(i=4)
        {i=1;}这里有问题呀,i=4后就又直接将1赋i,所以第一个灯就亮了

使用特权

评论回复
地板
zhaoyu2005| | 2008-9-10 08:56 | 只看该作者

LZ的输入接的哪个引脚?

加上拉没?还有就是你的程序缺少了按键去抖及释放检测

使用特权

评论回复
5
fsaok| | 2008-9-10 09:37 | 只看该作者

if (i == 4)

使用特权

评论回复
6
jode| | 2008-9-10 10:04 | 只看该作者

000

#include <pic.h>
#include <pic1687x.h>
int i=0;
void main(void)
{while(1)
{if(PC1==0)
  {++i;
    if(i==4)
        {i=0;}
}
if(i==1)
{第一盏灯亮;}
if(i==2)
{第二盏灯亮;}
if(i==3)
{第三盏灯亮;}
}
}

使用特权

评论回复
7
xwj| | 2008-9-10 10:07 | 只看该作者

要学会细心、学会用else if

使用特权

评论回复
8
chen_zn| | 2008-9-10 14:01 | 只看该作者

有同感

类似if(i=4)的问题我也碰到过,所以这种语句我都是这么写的:

if(4==i)

就算是写成if(4=i)编译器应该就自动报警了。

使用特权

评论回复
9
zidaozhou| | 2008-9-10 20:46 | 只看该作者

还有一个问题

除了以上讨论的问题之外,还有一个问题。
程序这样写的话,不同的人按键的反应是不同的,因为有的人按键时间长一点,有的人按键时间短一点。按键时间短的按一下加1,按键时间长的按一下可能加2或者3甚至是N,如果长按的话就成了流水灯了。

使用特权

评论回复
10
1248| | 2008-9-10 21:19 | 只看该作者

因为你的程序只是简单判断PC1==0

在死循环里面,只要PC1==0就会改变i的值,i的值改变了相应的灯也会亮。只要按键不松开,PC1就会一直为0,i的值就会不断改变,当然就成流水灯了。

使用特权

评论回复
11
ztzer| | 2008-9-11 14:45 | 只看该作者

同意4楼,

要加去抖

使用特权

评论回复
12
dcp| | 2008-9-11 14:51 | 只看该作者

要学会“对码”编程,写一对编译一次,运行睇睇结果

使用特权

评论回复
13
平川id| | 2008-9-11 22:24 | 只看该作者

碰到这样的问题在编译器里一步一步调试,应该就可以解决

使用特权

评论回复
14
hotpower| | 2008-9-11 22:30 | 只看该作者

看不明白,while(1)后的程序能运行????

使用特权

评论回复
15
54cards1| | 2008-9-12 12:25 | 只看该作者

嗯嗯

if(i=4)
        {i=1;}
改为if(i==4)
        {i=1;}

不然这个程序的第三个灯永远都不会亮的 if的条件中永远为真i=1的表达式每次都会执行,由于第二次来到这个位置的时候i++已经执行了一次 所以i 是可以等于2的 然后立即被复制为1

使用特权

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

本版积分规则

2

主题

7

帖子

0

粉丝