找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5237|回復(fù): 18
收起左側(cè)

51單片機(jī)C語言能實(shí)現(xiàn)連加嗎?

  [復(fù)制鏈接]
ID:718536 發(fā)表于 2021-4-21 00:40 | 顯示全部樓層 |閱讀模式
   我是想X1,X2,X3,X4,X5,X6,X7,X8,X9這9個(gè)字節(jié)。
  如果這9個(gè)字節(jié)中所有都是0,條件就成立。

  y=x1+x2+x3+x4+x5+x6+x7+x8+x9;

  if(y==0){  st=1;  }

  就是一直觸發(fā)到條件。

是不是因?yàn)?1單片機(jī)不能連加啊?

回復(fù)

使用道具 舉報(bào)

ID:718536 發(fā)表于 2021-4-21 00:44 | 顯示全部樓層
只有上電瞬間X1-9的值為0可以觸發(fā)。期間X1-9這9個(gè)變量的值全部都為0,就是不能觸發(fā)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-4-21 06:06 | 顯示全部樓層
本帖最后由 wulin 于 2021-4-21 06:53 編輯
suqianfu 發(fā)表于 2021-4-21 00:44
只有上電瞬間X1-9的值為0可以觸發(fā)。期間X1-9這9個(gè)變量的值全部都為0,就是不能觸發(fā)

if((x1|x2|x3|x4|x5|x6|x7|x8|x9)==0) {st=1;}

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:889094 發(fā)表于 2021-4-21 07:33 來自手機(jī) | 顯示全部樓層
程序和單片機(jī)沒關(guān)系,你想讓它開始加也行,想在while 1中加也行,中斷觸發(fā)也可以,程序設(shè)計(jì)好,單片機(jī)有多快就能加多快

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:889094 發(fā)表于 2021-4-21 07:35 來自手機(jī) | 顯示全部樓層
另外,全都是0不應(yīng)該是相加,相加有n多種可能為0,個(gè)人覺得應(yīng)該用按位或操作吧

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2021-4-21 07:47 | 顯示全部樓層
你的條件有問題,加法會溢出的。
  1.         if (!(x1 || x2 || x3 || x4 || x5 || x6 || x7 || x8 || x9)) {

  2.                 st1=1;
  3.        
  4. }
復(fù)制代碼

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:584814 發(fā)表于 2021-4-21 09:59 | 顯示全部樓層
1、y=x1+x2+x3+x4+x5+x6+x7+x8+x9=0,并不表示所有x都是0;
2、傳說用 if (!(x1 || x2 || x3 || x4 || x5 || x6 || x7 || x8 || x9)) 效率比
用 if((x1|x2|x3|x4|x5|x6|x7|x8|x9)==0) 高。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:894154 發(fā)表于 2021-4-21 11:08 | 顯示全部樓層
所有相加等于0可以按如下思路
a[]={X1,X2,X3,X4,X5,X6,X7,X8,X9};
temp=0;
y=0;
for(i=0;i<9;i++)
{
     temp=a[i];
     y+=temp;
}
if(y==0)................

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:151846 發(fā)表于 2021-4-21 11:50 | 顯示全部樓層
suqianfu 發(fā)表于 2021-4-21 00:44
只有上電瞬間X1-9的值為0可以觸發(fā)。期間X1-9這9個(gè)變量的值全部都為0,就是不能觸發(fā)

