找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3608|回复: 5
打印 上一主题 下一主题
收起左侧

keil~ 单片机C程序编译没有问题,可是调试的时候n等都无法赋值,求指导啊

[复制链接]
跳转到指定楼层
楼主
ID:77258 发表于 2015-4-17 15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <AT89X52.H>

#include <stdio.h>

#define uint unsigned int
#define uchar unsigned char
sbit LOAD=P1^6; //选择P1.7作为CS
sbit DI=P1^4; //选择P1.5作为数据输入
sbit DCLK=P2^5;//选择P2.6作为时钟
sbit LOAD1=P1^7; //选择P1.7作为CS1
sbit DI1=P1^5; //选择P1.5作为数据输入1
sbit DCLK1=P2^6;//选择P2.6作为时钟1
uchar green[3][8];
uchar red[3][8];
uchar dis[20][4];
int val[20]={-888,-300,-250,-200,-150,-100,-75,-50,-30,-15,0,15,30,50,75,100,150,200,250,300};
int n;



uchar judge(int x) //判断正负
{
uchar z;
if (x<0)
{z=16;}
else
{z=18;}
return(z);
}

uint abs(int x)//绝对值
{
return(x<0?-x:x);
}

                               
void delay(uint time)
{
int i;
for(i=0;i<time;i++);
}


int green_light(int n)//LED红灯判断
{
  int i;

  if((n>0)&(n<9))
  {
   for(i=0;i<n;i++)
   green[0][i]=1;
   }

   if((n>8)&(n<17))
  {
   for(i=0;i<8;i++)
   green[0][i]=1;
   for(i=8;i<n;i++)
   green[1][i-8]=1;
   }


   if((n>16)&(n<20))
  {
   for(i=0;i<8;i++)
   green[0][i]=1;
   for(i=8;i<17;i++)
   green[1][i-8]=1;
   for(i=16;i<n;i++)
   green[2][i-16]=1;
   }

}



void display_452(int *v)//452数显程序分位
{
uchar i;
uchar temp1,temp2,temp3;
uint alevel;

for(i=0;i<=20;i++)
{
dis[i][0]=judge(v[i]);
alevel=abs(v[i]);

temp1=alevel/100;     //分位显示
temp2=(alevel/10)%10;
temp3=alevel%10;

if (temp1>0)
  {dis[i][1]=temp1;
   dis[i][2]=temp2;
   dis[i][3]=temp3;}
else
   {dis[i][1]=16;
    if(temp2>0)
       {dis[i][2]=temp2;
        dis[i][3]=temp3;}
    else{dis[i][2]=16;
          dis[i][3]=temp3;}
        }
}
}

void main()
{
uchar i,j;
n=11;


display_452(val);

while(1)
{

green_light(n);
for(i=0;i<3;i++)
  {
   for(j=0;j<8;j++)
   {
     red[i][j]=1-green[i][j];
   }
  }


}

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:77546 发表于 2015-4-20 18:25 | 只看该作者
这个不秦楚了
回复

使用道具 举报

板凳
ID:69862 发表于 2015-4-20 23:22 | 只看该作者
if((n>0)&(n<9))把这种语句改成 if((n>0)&&(n<9))

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:74484 发表于 2015-4-20 23:48 | 只看该作者
楼上正解,&&是逻辑与,&是按位与。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:72440 发表于 2015-4-23 21:10 | 只看该作者
逻辑与是两个&&

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:71743 发表于 2015-4-24 09:59 | 只看该作者
嗯,楼上的都正确。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表