




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)接口技術(shù)(C51版)第一章C51基本語(yǔ)法1精選課件內(nèi)容概述 數(shù)據(jù)類型和運(yùn)算符、表達(dá)式是是C51語(yǔ)言程序設(shè)計(jì)的最基礎(chǔ)知識(shí),C51語(yǔ)言把數(shù)據(jù)分成了多種數(shù)據(jù)類型,并提供了豐富的運(yùn)算對(duì)數(shù)據(jù)進(jìn)行處理。本章對(duì)C51語(yǔ)言的基本數(shù)據(jù)類型、常量變量、運(yùn)算符及表達(dá)式等進(jìn)行詳細(xì)介紹。2精選課件教學(xué)目標(biāo)1.掌握數(shù)據(jù)類型的概念,了解C51語(yǔ)言能夠處理的數(shù)據(jù)類型。2.掌握常量的概念,掌握各種類型常量的特點(diǎn)及表示形式。3.掌握變量的概念,了解int、float、char型變量的特點(diǎn),掌握這三種類型變量的定義、賦值和使用方法。理解C51中變量的存儲(chǔ)和編譯模式的關(guān)系,掌握單片機(jī)片內(nèi)資源的訪問(wèn)方法。4.了解C51語(yǔ)言的基本運(yùn)算符及其特點(diǎn),掌握運(yùn)算符的優(yōu)先級(jí)和結(jié)合性的概念。5.了解算術(shù)運(yùn)算表達(dá)式、關(guān)系表達(dá)式及邏輯表達(dá)式的特點(diǎn),熟練進(jìn)行表達(dá)式計(jì)算,能熟練進(jìn)行實(shí)際問(wèn)題的表達(dá)式描述。6.熟悉自增、自減運(yùn)算的特點(diǎn),掌握賦值運(yùn)算,了解逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式。7.掌握數(shù)據(jù)類型轉(zhuǎn)換的概念,能進(jìn)行基本的數(shù)據(jù)類型轉(zhuǎn)換。3精選課件1.1C51基本數(shù)據(jù)類型具有一定格式的數(shù)字或數(shù)值叫做數(shù)據(jù),數(shù)據(jù)的不同格式叫作數(shù)據(jù)類型。任何程序設(shè)計(jì)都離不開(kāi)數(shù)據(jù)的處理。
C5l的數(shù)據(jù)類型有位型(bit)、無(wú)符號(hào)字符(unsignedchar)、有符號(hào)字符(signedchar)、無(wú)符號(hào)整型(unsignedint)、有符號(hào)整型(signedint)、無(wú)符號(hào)長(zhǎng)型(unsignedlong)、有符號(hào)長(zhǎng)型(signedlong)、浮點(diǎn)(float)和指針類型等。其中short與long屬整型數(shù)據(jù)、float與double型屬浮點(diǎn)型數(shù)據(jù)。4精選課件數(shù)據(jù)類型長(zhǎng)度值域范圍bit1bit0,1sbit1bit0,1unsignedchar1byte0~255signedchar1byte-128~127sfr1byte0~255unsignedint2byte0~65536signedint2byte-32768~32767sfr162byte0~65536*1~3byte對(duì)象的地址unsignedlong4byte0~4294967295signedlong4byte-2147483648~2147483647float4byte+1.175494E-38~+3.402823E+385精選課件當(dāng)程序中出現(xiàn)表達(dá)式或變量賦值運(yùn)算時(shí),若運(yùn)算對(duì)象的數(shù)據(jù)類型不一致,數(shù)據(jù)類型可以自動(dòng)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換按以下優(yōu)先級(jí)別自動(dòng)進(jìn)行:bit→char→int→long→floatunsigned→signed6精選課件1.2常量與變量1.2.1常量在程序運(yùn)行中其值不能改變的量稱為常量。1.整型常量??梢员硎緸槭M(jìn)制如123,0,-8等。十六進(jìn)制則以0x開(kāi)頭如0x34。長(zhǎng)整型就在數(shù)字后面加字母L,如10L,0xF340L等。2.浮點(diǎn)型常量。分為十進(jìn)制和指數(shù)表示形式。十進(jìn)制由數(shù)字和小數(shù)點(diǎn)組成,如0.888,3345.345,0.0等,整數(shù)或小數(shù)部分為0時(shí)可以省略0但必須有小數(shù)點(diǎn)。指數(shù)表示形式為:
[±]數(shù)字[.數(shù)字]e[±]數(shù)字 []中的內(nèi)容為可選項(xiàng),其中內(nèi)容根據(jù)具體情況可有可無(wú),但其余部分必須有,如123e3,5e6,-1.0e-3。而e3,5e4.0則是非法的表示形式。3.字符型常量是單引號(hào)內(nèi)的字符,如‘a(chǎn)’,‘d’等。4.字符串型常量由雙引號(hào)內(nèi)的字符組成,如"hello","english"等。當(dāng)引號(hào)內(nèi)的沒(méi)有字符時(shí),為空字符串。7精選課件用標(biāo)識(shí)符代表的常量稱為符號(hào)常量。例如:在指令“#definePI3.1415926”后,符號(hào)常量PI即代表圓周率3.1415926。8精選課件1.2.2變量1.2.2.1變量類型在程序運(yùn)行中,其值可以改變的量稱為變量一個(gè)變量主要由兩部分構(gòu)成:一個(gè)是變量名,一個(gè)是變量值。每個(gè)變量都有一個(gè)變量名,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元(地址),并在該內(nèi)存單元中存放該變量的值。9精選課件C51支持的變量通常有如下類型:位變量(bit)——位變量的值可以是1(true)或0(false)。與805l硬件特性操作有關(guān)的位變量必須定位在8051CPU片內(nèi)存儲(chǔ)區(qū)(RAM)的可位尋址空間中。字符變量(char)——字符變量的長(zhǎng)度為lbyte,即8位。C51編譯器默認(rèn)的字符型變量為無(wú)符號(hào)型(unsignedchar)。負(fù)數(shù)在計(jì)算機(jī)中存儲(chǔ)時(shí)一般用補(bǔ)碼表示。整型變量(int)——整型變量的長(zhǎng)度為16位。8051系列CPU將整型變量的msb存放在低地址字節(jié)。有符號(hào)整型變量(signedint)也使用msb位作為標(biāo)志位,并使用二進(jìn)制的補(bǔ)碼表示數(shù)值。長(zhǎng)整型變量(1ongint)——長(zhǎng)整型變量占用4個(gè)字節(jié)(byte),其它方面與整型變量(int)相似。浮點(diǎn)型變量(float)——浮點(diǎn)型變量占4個(gè)字節(jié)(byte),許多復(fù)雜的數(shù)學(xué)表達(dá)式都采用浮點(diǎn)變量數(shù)據(jù)類型。它用符號(hào)位表示數(shù)的符號(hào),用階碼和尾數(shù)表示數(shù)的大小。用它們進(jìn)行任何數(shù)學(xué)運(yùn)算都需要使用由編譯器決定的各種不同效率等級(jí)的庫(kù)函數(shù)。(補(bǔ)充存儲(chǔ)格式)10精選課件在編程時(shí),為了書寫方便,經(jīng)常使用簡(jiǎn)化的縮寫形式來(lái)定義變量的數(shù)據(jù)類型。其方法是在源程序開(kāi)頭使用#define語(yǔ)句。例如:#defineucharunsignedchar#defineuintunsignedint11精選課件1.2.2.2變量的存儲(chǔ)變量的存儲(chǔ)器類型是指該變量在8051單片機(jī)硬件系統(tǒng)中所使用的存儲(chǔ)區(qū)域,并在編譯時(shí)準(zhǔn)確的定位。8051系列單片機(jī)將程序存儲(chǔ)器(ROM)和數(shù)據(jù)存儲(chǔ)器(RAM)分開(kāi),并各有各自的尋址機(jī)構(gòu)和尋址方式。8051系列單片機(jī)在物理上有四個(gè)存儲(chǔ)空間:*片內(nèi)程序存儲(chǔ)器空間;*片外程序存儲(chǔ)器空間,*片內(nèi)數(shù)據(jù)存儲(chǔ)器空間;*片外數(shù)據(jù)存儲(chǔ)器空間12精選課件KEILuVision2所能支持的存儲(chǔ)器類型:存儲(chǔ)器類型說(shuō)明data直接訪問(wèn)內(nèi)部數(shù)據(jù)存儲(chǔ)器(128字節(jié)),訪問(wèn)速度最快bdata可位尋址內(nèi)部數(shù)據(jù)存儲(chǔ)器(16字節(jié)),允許位與字節(jié)混合訪問(wèn)idata間接訪問(wèn)內(nèi)部數(shù)據(jù)存儲(chǔ)器(256字節(jié)),允許訪問(wèn)全部256B地址pdata分頁(yè)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器(256字節(jié)),用MOVX@Ri指令訪問(wèn)xdata外部數(shù)據(jù)存儲(chǔ)器(64KB),用MOVX@DPTR指令訪問(wèn)code程序存儲(chǔ)器(64KB),用MOVC@A+DPTR指令訪問(wèn)13精選課件注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位則在52芯片中才有用,并和特殊寄存器地址重疊。14精選課件定義變量時(shí)如果省略存儲(chǔ)器類型,系統(tǒng)則會(huì)按編譯模式SMALL、COMPACT或LARGE所規(guī)定的默認(rèn)存儲(chǔ)器類型去指定變量的存儲(chǔ)區(qū)域。無(wú)論什么存儲(chǔ)模式都可以聲明變量在任何的8051存儲(chǔ)區(qū)范圍,然而把最常用的變量、命令放在內(nèi)部數(shù)據(jù)區(qū)可以顯著的提高系統(tǒng)性能。15精選課件C51支持的主要編譯模式存儲(chǔ)模式說(shuō)明SMALL函數(shù)參數(shù)及局部變量放在片內(nèi)RAM(默認(rèn)變量類型為DATA,最大128字節(jié))。另外所有對(duì)象包括棧都優(yōu)先放置于片內(nèi)RAM,當(dāng)片內(nèi)RAM用滿,再向片外RAM放置。COMPACT參數(shù)及局部變量放在片外RAM(默認(rèn)的存儲(chǔ)類型是PDATA,最大256字節(jié));通過(guò)R0、R1間接尋址,棧位于8051片內(nèi)RAM。LARGE參數(shù)及局部變量直接放入片外RAM(默認(rèn)的存儲(chǔ)類型是XDATA,最大64KB);使用數(shù)據(jù)指針DPTR間接尋址。因此訪問(wèn)效率較低且直接影響代碼長(zhǎng)度.16精選課件1.2.38051片內(nèi)資源及位變量1.2.3.1特殊功能寄存器的C51定義8051單片機(jī)的內(nèi)部高128個(gè)字節(jié)為專用寄存器區(qū),其中51子系列有21個(gè)(52子系列有26個(gè))特殊功能寄存器(SFR),它們離散的分布在這個(gè)區(qū)中,分別用于CPU并行口、串行口、中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器等功能單元及控制和狀態(tài)寄存器。
17精選課件對(duì)SFR的操作,只能采用直接尋址方式。為了能直接訪問(wèn)這些特殊功能寄存器,KeilC51擴(kuò)充了兩個(gè)關(guān)鍵字“sfr”、“sfr16”,可以直接對(duì)51單片機(jī)的特殊寄存器進(jìn)行定義,這種定義方法與標(biāo)準(zhǔn)C51語(yǔ)言不兼容,只適用于對(duì)8051系列單片機(jī)C51編程。18精選課件定義方法如下:sfr特殊功能寄存器名=特殊功能寄存器地址常數(shù);sfr16特殊功能寄存器名=特殊功能寄存器地址常數(shù);對(duì)于8051片內(nèi)I/O口,定義方法如下:sfrP1=0x90;//定義P1口,地址90HsfrP2=0xA0;//定義P1口,地址A0Hsfr后面是一個(gè)要定義的名字,要符合標(biāo)識(shí)符的命名規(guī)則,名字最好有一定的含義等號(hào)后面必須是常數(shù),不允許有帶運(yùn)算符的表達(dá)式,而且該常數(shù)必須在特殊功能寄存器的地址范圍之內(nèi)(80H-FFH)。sfr是定義8位的特殊功能寄存器,sfr16用來(lái)定義16位特殊功能寄存器,如8052的T2定時(shí)器,可以定義為:
19精選課件sfr16T2=0xCC;//這里定義8052定時(shí)器2,地址為T2L=CCH,T2H=CDH用sfr16定義16位特殊功能寄存器時(shí),等號(hào)后面是它的低位地址,高位地址一定要位于物理低位地址之上。注意的是,sfr16不能用于定時(shí)器0和1的定義。對(duì)于需要單獨(dú)訪問(wèn)SFR中的位,C51的擴(kuò)充關(guān)鍵字‘sbit’可以訪問(wèn)位尋址對(duì)象。20精選課件‘sbit’定義某些持殊位,并接受任何符號(hào)名,“=”號(hào)后將絕對(duì)地址賦給變量名這種地址分配,有三種方法:1)sbit位變量名=位地址sbitP1_1=Ox91;這樣是把位的絕對(duì)地址賦給位變量。同sfr一樣,sbit的位地址必須位于80H~FFH之間。2)Sbit位變量名=特殊功能寄存器名位位置sfrP3=0xB0;sbitP3_1=P3^1;//先定義一個(gè)特殊功能寄存器名,再指定位變量名所在的位置。當(dāng)可尋址位位于特殊功能寄存器中時(shí)可采用這種方法。3)sbit位變量名=字節(jié)地址^位位置 sbitP3_1=0xB0^1;21精選課件1.2.3.2位尋址區(qū)及位變量定義C51提供一個(gè)bdata的存儲(chǔ)器類型,用于訪問(wèn)單片機(jī)的可位尋址區(qū)的數(shù)據(jù)
如:unsignedcharbdataage;//在位尋址區(qū)定義ucsignedchar類型的變量ageintbdatascore[2];//在可位尋址區(qū)定義數(shù)組score[2]sbitflag=age^7//用關(guān)鍵字sbit定義位變量來(lái)獨(dú)立訪問(wèn)可尋址位對(duì)象的其中一位C51提供關(guān)鍵字“bit”實(shí)現(xiàn)位變量的定義及訪問(wèn)。bitflag;//將flag定義為位變量bitvalve_state;//將valve_state定義為位變量通常C51編譯器會(huì)將位變量分配在位尋址區(qū)的某一位。22精選課件定義位變量時(shí)應(yīng)注意以下問(wèn)題1)位變量不能定義成一個(gè)指針,如不能定義:bit*POINTER。2)不能定義位數(shù)組,如不能定義:bitarray[2]。3)bit與sbit的不同。bit不能指定位變量的絕對(duì)地址,當(dāng)需要指定位變量的絕對(duì)地址(范圍必須在0x80-0xff)時(shí),需要使用sbit來(lái)定義。例:sbitflag=P1^0;23精選課件也可使用sbit訪問(wèn)可位尋址對(duì)象的位。bdatacharjj;/*jj定義為bdata整型變量*/intbdatasum[2];/*在可位尋址區(qū)定義數(shù)組sum[2],也稱為可尋址位對(duì)象*/sbitmybit7=jj^7;/*mybit7定義為jj的第7位*/sbitscore12=sum[1]^12;/*score12定義為sum[1]的第12位*/24精選課件可位尋址對(duì)象也可以字節(jié)尋址。例:jj=0;/*jj賦值為0*/sbit定義要求基址對(duì)象的存儲(chǔ)類型為bdata,否則只有絕對(duì)的特殊位定義(sbit)是合法的。位置(‘^’操作符)后的最大值依賴于指定的訪問(wèn)對(duì)象型,對(duì)于char、uchar而言是0-7,對(duì)于int、uint而言是0~15。sbit定義要求基址對(duì)象的存儲(chǔ)類型為bdata,否則只有絕對(duì)的特殊位定義(sbit)是合法的。位置(‘^’操作符)后的最大值依賴于指定的訪問(wèn)對(duì)象型,對(duì)于char、uchar而言是0-7,對(duì)于int、uint而言是0~15。25精選課件1.3自定義變量類型typedef通常定義變量的數(shù)據(jù)類型時(shí)都是使用標(biāo)準(zhǔn)的關(guān)鍵字,方便別人閱讀程序。但使用typedef可以有方便程序的移植和簡(jiǎn)化較長(zhǎng)的數(shù)據(jù)類型定義例如:程序設(shè)計(jì)者對(duì)變量的定義習(xí)慣了DELPHI的關(guān)鍵字,如整型數(shù)據(jù)習(xí)慣用關(guān)鍵字integer來(lái)定義,在用C51時(shí)還想用integer的話,你可以這樣寫:typedefintinteger;integera,b;26精選課件1.4運(yùn)算符與表達(dá)式1.4.1賦值運(yùn)算利用賦值運(yùn)算符將一個(gè)變量與一個(gè)表達(dá)式連接起來(lái)的式子為賦值表達(dá)式,在表達(dá)式后面加“;”便構(gòu)成了賦值語(yǔ)句。使用"="的賦值語(yǔ)句格式如下:
變量=表達(dá)式;例如:a=0x10;//將常數(shù)十六進(jìn)制數(shù)10賦于變量ab=c=2;//同時(shí)將2賦值給變量b,cd=e;//將變量e的值賦于變量df=d-e;//將變量d-e的值賦于變量f賦值語(yǔ)句的意義就是先計(jì)算出"="右邊的表達(dá)式的值,然后將得到的值賦給左邊的變量。而且右邊的表達(dá)式可以是一個(gè)賦值表達(dá)式。27精選課件1.4.2算術(shù)運(yùn)算1.4.2.1算術(shù)運(yùn)算符及算術(shù)表達(dá)式C51中的算術(shù)運(yùn)算符有如下幾個(gè),其中只有取正值和取負(fù)值運(yùn)算符是單目運(yùn)算符,其它則都是雙目運(yùn)算符:十(加法運(yùn)算符,或正值符號(hào))-(減法運(yùn)算符,或負(fù)值符號(hào))*(乘法運(yùn)算符)/(除法運(yùn)算將)%(模(求余)運(yùn)算符。例如5%3結(jié)果是5除以3所得的余數(shù)2)
28精選課件用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)的式子稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)、數(shù)組、結(jié)構(gòu)體等等。算術(shù)表達(dá)式的形式:表達(dá)式1算術(shù)運(yùn)算符表達(dá)式2例如:a+b,(x+4)/(y-b),y-sin(x)/2
29精選課件1.4.2.2算術(shù)運(yùn)算的優(yōu)先級(jí)與結(jié)合性算術(shù)運(yùn)算符的優(yōu)先級(jí)規(guī)定為:先乘除模,后加減,括號(hào)最優(yōu)先。乘、除、模運(yùn)算符的優(yōu)先級(jí)相同,并高于加減運(yùn)算符。括號(hào)中的內(nèi)容優(yōu)先級(jí)最高。a+b*c;//乘號(hào)的優(yōu)先級(jí)高于加號(hào),故先運(yùn)算b*c,所得的結(jié)果再與a相加(a+b)*(c-d)-6;//括號(hào)的優(yōu)先級(jí)最高,*次之,減號(hào)優(yōu)先級(jí)最低.故先運(yùn)算(a+b)和(c-d),//然后將二者的結(jié)果相乘,最后再與6相減算術(shù)運(yùn)算的結(jié)合性規(guī)定為自左至右方向,稱為“左結(jié)合性”。即當(dāng)一個(gè)運(yùn)算對(duì)象兩邊的算術(shù)運(yùn)算符優(yōu)先級(jí)相同時(shí),運(yùn)算對(duì)象先與左面的運(yùn)算符結(jié)合。
a+b-c;//b兩邊是“+”、“-”運(yùn)算符優(yōu)先級(jí)相同,按左結(jié)合性優(yōu)先執(zhí)行a+b再減C
30精選課件1.4.2.3數(shù)據(jù)類型轉(zhuǎn)換運(yùn)算當(dāng)運(yùn)算符的兩側(cè)的數(shù)據(jù)類型不同時(shí)必須通過(guò)數(shù)據(jù)類型轉(zhuǎn)換將數(shù)據(jù)轉(zhuǎn)換成同種類型。轉(zhuǎn)換的方式有兩種:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。31精選課件自動(dòng)類型轉(zhuǎn)換由C51編譯器編譯時(shí)自動(dòng)進(jìn)行。如圖1-4-1所示為自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換規(guī)則。char→int→long→float→doubleunsignedsigned低高圖1-4-1數(shù)據(jù)類型轉(zhuǎn)換規(guī)則
32精選課件強(qiáng)制類型轉(zhuǎn)換需要使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,其格式為:
(類型名)(表達(dá)式);例如:(double)xx//將xx強(qiáng)制轉(zhuǎn)換成double類型。(int)(a+b)//將a+b的值強(qiáng)制轉(zhuǎn)換成int類型。使用強(qiáng)制轉(zhuǎn)換類型運(yùn)算符后,運(yùn)算結(jié)果被強(qiáng)制轉(zhuǎn)換成規(guī)定的類型。例如:unsignedcharx,y;unsignedcharz;z=(unsignedchar)(x*y);33精選課件1.4.3關(guān)系運(yùn)算1.4.3.1關(guān)系運(yùn)算符<(小于)>(大于)<=(小于或等于)>=(大于或等于)==(等于)!=(不等于)關(guān)系運(yùn)算符同樣有著優(yōu)先級(jí)別。前四個(gè)具有相同的優(yōu)先級(jí),后兩個(gè)也具有相同的優(yōu)先級(jí),但是前四個(gè)的優(yōu)先級(jí)要高于后兩個(gè)。關(guān)系運(yùn)算符的結(jié)合性為左結(jié)合。34精選課件1.4.3.2關(guān)系表達(dá)式關(guān)系表達(dá)式就是用關(guān)系運(yùn)算符連接起來(lái)兩個(gè)表達(dá)式。關(guān)系表達(dá)式通常是用來(lái)判別某個(gè)條件是否滿足。要注意的是用關(guān)系運(yùn)算符的運(yùn)算結(jié)果只有0和1兩種,也就是邏輯的真與假,當(dāng)指定的條件滿足時(shí)結(jié)果為1,不滿足時(shí)結(jié)果為0。關(guān)系表達(dá)式結(jié)構(gòu)如下:
表達(dá)式1關(guān)系運(yùn)算符表達(dá)式235精選課件例如:a>b;//若a大于b,則表達(dá)式值為1(真)b+c<a;//若a=3,b=4,c=5,則表達(dá)式值為0(假)(a>b)==c;//若a=3,b=2,c=1,則表達(dá)式值為1(真)。因?yàn)閍>b值為1,等于c值c==5>a>b;//若a=3,b=2,c=1,則表達(dá)式值為0(假)。36精選課件1.4.4邏輯運(yùn)算關(guān)系運(yùn)算符反映兩個(gè)表達(dá)式之間的大小等于關(guān)系,邏輯運(yùn)算符則用于求條件式的邏輯值,用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)就是邏輯表達(dá)式了。C51提供三種邏輯運(yùn)算:邏輯與(&&)邏輯或(||)邏輯非(!)邏輯表達(dá)式的一般形式為:
邏輯與:條件式1&&條件式2
邏輯或:條件式1||條件式2
邏輯非:!條件式37精選課件邏輯表達(dá)式的結(jié)合性為自左向右。邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯值“真”或“假”,以0代表假,以1代表真。邏輯表達(dá)式:用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子稱為邏輯表達(dá)式。邏輯表達(dá)式的運(yùn)算結(jié)果不是0就是1,不可能是其它值。38精選課件C51邏輯運(yùn)算符與算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符之間優(yōu)先級(jí)的次序如圖1-3-2所示。?。ǚ牵┧阈g(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符高低
優(yōu)先級(jí)圖1-3-2運(yùn)算符的優(yōu)先級(jí)39精選課件1.4.5位運(yùn)算C51語(yǔ)言直接面對(duì)8051單片機(jī),對(duì)于8051單片機(jī)強(qiáng)大靈活的位處理能力也提供了位操作指令。C51中共有6種位運(yùn)算符:&按位與|按位或^按位異或~按位取反<<位左移>>位右移40精選課件位運(yùn)算符的作用是按位對(duì)變量進(jìn)行運(yùn)算,但是并不改變參與運(yùn)算的變量的值。如果要求按位改變變量的值,則要利用相應(yīng)的賦值運(yùn)算。應(yīng)當(dāng)注意的是位運(yùn)算符不能對(duì)浮點(diǎn)型數(shù)據(jù)進(jìn)行操作。41精選課件按位與、或、異或的真值表如表1-4-1所示。表1-4-1與、或、異或位操作真值表X Y X&Y X|Y X^Y 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 42精選課件位運(yùn)算一般的表達(dá)形式如下:
變量1位運(yùn)算符變量2位運(yùn)算符也有優(yōu)先級(jí)。從高到低依次是:"|"(按位或)→"^"(按位異或)→"&"(按位與)→">>"(右移)→"<<"(左移)→"~"(按位取反)。“位取反”運(yùn)算符“~”來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位進(jìn)行取反,即0變1,1變0。位左移運(yùn)算符“〈〈”和位右移運(yùn)算符用來(lái)將一個(gè)數(shù)的各二進(jìn)制位全部左移或右移若干位,移位后,空白位補(bǔ)0,而溢出的位舍棄。移位運(yùn)算并不能改變?cè)兞勘旧?3精選課件1.4.6自增減運(yùn)算及復(fù)合運(yùn)算1.4.6.1自增減運(yùn)算C51提供自增運(yùn)算“++”和自減運(yùn)算“--”,使變量值自動(dòng)加1或減1。自增運(yùn)算和自減運(yùn)算只能用于變量而不能用于常量表達(dá)式。應(yīng)當(dāng)注意的是,“++”和“--”的結(jié)合方向是“
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 眼科護(hù)理品管圈提升實(shí)踐
- EAU前列腺癌指南更新解讀2025
- 智慧港口AI大模型頂層設(shè)計(jì)方案
- 中央空調(diào)系統(tǒng)操作員專業(yè)知識(shí)考試題庫(kù)(含各題型)
- 傳輸網(wǎng)絡(luò)技術(shù)李世銀習(xí)題答案
- 銷售統(tǒng)計(jì)試題及答案
- 河南省南陽(yáng)市六校聯(lián)考2024-2025學(xué)年高一下學(xué)期第二次聯(lián)考英語(yǔ)試題含答案
- 2025年山西省呂梁市部分學(xué)校中考模擬語(yǔ)文試題(含答案)
- 歷史●全國(guó)甲卷丨2024年普通高等學(xué)校招生全國(guó)統(tǒng)一考試歷史試卷及答案
- 2025設(shè)備租賃合同書范本(合同版本)
- 浙江開(kāi)放大學(xué)2025年《社區(qū)治理》終考測(cè)試答案
- 田畝轉(zhuǎn)戶協(xié)議書
- 2025年商業(yè)倫理與社會(huì)責(zé)任認(rèn)識(shí)考試試卷及答案
- 資產(chǎn)委托購(gòu)買協(xié)議書
- 病例康復(fù)治療匯報(bào)
- 2025-2030中國(guó)半導(dǎo)體行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 庭院綠化養(yǎng)護(hù)合同協(xié)議書
- 退休返聘合同和協(xié)議書
- 2025年MySQL開(kāi)發(fā)趨勢(shì)試題及答案研究
- 山東省濟(jì)寧市2025年高考模擬考試化學(xué)試題及答案(濟(jì)寧三模)
- 胃癌護(hù)理個(gè)案護(hù)理
評(píng)論
0/150
提交評(píng)論