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

標題: 新人在使用單片機的時候碰到了一個問題 [打印本頁]

作者: jsezcyc    時間: 2021-8-24 17:27
標題: 新人在使用單片機的時候碰到了一個問題
新手玩單片機,在寫C程序的時候使用到一個變量flag作為標志位,設想的是賦初值為0,按鍵每按下一次進行取反,使得標志位在0和1之間切換。實際調試的時候發現flag定義的時候是無符號整型變量,按位取反之后并不是1。后來想到標志位flag可以用位定義,就可以實現按下按鍵后標志位取反。

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

作者: ssk7793    時間: 2021-8-24 19:36
本帖最后由 ssk7793 于 2021-8-24 19:43 編輯

不明白你在說什么,為什么會占io口呢?取反變量用bit定義
作者: xuyaqi    時間: 2021-8-24 20:24
可以用 bit 定義位變量,比如 bit   Flag_M,Flag_F;
作者: npn    時間: 2021-8-24 20:32
你要用邏輯取反,而不是按位取反,位變量用bit定義。
作者: anchor8583    時間: 2021-8-24 21:35
1.按位定義flag,不存在浪費一個IO的問題;
2.不按位來定義flag, 如果初值為0,按鍵后取反,應為0xff,C語言中非0為真,你用if(flag)..... 去做按下鍵做什么就可以了
作者: jsezcyc    時間: 2021-8-25 00:33
ssk7793 發表于 2021-8-24 19:36
不明白你在說什么,為什么會占io口呢?取反變量用bit定義

我直接sbit flag=P1^0了......這就是我想出來的辦法
作者: lkc8210    時間: 2021-8-25 07:41
jsezcyc 發表于 2021-8-25 00:33
我直接sbit flag=P1^0了......這就是我想出來的辦法

bit flag = 0;不行嗎?
作者: Ledge    時間: 2021-8-25 08:13
注意~與!的不同
作者: zhaobolove    時間: 2021-8-25 08:36
bool 型 變量,   是不是這個意思?     C語言沒有學好 ,  哈哈哈哈.
STM32這類的 ,   就不要擔心浪費的問題.    C51要考慮.
作者: jsezcyc    時間: 2021-8-25 10:17
之前學過C語言,我用的那本單片機教材里面是直接以例程講解知識點的里面沒講單片機和C語言的區別,我之前只知道sbit來定義引腳,不知道可以用bit直接定義位變量。[捂臉哭.jpg]謝謝各位大佬,我現在知道該怎么做了。
作者: 楊天想    時間: 2021-8-25 11:44
jsezcyc 發表于 2021-8-25 10:17
之前學過C語言,我用的那本單片機教材里面是直接以例程講解知識點的里面沒講單片機和C語言的區別,我之前只 ...

也可以使用結構體來定義
作者: zyluglugl    時間: 2021-8-25 12:39
你按位取反就可以了呀!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1