找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1789|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

51單片機問題求大佬解答,程序運行之后led不亮

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1066583 發(fā)表于 2023-3-14 20:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
主函數(shù)是這樣:
void main()
{        while(1)
        {
                c=255*200;
                if(c==51000)
                {led=1;}
        }
}
運行之后led不亮,但是我把算式改成c=255*100;if(c==25500)之后就沒問題,c定義的是long int ,為什么相乘的數(shù)大了就不行,小了就可以,折騰一天了百度遍了都不知道答案,求大佬解答,感謝,用的是51單片機stc15f204ea
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1066583 發(fā)表于 2023-3-14 23:10 | 只看該作者
換成了unsigned long c也不行,我人快傻了,難道單片機不支持運算這么大的數(shù)字嗎?
回復(fù)

使用道具 舉報

板凳
ID:1066583 發(fā)表于 2023-3-14 23:14 | 只看該作者
換成了unsigned long c不行,但unsigned int c可以,為什么無符號長整形反而不行,不理解,而且unsigned int在這個數(shù)行,換一個小一點的數(shù)相乘又不行了,55555
回復(fù)

使用道具 舉報

地板
ID:101869 發(fā)表于 2023-3-15 08:55 來自觸屏版 | 只看該作者
硬件對不?直接用LED=1能否點亮?
回復(fù)

使用道具 舉報

5#
ID:161164 發(fā)表于 2023-3-15 09:19 | 只看該作者
本帖最后由 lkc8210 于 2023-3-15 09:22 編輯
  1. void main()
  2. {        while(1)
  3.         {
  4.                 c=(long int)255*200;
  5.                 if(c==51000)
  6.                 {led=1;}
  7.         }
  8. }
復(fù)制代碼


回復(fù)

使用道具 舉報

6#
ID:94031 發(fā)表于 2023-3-15 09:39 | 只看該作者
只有在c==51000時瞬間亮一下,你能看見嗎。
回復(fù)

使用道具 舉報

7#
ID:844772 發(fā)表于 2023-3-15 10:09 | 只看該作者
加一句試試
{led=1;
  c=0;}
回復(fù)

使用道具 舉報

8#
ID:1066583 發(fā)表于 2023-3-15 11:18 | 只看該作者
非凡科技 發(fā)表于 2023-3-15 08:55
硬件對不?直接用LED=1能否點亮?

前面定義了LED直接賦1可以亮
回復(fù)

使用道具 舉報

9#
ID:1066583 發(fā)表于 2023-3-15 11:19 | 只看該作者
xuyaqi 發(fā)表于 2023-3-15 09:39
只有在c==51000時瞬間亮一下,你能看見嗎。

賦1后沒再賦0應(yīng)該一直是1吧
回復(fù)

使用道具 舉報

10#
ID:94031 發(fā)表于 2023-3-15 14:33 | 只看該作者
一筆長空 發(fā)表于 2023-3-15 11:19
賦1后沒再賦0應(yīng)該一直是1吧

1 c 有特殊含義不能做變量名要改。
2 255不強制轉(zhuǎn)換編譯器會作負(fù)數(shù)處理,改一下:
cc=(long)255*200;
if(cc==51000)
{  led=1;        }
回復(fù)

使用道具 舉報

11#
ID:1066583 發(fā)表于 2023-3-15 17:01 | 只看該作者
xuyaqi 發(fā)表于 2023-3-15 14:33
1 c 有特殊含義不能做變量名要改。
2 255不強制轉(zhuǎn)換編譯器會作負(fù)數(shù)處理,改一下:
cc=(long)255*200;
...

謝謝您的解答,我試一下
回復(fù)

使用道具 舉報

12#
ID:94031 發(fā)表于 2023-3-15 17:20 | 只看該作者
一筆長空 發(fā)表于 2023-3-15 17:01
謝謝您的解答,我試一下

還有一種辦法,在255后面加 U ,L ,F(xiàn)說明數(shù)據(jù)類型:
cc=255u*200;
if(cc==51000)
{  led=1; }
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表