在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)C語(yǔ)言位操作的編程實(shí)現(xiàn):置位和清零

玩轉(zhuǎn)嵌入式 ? 來(lái)源:玩轉(zhuǎn)嵌入式 ? 2023-11-28 09:35 ? 次閱讀

前面介紹了C語(yǔ)言編程的6種位操作,分別是按位與“&”、按位“或|”、按位取反“~”、異或“^”、左移“<<”以及右移“>>”。這6種位操作在操作單片機(jī)寄存器時(shí)非常方便,尤其是對(duì)寄存器的某一位清零或者置位,而不影響其他位。

43af83c6-8d7c-11ee-939d-92fbcf53809c.png

單片機(jī)端口方向配置寄存器

以8位單片機(jī)為例,如果要將第1位設(shè)置為輸出,而其他7位保持不變,根據(jù)寄存器說(shuō)明只需要將第1位配置為1即可。這里就要用到“置1”的C語(yǔ)言語(yǔ)句。直接操作寄存器時(shí),可以直接通過(guò)置1和清0來(lái)將某一個(gè)bit設(shè)置為1或者0,如下圖所示。

43cda2fc-8d7c-11ee-939d-92fbcf53809c.png

置1和清0位操作

1."置1"C語(yǔ)言語(yǔ)句

//Var |= ( A<

其中Var是變量,B是從第幾位開(kāi)始,而A則是要修改的位數(shù),操作結(jié)果是置1。讀法為:將Var從第B位開(kāi)始的連續(xù)A位置1,其他保持不變。

2.“置1”C語(yǔ)言語(yǔ)句推導(dǎo)

假設(shè)將Var中從第1位開(kāi)始的3位置1,那么C語(yǔ)句的寫(xiě)法應(yīng)該為:Var |= (0x7<<1);那么推導(dǎo)過(guò)程如下:

Var = Var | ( 0x07<<1 );//等效寫(xiě)法
0x07:        0000 0111
0x07<<1: 0000 1110//可以看到第1、2、3位變?yōu)榱?;
//Var做按位或運(yùn)算時(shí),只要有1則結(jié)果為1

由上面的推導(dǎo)可以看到,(0x07<<1)從第1位開(kāi)始的連續(xù)3位已經(jīng)變?yōu)榱?,再跟變量Var做或運(yùn)算時(shí),這三位就完成了置1操作,而其他位不受影響。

3."清0"C語(yǔ)言語(yǔ)句

//Var &= ~ ( A<

其中Var是變量,B是從第幾位開(kāi)始,而A則是要修改的位數(shù),操作結(jié)果是清0。讀法為:將Var從第B位開(kāi)始的連續(xù)A位清0,其他保持不變。

按位或的真值表參考如下:

輸入A 0 0 1 1
輸入B 0 1 0 1
輸出 0 1 1 1

4.“清0”C語(yǔ)言語(yǔ)句推導(dǎo)

假設(shè)將Var中從第1位開(kāi)始的3位清0,那么C語(yǔ)句的寫(xiě)法應(yīng)該為:Var &=~ (0x7<<1);那么推導(dǎo)過(guò)程如下:

Var = Var &(~( 0x07<<1 ));//等效寫(xiě)法
0x07:              0000 0111
0x07<<1:        0000 1110//可以看到第1、2、3位變?yōu)榱?;
~( 0x07<<1 ): 1111 0001//按位取反,可以看到第1、2、3位變?yōu)榱?;
//Var做按位與運(yùn)算時(shí),只要有0則結(jié)果為0

由上面的推導(dǎo)可以看到,~(0x07<<1)從第1位開(kāi)始的連續(xù)3位已經(jīng)變?yōu)榱?,再跟變量Var做與運(yùn)算時(shí),這三位就完成了清零操作,而其他位不受影響。

按位與的真值表參考如下:

輸入A 0 0 1 1
輸入B 0 1 0 1
輸出 0 0 0 1

5.“清0”和“置1”總結(jié)

按位操作的這種用法在初次接觸時(shí)非常的難理解,需要反復(fù)練習(xí)才能熟悉,下面將置1和清0做了總結(jié),以方便大家記憶。

按位操作的“置1”規(guī)律如下圖所示:

43fbaec2-8d7c-11ee-939d-92fbcf53809c.png

↑ 按位操作的“置1”規(guī)律

按位操作的“清0”規(guī)律如下圖所示:

440ee370-8d7c-11ee-939d-92fbcf53809c.png

↑ 按位操作的“清0”操作






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6044

    文章

    44624

    瀏覽量

    638950
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5369

    瀏覽量

    121275
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7615

    瀏覽量

    137827

原文標(biāo)題:?jiǎn)纹瑱C(jī)C語(yǔ)言,位操作的編程實(shí)現(xiàn):置位和清零,GPIOx_CRL |= (0x01<<1)

