普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 537|回复: 3

[已解决] 新手请教,51判断不了负数

[复制链接]

2

主题

12

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2024-2-17 10:27:52 | 显示全部楼层 |阅读模式
1金钱
新手想实验一个数的正负判断,但负数判断总是不对,代码如下

#include "reg52.h"
sbit LED1=P2^0;        //将P2.0管脚定义为LED1
sbit LED2=P2^1;       
sbit LED3=P2^2;       

typedef unsigned int u16;        //对系统默认数据类型进行重定义
typedef unsigned char u8;

char CSC=3-5;

void main()
{

if (CSC>0)
   {
    LED1=0;        //LED1端口设置为低电平
   }
else if (CSC==0)
    {
    LED2=0;        //LED2端口设置为低电平
   }
else
    {
        LED3=0;        //LED3端口设置为低电平
        }
}


CSC为正或零时,对应LED正常,但是CSC为负数时,LED3无法点亮,感觉IF循环都没进去,大佬看看哪出的问题。

最佳答案

我这个就没有问题了 #include "reg52.h" sbit LED1=P2^0;        //将P2.0管脚定义为LED1 sbit LED2=P2^1;       sbit LED3=P2^2;  & ...

回复

使用道具 举报

2

主题

12

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2024-2-19 14:14:36 | 显示全部楼层
大佬们,谁看见啦?
回复

使用道具 举报

20

主题

1344

帖子

8383

积分

论坛元老

Rank: 8Rank: 8

积分
8383
发表于 2024-2-19 19:50:14 | 显示全部楼层
我这个就没有问题了

#include "reg52.h"
sbit LED1=P2^0;        //将P2.0管脚定义为LED1
sbit LED2=P2^1;      
sbit LED3=P2^2;      

typedef unsigned int u16;        //对系统默认数据类型进行重定义
typedef unsigned char u8;

char CSC=3-5;

void main()
{

if (CSC>0)
   {
    LED1=0;        //LED1端口设置为低电平
   }
else if (CSC==0)
    {
    LED2=0;        //LED2端口设置为低电平
   }
else
    {
        LED3=0;        //LED3端口设置为低电平
        }

while(1);//我加的


}


回复

使用道具 举报

2

主题

12

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2024-2-21 14:21:28 | 显示全部楼层
本帖最后由 zwbrabbit 于 2024-2-21 15:42 编辑

加了while(1)确实可以了。但是为什么。。。。
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-28 23:37 , Processed in 0.086306 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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