程序可以連加的,記得要初始化為0,且程序要嚴(yán)謹(jǐn),或許你漏在哪里了
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-4-21 14:13 | 顯示全部樓層
man1234567 發(fā)表于 2021-4-21 09:59
1、y=x1+x2+x3+x4+x5+x6+x7+x8+x9=0,并不表示所有x都是0;
2、傳說用 if (!(x1 || x2 || x3 || x4 || x5  ...

        if((x1|x2|x3|x4|x5|x6|x7|x8|x9)==0)//判斷用時(shí)11個(gè)機(jī)器周期
        if (!(x1 || x2 || x3 || x4 || x5 || x6 || x7 || x8 || x9))//判斷用時(shí)28個(gè)機(jī)器周期

評分

參與人數(shù) 2黑幣 +26 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!
as21cxz + 6 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:728732 發(fā)表于 2021-4-21 14:41 | 顯示全部樓層
要看數(shù)據(jù)類型,X1X2X3...要是字符型char,怎么加都不為0;其次,y=x1+x2+x3+x4+x5+x6+x7+x8+x9;運(yùn)算符有優(yōu)先級,”+“優(yōu)先級大于“=”的優(yōu)先級

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:708541 發(fā)表于 2021-4-21 15:16 | 顯示全部樓層
  if(x1==0 && x2==0 && x3==0 && x4 ==0 && x5==0 && x6==0 && x7==0 && x8==0 &&x9==0)
  {
      st=1;  
  }

  //這樣判斷就可以了,X1---X9,全部為O才執(zhí)行 st=1;

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:909697 發(fā)表于 2021-4-21 15:30 | 顯示全部樓層
無符號整形可以這樣寫。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:708541 發(fā)表于 2021-4-21 15:38 | 顯示全部樓層
本帖最后由 as21cxz 于 2021-4-21 15:44 編輯
npn 發(fā)表于 2021-4-21 07:47
你的條件有問題,加法會溢出的。

他說這9個(gè)字節(jié)中所有都是0,條件就成立。
你語句是不是有問題?或的話只要有一個(gè)是0取反就是1,語句就成立?我沒有這樣寫過,我也不知道你這個(gè)是不是正確的。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2021-4-21 21:52 | 顯示全部樓層
as21cxz 發(fā)表于 2021-4-21 15:38
他說這9個(gè)字節(jié)中所有都是0,條件就成立。
你語句是不是有問題?或的話只要有一個(gè)是0取反就是1,語句就成 ...

取反加括號,就和這個(gè)一樣:

  1. if (x1 || x2 || x3 || x4 || x5 || x6 || x7 || x8 || x9) {
  2. }else {
  3. st1 = 1;
  4. }

復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:718536 發(fā)表于 2021-4-23 02:47 | 顯示全部樓層
樓上的大佬太熱情了。小弟只能統(tǒng)一在這樓回復(fù)了。問題已經(jīng)解決了,我原想設(shè)定X1-X9這個(gè)是9個(gè)標(biāo)志位。X1-X9這9個(gè)標(biāo)志位都為0,就進(jìn)入待機(jī)狀態(tài)。否則就不進(jìn)入待機(jī)狀態(tài)。思路是沒錯(cuò)的。
  
  y=x1+x2+x3+x4+x5+x6+x7+x8+x9;

  if(y==0){  st=1;  }  //ST是待機(jī)標(biāo)志位。

為何不能進(jìn)入待機(jī)位呢?是因?yàn)榍懊娴?個(gè)待機(jī)標(biāo)志位,復(fù)位號寫錯(cuò)了.... 導(dǎo)致一個(gè)一直沒有復(fù)位置0.....所以....小丑是我自己。。。

最后,感謝大佬們的熱情回復(fù)。。。我超喜歡這里的。愛你們喲
回復(fù)

使用道具 舉報(bào)

ID:718536 發(fā)表于 2021-4-23 02:49 | 顯示全部樓層
a4732710 發(fā)表于 2021-4-21 11:50
程序可以連加的,記得要初始化為0,且程序要嚴(yán)謹(jǐn),或許你漏在哪里了

其中一個(gè)X3標(biāo)志位號寫錯(cuò)了。導(dǎo)致不能復(fù)位置0....所以小丑是我自己啦
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2021-4-24 09:48 | 顯示全部樓層
as21cxz 發(fā)表于 2021-4-21 15:16
if(x1==0 && x2==0 && x3==0 && x4 ==0 && x5==0 && x6==0 && x7==0 && x8==0 &&x9==0)
  {
      s ...

以我來看,就這個(gè)最靠近樓主要的結(jié)果。只能一個(gè)一個(gè)判斷,其它的連續(xù)運(yùn)算,都可能出錯(cuò),因前一次的運(yùn)算結(jié)果會影響下一次的運(yùn)算。
回復(fù)

使用道具 舉報(bào)

ID:487821 發(fā)表于 2021-4-24 12:39 | 顯示全部樓層
要先初始化為0
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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