文章出處:【微信號(hào):玩轉(zhuǎn)嵌入式,微信公眾號(hào):玩轉(zhuǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    清零

    在51程序中為什么要進(jìn)行軟件清零
    發(fā)表于 11-17 17:50

    8單片機(jī)C語(yǔ)言編程為什么可以實(shí)現(xiàn)16數(shù)據(jù)的加減

    8單片機(jī)C語(yǔ)言編程為什么可以實(shí)現(xiàn)16數(shù)據(jù)的加減
    發(fā)表于 05-25 11:06

    請(qǐng)問(wèn)dsp28035怎么通過(guò)匯編語(yǔ)言對(duì)GPIO口清零

    GpioDataRegs.GPASET.bit.GPIO11=1;對(duì)GPIO11口清零,請(qǐng)問(wèn)對(duì)于28035這款芯片,怎么用匯編語(yǔ)言實(shí)現(xiàn)上述清零
    發(fā)表于 08-22 10:51

    單片機(jī)C語(yǔ)言編程三部(8、16、32

    本資料分別為8單片機(jī)C語(yǔ)言編程:基于PIC1616單片機(jī)
    發(fā)表于 02-13 18:23

    AVR單片機(jī)的的清零是如何來(lái)實(shí)現(xiàn)的?

    AVR單片機(jī)的的清零是如何來(lái)實(shí)現(xiàn)的?AVR單片機(jī)與51
    發(fā)表于 07-08 07:08

    AVR單片機(jī)的端口操作方法

    一、常規(guī)方法AVR單片機(jī)的各類(lèi)教材或編程應(yīng)用參考資料,對(duì)介紹的端口操作方法不外乎宏定義及整體和某個(gè)常量相或、相與來(lái)實(shí)現(xiàn)某一單個(gè)位狀態(tài)的改變
    發(fā)表于 07-13 08:11

    C語(yǔ)言操作在STM32f1單片機(jī)編程的具體應(yīng)用 精選資料推薦

    C語(yǔ)言操作在STM32f1單片機(jī)編程的具體應(yīng)用前言:熟練掌握
    發(fā)表于 07-14 07:31

    matlab 清零,單片機(jī)如何清零寄存器某一操作方法解析 精選資料推薦

    描述單片機(jī)如何清零寄存器就是把該位置1,清零就是把該位置0硬件自動(dòng)清零就是當(dāng)某種條件成立,硬
    發(fā)表于 07-15 08:47

    如何實(shí)現(xiàn)AVR單片機(jī)清零

    如何實(shí)現(xiàn)AVR單片機(jī)清零
    發(fā)表于 11-01 07:53

    AVR單片機(jī)的端口操作方法解析

    AVR單片機(jī)的端口操作方法解析來(lái)源:未知?作者:工程師周亮?2018年11月22日 16:07?3708次閱讀正在上傳…重新上傳取消?0一、常規(guī)方法AVR單片機(jī)的各類(lèi)教材或
    發(fā)表于 11-23 08:35

    講解操作單片機(jī)開(kāi)發(fā)中的一些實(shí)用技巧

    導(dǎo)讀C 語(yǔ)言單片機(jī)開(kāi)發(fā)中的必備基礎(chǔ)知識(shí)。我們這里就列舉部分STM32學(xué)習(xí)中會(huì)遇見(jiàn)的C 語(yǔ)言基礎(chǔ)知識(shí)點(diǎn)1.
    發(fā)表于 01-24 08:18

    總結(jié)一下單片機(jī)清零的邏輯操作方法

    總結(jié)一下單片機(jī)操作清零的方法
    發(fā)表于 02-25 06:24

    單片機(jī)C語(yǔ)言編程中“”的保存方案

    引言   在現(xiàn)有的教課書(shū)及相關(guān)文章中,都難得提到在單片機(jī)C語(yǔ)言編程中對(duì)于自定義“”的狀態(tài)進(jìn)行保存的理念。   當(dāng)
    發(fā)表于 07-06 11:44 ?2294次閱讀

    32單片機(jī)C語(yǔ)言編程:基于PIC32圖書(shū)電子版

    《32單片機(jī)C語(yǔ)言編程:基于PIC32》介紹32單片機(jī)
    發(fā)表于 08-23 16:43 ?0次下載

    32單片機(jī)C語(yǔ)言編程:基于PIC32

    介紹32單片機(jī)PIC32的C語(yǔ)言編程技術(shù),引導(dǎo)讀者循序漸進(jìn)地掌握基于PIC32單片機(jī)的嵌入式控
    發(fā)表于 08-23 16:50 ?5189次閱讀
    主站蜘蛛池模板: 亚洲成年人免费网站 | 黄频网| 日本中文字幕在线播放 | 日本黄视频在线播放 | 日日做日日摸夜夜爽 | 国产怡红院| 屁屁影院在线 | 天天弄| 在线看片成人 | 亚洲午夜久久久久久噜噜噜 | semm亚洲欧美在线高清 | 三级精品 | 色噜噜狠狠色综合中文字幕 | 永久免费视频 | 奇米视频在线观看 | 韩国三级理论在线观看视频 | 亚洲偷自偷白图片 | 久久久精品久久久久久久久久久 | aaa在线观看高清免费 | 不卡免费在线视频 | 欧美在线视频播放 | 濑亚美莉vs黑人欧美视频 | 国产综合久久久久影院 | 黄黄视频在线观看 | 免费看成年视频网页 | 黄色综合 | 亚洲精品视频免费 | 在线观看一级片 | 国模私拍在线观看 | 亚洲一区二区三区免费视频 | 久久99精品久久久久久野外 | ww欧洲ww在线视频免费观看 | 干干干操操操 | 失禁h啪肉尿出来高h健身房 | 欧美黑人粗硬大在线看 | 69xxx视频| 看全色黄大色大片免费久久 | 在线视频资源 | 国产 麻豆 欧美亚洲综合久久 | 小说老卫陈红张敏陈法蓉 | 黄色大片a级 |