《單片機(jī)原理與接口技術(shù)》 課件 2.3 C51的基本運(yùn)算_第1頁(yè)
《單片機(jī)原理與接口技術(shù)》 課件 2.3 C51的基本運(yùn)算_第2頁(yè)
《單片機(jī)原理與接口技術(shù)》 課件 2.3 C51的基本運(yùn)算_第3頁(yè)
《單片機(jī)原理與接口技術(shù)》 課件 2.3 C51的基本運(yùn)算_第4頁(yè)
《單片機(jī)原理與接口技術(shù)》 課件 2.3 C51的基本運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二章C51

程序設(shè)計(jì)基礎(chǔ)2.3

C51的基本運(yùn)算單片機(jī)原理與接口技術(shù)C51

語(yǔ)言中,運(yùn)算符主要分為三大類(lèi):●算術(shù)運(yùn)算符●關(guān)系運(yùn)算符與邏輯運(yùn)算符●按位運(yùn)算符此外,還有一些用于完成特殊任務(wù)的運(yùn)算符。如“,”、“?”運(yùn)算符、地址操作運(yùn)算符、聯(lián)合操作運(yùn)算符、"sizeof"運(yùn)算符、類(lèi)型轉(zhuǎn)換

運(yùn)算符等。1.賦值運(yùn)算符:

=2.算術(shù)運(yùn)算符:十、

、*、1、%,++,

--3.關(guān)系運(yùn)算符:<

、>

、<=

、>=

、==

、!=

4.邏輯運(yùn)算符:&&(與);Ⅲ(或);!(非)。優(yōu)先級(jí)順序(由高到低):

邏輯非→算術(shù)運(yùn)算符→關(guān)系運(yùn)算符→邏輯與→邏輯或→賦值運(yùn)算。5.位運(yùn)算符按位與(&)、按位或(1)、按位異或(^)、取反(~)、左移(<<)和

右移(>>)。優(yōu)先級(jí)順序(由高到低)

:

按位取反(~)→

左移(<<)和右

移(

>

>

)

→按

與(

&

)

按位異或(^)

按位或(1)。6.復(fù)合賦值運(yùn)算符變量雙目運(yùn)算符=表達(dá)式等效于:變量=變量

運(yùn)算符表達(dá)式a+=b;//a=a+b十

、

-

=

*

=

、

/

=

、

%

=

<

<

=

、

>

>

=

&

=

、

^

=

=

。a>>=7;//a=a>>7取地址(&)運(yùn)算的含義是將目標(biāo)變量的地址賦給等號(hào)(=)左邊的指針變量。取內(nèi)容(*)運(yùn)算的含義是將指針變量所指向的目標(biāo)變量的值賦給等號(hào)(=)左邊的變量;chara=5,b,*txp,*p;charxdatatxbuffer[3]={1,2,3};

voidmain(void){txp=txbuffer;//txp=&txbuffer

b=*txp;//b=1p=&a;//把變量a的地址賦給p7.指針和地址運(yùn)算符存放變量地址的變量稱(chēng)為指針變量。取地址(&)和取內(nèi)容(*)。指針變量=&目標(biāo)變量變量=*指針變量在C51中訪問(wèn)外部I/O端口的方法:方法1:使用自定義指針。

外I/O端口與片外存儲(chǔ)器統(tǒng)一編址,可以定義xdata類(lèi)型的指針訪問(wèn)外部I/O端口。charxdata

*ptr;//定義指向外部存儲(chǔ)區(qū)(片外I/O端口)的指針例如,某單片機(jī)應(yīng)用系統(tǒng)中,使用8255芯片擴(kuò)展I/O端口,8255的命令口

地址為7FF3H,PA

口地址為7FFOH,分析對(duì)8255芯片的訪問(wèn)?!魧?xiě)端口程序:char

xdata

*ptr

;

//

定義指向外部存儲(chǔ)區(qū)(片

外I/0端口)的

指針ptr=0x7ff3

;//

使指針指向8255的控制口(命令口)地址7FF3H*ptr

=0x81;//

輸出命令字81H到命令口寄存器以上C程序相當(dāng)于下面的匯編語(yǔ)言程序:MOVDPTR,

#7FF3HMOV

A

,

#81HMOVX

@DPTR

,

A◆讀端口程序:char

xdata

*ptr;

//定義指針chari;ptr

=0x7FFO;//使指針指向8255的PA口地址7FFOHi=*ptr;/

讀PA

端口內(nèi)容到變量i以上C

程序相當(dāng)于下面的匯編語(yǔ)言程序:MOV

DPTR,#7FFOHMOVX

A,@DPTR方法2:使用C51

預(yù)定義指針。在C51的absacc.h頭文件做了如下定義,可利用其方便地訪問(wèn)外部I/O端口。#define

CBYTE

((unsigned

char

volatile

code*)0)#define

DBYTE((unsigned

charvolatile

data*

)0)#define

PBYTE

((unsigned

charvolatile

pdata*

)0)#define

XBYTE

((unsignedcharvolatilexdata*)0)volatile修飾了的變量隨程序的執(zhí)行其值會(huì)被改變,“易變”#include<absacc.h>#define

PORTA

XBYTE[0x7ff0]//PORTA為I/O端口名稱(chēng),[]內(nèi)的7ffOH為PORTA的地址yoidmain(void)char

a;PORTA

=0x81;//*輸出81H到端口7ffOHa=

PORTA

;

//讀端口7ffOH到變量a地址或*(XBYTE+0x7ff0)相當(dāng)于定義X

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論