欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3273|回復: 11
打印 上一主題 下一主題
收起左側

新人在使用單片機的時候碰到了一個問題

  [復制鏈接]
跳轉到指定樓層
樓主
ID:917597 發表于 2021-8-24 17:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
新手玩單片機,在寫C程序的時候使用到一個變量flag作為標志位,設想的是賦初值為0,按鍵每按下一次進行取反,使得標志位在0和1之間切換。實際調試的時候發現flag定義的時候是無符號整型變量,按位取反之后并不是1。后來想到標志位flag可以用位定義,就可以實現按下按鍵后標志位取反。

雖然達成了目的,但是我想到一個問題:普通的變量由于位數無法實現0和1的取反,如果使用位定義那會平白占用一個IO口,過于浪費,這肯定不是正常的方法。那么一般51單片機在使用的時候是如何實現這一目的的呢?這個問題百度不知道如何描述,只能上論壇上面來詢問一下各位大佬,煩請各位為我答疑解惑。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:424598 發表于 2021-8-24 19:36 | 只看該作者
本帖最后由 ssk7793 于 2021-8-24 19:43 編輯

不明白你在說什么,為什么會占io口呢?取反變量用bit定義
回復

使用道具 舉報

板凳
ID:94031 發表于 2021-8-24 20:24 | 只看該作者
可以用 bit 定義位變量,比如 bit   Flag_M,Flag_F;
回復

使用道具 舉報

地板
ID:57657 發表于 2021-8-24 20:32 | 只看該作者
你要用邏輯取反,而不是按位取反,位變量用bit定義。
回復

使用道具 舉報

5#
ID:94657 發表于 2021-8-24 21:35 | 只看該作者
1.按位定義flag,不存在浪費一個IO的問題;
2.不按位來定義flag, 如果初值為0,按鍵后取反,應為0xff,C語言中非0為真,你用if(flag)..... 去做按下鍵做什么就可以了

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:917597 發表于 2021-8-25 00:33 | 只看該作者
ssk7793 發表于 2021-8-24 19:36
不明白你在說什么,為什么會占io口呢?取反變量用bit定義

我直接sbit flag=P1^0了......這就是我想出來的辦法
回復

使用道具 舉報

7#
ID:161164 發表于 2021-8-25 07:41 | 只看該作者
jsezcyc 發表于 2021-8-25 00:33
我直接sbit flag=P1^0了......這就是我想出來的辦法

bit flag = 0;不行嗎?
回復

使用道具 舉報

8#
ID:477532 發表于 2021-8-25 08:13 | 只看該作者
注意~與!的不同
回復

使用道具 舉報

9#
ID:115923 發表于 2021-8-25 08:36 | 只看該作者
bool 型 變量,   是不是這個意思?     C語言沒有學好 ,  哈哈哈哈.
STM32這類的 ,   就不要擔心浪費的問題.    C51要考慮.
回復

使用道具 舉報

10#
ID:917597 發表于 2021-8-25 10:17 | 只看該作者
之前學過C語言,我用的那本單片機教材里面是直接以例程講解知識點的里面沒講單片機和C語言的區別,我之前只知道sbit來定義引腳,不知道可以用bit直接定義位變量。[捂臉哭.jpg]謝謝各位大佬,我現在知道該怎么做了。
回復

使用道具 舉報

11#
ID:609524 發表于 2021-8-25 11:44 | 只看該作者
jsezcyc 發表于 2021-8-25 10:17
之前學過C語言,我用的那本單片機教材里面是直接以例程講解知識點的里面沒講單片機和C語言的區別,我之前只 ...

也可以使用結構體來定義
回復

使用道具 舉報

12#
ID:584195 發表于 2021-8-25 12:39 | 只看該作者
你按位取反就可以了呀!
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表