單片機(jī)開發(fā)系統(tǒng)使用_第1頁
單片機(jī)開發(fā)系統(tǒng)使用_第2頁
單片機(jī)開發(fā)系統(tǒng)使用_第3頁
單片機(jī)開發(fā)系統(tǒng)使用_第4頁
單片機(jī)開發(fā)系統(tǒng)使用_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)開發(fā)系統(tǒng)使用第一頁,共七十六頁,2022年,8月28日電子技術(shù)錫焊技藝常用元器件及儀器單片機(jī)系統(tǒng)設(shè)計(jì)概述單片機(jī)開發(fā)系統(tǒng)的使用單片機(jī)系統(tǒng)設(shè)計(jì)實(shí)例第二頁,共七十六頁,2022年,8月28日單片機(jī)開發(fā)系統(tǒng)的使用一、Keil軟件使用二、Proteus使用三、C51基礎(chǔ)知識四、基于C51的一個(gè)設(shè)計(jì)實(shí)例第三頁,共七十六頁,2022年,8月28日一、Keil軟件使用使用C語言肯定要使用到C編譯器,以便把寫好的C程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。KEIL是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。

第四頁,共七十六頁,2022年,8月28日(1)新建工程點(diǎn)擊Project菜單,選擇NewProject,輸入項(xiàng)目名稱,擴(kuò)展名為uv2,以后我們可以直接點(diǎn)擊此文件以打開先前做的項(xiàng)目。

第五頁,共七十六頁,2022年,8月28日(2)選擇所要的單片機(jī)這里我們選擇常用的Ateml公司的AT89C51。

第六頁,共七十六頁,2022年,8月28日(3)創(chuàng)建新的程序文件或加入舊程序文件點(diǎn)擊圖中的新建文件的快捷按鈕,出現(xiàn)一個(gè)新的文字編輯窗口,這個(gè)操作也可通過菜單File-New或快捷鍵Ctrl+N來實(shí)現(xiàn)。輸入程序代碼保存文件。這時(shí)你會(huì)發(fā)現(xiàn)程序有了不同的顏色,說明KEIL的C語法檢查生效了。第七頁,共七十六頁,2022年,8月28日(4)將程序文件加入項(xiàng)目中右擊SourceGroup1文件夾圖標(biāo),可以在項(xiàng)目中增加減少文件等操作。選擇AddFiletoGroup‘SourceGroup1‘,在彈出文件窗口選擇需添加的文件。第八頁,共七十六頁,2022年,8月28日(5)編譯運(yùn)行程序圖中1、2、3都是編譯按鈕1是用于編譯單個(gè)文件2是編譯當(dāng)前項(xiàng)目3是重新編譯在3右邊的是停止編譯按鈕5是菜單中的相應(yīng)項(xiàng)在4中可以看到編譯的信息等,以后我們要查錯(cuò)就靠它了。6是”開啟\關(guān)閉調(diào)試模式”的按鈕,快捷鍵為Ctrl+F5。第九頁,共七十六頁,2022年,8月28日(6)進(jìn)入調(diào)試模式

1為運(yùn)行,2為停止,3是復(fù)位,模擬芯片的復(fù)位按4可以打開的串行調(diào)試窗口(如5)。第十頁,共七十六頁,2022年,8月28日(7)生成HEX文件KEIL編譯生成用于燒寫芯片的HEX文件。右擊項(xiàng)目文件夾,彈出項(xiàng)目功能菜單,選OptionsforTarget'Target1'第十一頁,共七十六頁,2022年,8月28日(7)生成HEX文件轉(zhuǎn)到Output選項(xiàng)頁,1是選擇編譯輸出的路徑,2是設(shè)置生成的文件名,3是決定是否要?jiǎng)?chuàng)建HEX文件。第十二頁,共七十六頁,2022年,8月28日二、Proteus的使用Proteus是來自英國Labcenter公司的嵌入式系統(tǒng)仿真開發(fā)軟件,它包括原理圖布圖、混合模式仿真、VSM嵌入式仿真以及PCB制板功能。第十三頁,共七十六頁,2022年,8月28日(一)Proteus概覽(二)原理圖設(shè)計(jì)(三)PROTEUS微處理器仿真(四)

Proteus和Keil聯(lián)合調(diào)試第十四頁,共七十六頁,2022年,8月28日在傳統(tǒng)的CAD功能中添加了嵌入式系統(tǒng)的仿真可以完整地仿真微控制器以及相連的模擬和數(shù)字電路(一)Proteus概覽ProSPICE混合模式仿真器ISIS設(shè)計(jì)仿真平臺VSM嵌入式仿真ARESPCB制版ProteusDesignSuite第十五頁,共七十六頁,2022年,8月28日Proteus概覽

在Proteus中,從原理圖設(shè)計(jì)、單片機(jī)編程、系統(tǒng)仿真到PCB布線一氣呵成。完成了從概念到產(chǎn)品的整個(gè)過程。第十六頁,共七十六頁,2022年,8月28日Proteus是一個(gè)虛擬實(shí)驗(yàn)室,提供了大量的虛擬儀器、儀表、激勵(lì)源和分析工具:13類激勵(lì)源直流、正弦、脈沖……13類曲線圖表模擬、數(shù)字、頻率……12類虛擬儀器示波器、邏輯分析儀、SPI/I2C調(diào)試器……電壓/電流探針第十七頁,共七十六頁,2022年,8月28日PROTEUS虛擬實(shí)驗(yàn)室-探針(Probe)電壓探針(Voltageprobes)-既可在模擬仿真中使用,也可在數(shù)字仿真中使用。在模擬電路中記錄真實(shí)的電壓值,而在數(shù)字電路中,記錄邏輯電平及其強(qiáng)度。

探針即可用于基于圖表的仿真,也可用于交互式仿真中。第十八頁,共七十六頁,2022年,8月28日預(yù)覽窗口挑選元件按鈕庫管理按鈕模型選擇工具欄元件列表仿真按鈕原理圖編輯窗口方位控制按鈕(二)原理圖設(shè)計(jì)第十九頁,共七十六頁,2022年,8月28日1、原理圖編輯窗口

(TheEditingWindow)用來繪制原理圖,藍(lán)色方框內(nèi)為可編輯區(qū),元件要放到它里面。注意:這個(gè)窗口是沒有滾動(dòng)條的,你可用預(yù)覽窗口來改變原理圖的可視范圍。第二十頁,共七十六頁,2022年,8月28日2、預(yù)覽窗口

(TheOverviewWindow)可顯示兩個(gè)內(nèi)容.(1)當(dāng)你在元件列表中選擇一個(gè)元件時(shí),它會(huì)顯示該元件的預(yù)覽圖;(2)當(dāng)你的鼠標(biāo)焦點(diǎn)落在原理圖編輯窗口時(shí),會(huì)顯示整張?jiān)韴D的縮略圖,可用鼠標(biāo)在它上面點(diǎn)擊來改變綠色的方框的位置,從而改變原理圖的可視范圍。第二十一頁,共七十六頁,2022年,8月28日3、模型選擇工具欄

(ModeSelectorToolbar)主要模型(MainModes)

1)選擇元件(components)(默認(rèn)選擇的)2)放置連接點(diǎn)3)放置標(biāo)簽(用總線時(shí)會(huì)用到)4)放置文本5)用于繪制總線6)用于放置子電路7)用于即時(shí)編輯元件參數(shù)(先單擊該圖標(biāo)再單擊要修改的元件)第二十二頁,共七十六頁,2022年,8月28日方便快捷的元件查找、放置功能:模糊查找分類查找結(jié)果列表元件預(yù)覽封裝預(yù)覽第二十三頁,共七十六頁,2022年,8月28日配件(Gadgets)

1)終端接口:有VCC、地、輸出、輸入等接口2)器件引腳:用于繪制各種引腳3)仿真圖表:用于各種分析,如NoiseAnalysis4)錄音機(jī)5)信號發(fā)生器(generators)6)電壓探針:使用仿真圖表時(shí)要用到7)電流探針:使用仿真圖表時(shí)要用到8)虛擬儀表:有示波器等第二十四頁,共七十六頁,2022年,8月28日2D圖形

(2DGraphics)

1*畫各種直線2*畫各種方框3*畫各種圓4*畫各種圓弧5*畫各種多邊形6*畫各種文本7*畫符號8*畫原點(diǎn)等第二十五頁,共七十六頁,2022年,8月28日4、元件列表

(TheObjectSelector)

用于挑選元件(components)、終端接口(terminals)、仿真圖表(graph)、信號發(fā)生器(generators)等。舉例:當(dāng)你選擇“元件”,單擊“P”按鈕會(huì)打開挑選元件對話框,選擇了一個(gè)元件后,單擊“OK”

(或雙擊元件),該元件會(huì)在元件列表中顯示,以后要用到該元件時(shí),只需在元件列表中選擇即可。第二十六頁,共七十六頁,2022年,8月28日5、方向工具欄

(OrientationToolbar)旋轉(zhuǎn):旋轉(zhuǎn)角度只能是90的整數(shù)倍。翻轉(zhuǎn):完成水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)。使用方法:先右鍵單擊元件,再點(diǎn)擊(左擊)相應(yīng)的旋轉(zhuǎn)圖標(biāo)。第二十七頁,共七十六頁,2022年,8月28日6、仿真工具欄仿真控制按鈕1*運(yùn)行2*單步運(yùn)行3*暫停4*停止第二十八頁,共七十六頁,2022年,8月28日原理圖繪制操作簡介繪制原理圖要在原理圖編輯窗口中的藍(lán)色方框內(nèi)完成。其操作不同于WINDOWS應(yīng)用程序。正確的操作是:用左鍵放置元件;右鍵選擇元件;雙擊右鍵刪除元件;右鍵拖選多個(gè)元件;先右鍵后左鍵編輯元件屬性;先右鍵后左鍵拖動(dòng)元件;連線用左鍵,刪除用右鍵;改連接線:先右擊連線,再左鍵拖動(dòng);中鍵放縮原理圖。第二十九頁,共七十六頁,2022年,8月28日(三)PROTEUS微處理器仿真

ProteusVSM是一個(gè)基于ProSPICE混合模型仿真器的,完整的嵌入式系統(tǒng)軟、硬件設(shè)計(jì)仿真平臺。單片機(jī)系統(tǒng)的仿真是PROTEUSVSM的主要特色。用戶可在Proteus中直接編輯、編譯、調(diào)試代碼,并直觀地看到仿真結(jié)果。CPU模型有ARM7(LPC21xx)、PIC、AtmelAVR、MotorolaHCXX以及8051/8052系列。同時(shí)模型庫中包含了LED/LCD顯示、鍵盤、按鈕、開關(guān)、常用電機(jī)等通用外圍設(shè)備。第三十頁,共七十六頁,2022年,8月28日PROTEUSVSM仿真與分析示例1:PWM電機(jī)控制——?jiǎng)討B(tài)效果動(dòng)態(tài)器件使仿真直觀生動(dòng)CPU可加載程序運(yùn)行第三十一頁,共七十六頁,2022年,8月28日51單片機(jī)仿真過程1.繪制原理圖2.選擇軟件設(shè)計(jì)語言(匯編、C)編寫源代碼3.編譯代碼,生成目標(biāo)文件。4.裝載HEX或OMF文件,仿真調(diào)試。第三十二頁,共七十六頁,2022年,8月28日第三方工具的應(yīng)用

直接使用第三方IDE(IntegratedDevelopmentEnvironment

)如:Keil’suVision2、WAVE6)開發(fā)源代碼,并進(jìn)行編輯,生成HEX文件后,切換到ProteusVSM

,再進(jìn)行仿真。

1、使用第三方IDE建立工程,編寫C程序2、編譯生成HEX代碼,加載到CPU當(dāng)中。(無源碼調(diào)試信息)3、編譯生成OMF格式代碼,加載到CPU當(dāng)中。第三十三頁,共七十六頁,2022年,8月28日裝載HEX或OMF文件,仿真調(diào)試。程序加載到CPU第三十四頁,共七十六頁,2022年,8月28日仿真調(diào)試實(shí)時(shí)顯示系統(tǒng)輸出結(jié)果

實(shí)時(shí)顯示元器件引腳電平說明:紅色代表高電平,蘭色代表低電平,灰色代表不確定電平(floating)。第三十五頁,共七十六頁,2022年,8月28日(四)

Proteus和Keil聯(lián)合調(diào)試聯(lián)調(diào)過程:

1.運(yùn)行驅(qū)動(dòng)程序vdmagdi.exe2.在Proteus中設(shè)計(jì)電路原理圖,并選中Debug-useremotedebugmonitor3.在Keil環(huán)境下創(chuàng)建項(xiàng)目,編輯源程序(C或ASM)并編譯為hex文件;第三十六頁,共七十六頁,2022年,8月28日(四)

Proteus和Keil聯(lián)合調(diào)試4.在Keil中,設(shè)置Target-targetoption-debug,選用ProteusVSMSimulator;5.在Proteus中將Keil生成的hex文件加載給CPU;6.在Keil中運(yùn)行、調(diào)試程序,同時(shí)在Proteus中觀察運(yùn)行結(jié)果。第三十七頁,共七十六頁,2022年,8月28日PROTEUS與Keil聯(lián)調(diào)Keil處于運(yùn)行狀態(tài)PROTEUS同時(shí)進(jìn)入運(yùn)行狀態(tài)第三十八頁,共七十六頁,2022年,8月28日三、C51基礎(chǔ)知識1、標(biāo)識符標(biāo)識符是用來標(biāo)識源程序中某個(gè)對象的名字,這些對象可以是函數(shù)、變量、數(shù)組等。C語言對大小些敏感,如“Timer1”、“TIMER1”

是完全不同定義的標(biāo)識符。標(biāo)識符由字符串、數(shù)字和下劃線等組成,注意的是第一個(gè)字符必須是字母或下劃線。標(biāo)識符在命名時(shí)應(yīng)當(dāng)簡單,含義清晰,這樣有助于閱讀理解程序。第三十九頁,共七十六頁,2022年,8月28日三、C51基礎(chǔ)知識2、關(guān)鍵字關(guān)鍵字則是編程語言保留的特殊標(biāo)識符,它們具有固定名稱和含義,在程序編寫中不允許標(biāo)識符與關(guān)鍵字亦同。在KEILuVision2中的關(guān)鍵字除了有ANSIC標(biāo)準(zhǔn)的32個(gè)關(guān)鍵字外還根據(jù)51單片機(jī)的特點(diǎn)擴(kuò)展了相關(guān)的關(guān)鍵字。第四十頁,共七十六頁,2022年,8月28日數(shù)據(jù)類型長度值域unsignedchar單字節(jié)0~255signedchar單字節(jié)-128~+127unsignedint雙字節(jié)0~65535signedint雙字節(jié)-32768~+32767unsignedlong四字節(jié)0~4294967295signedlong四字節(jié)-2147483648~+2147483647float四字節(jié)±1.175494E-38~±3.402823E+38*1~3字節(jié)對象的地址bit位0或1sfr單字節(jié)0~255sfr16雙字節(jié)0~65535sbit位0或13、KEILC51編譯器所支持的數(shù)據(jù)類型第四十一頁,共七十六頁,2022年,8月28日1)char字符類型char類型的長度是一個(gè)字節(jié),通常用于定義處理字符數(shù)據(jù)的變量或常量。unsignedchar:0~255。signedchar:字節(jié)中最高位字節(jié)表示數(shù)據(jù)的符號,“0”表示正數(shù),“1”表示負(fù)數(shù),負(fù)數(shù)用補(bǔ)碼表示。所能表示的數(shù)值范圍是-128~+127。unsignedchar常用于處理ASCII字符或用于處理小于或等于255的整型數(shù)。第四十二頁,共七十六頁,2022年,8月28日2)int整型int整型長度為兩個(gè)字節(jié),用于存放一個(gè)雙字節(jié)數(shù)據(jù)。signedint:-32768~+32767

unsignedint:0~65535第四十三頁,共七十六頁,2022年,8月28日3)long長整型long長整型長度為四個(gè)字節(jié),用于存放一個(gè)四字節(jié)數(shù)據(jù)。分有signedlong和unsignedlong4)float浮點(diǎn)型float浮點(diǎn)型在十進(jìn)制中具有7位有效數(shù)字,是符合IEEE-754標(biāo)準(zhǔn)的單精度浮點(diǎn)型數(shù)據(jù),占用四個(gè)字節(jié)。5)*指針型指針型本身就是一個(gè)變量,在這個(gè)變量中存放的指向另一個(gè)數(shù)據(jù)的地址。第四十四頁,共七十六頁,2022年,8月28日6)bit位標(biāo)量bit位標(biāo)量是C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可定義一個(gè)位標(biāo)量,但不能定義位指針,也不能定義位數(shù)組。它的值是一個(gè)二進(jìn)制位,不是0就是1,類似高級語言中的Boolean類型中的True和False。第四十五頁,共七十六頁,2022年,8月28日7)sfr特殊功能寄存器sfr也是一種擴(kuò)充數(shù)據(jù)類型,點(diǎn)用一個(gè)內(nèi)存單元,值域?yàn)?~255。利用它可以訪問51單片機(jī)內(nèi)部的所有特殊功能寄存器。如用sfrP1=0x90這一句定P1為P1端口在片內(nèi)的寄存器,在后面的語句中我們用以用

P1=255(對P1端口的所有引腳置高電平)之類的語句來操作特殊功能寄存器。第四十六頁,共七十六頁,2022年,8月28日8)Sfr1616位特殊功能寄存器sfr16占用兩個(gè)內(nèi)存單元,值域?yàn)?~65535。sfr16和sfr一樣用于操作特殊功能寄存器,所不同的是它用于操作占兩個(gè)字節(jié)的寄存器,如定時(shí)器T0和T1。第四十七頁,共七十六頁,2022年,8月28日9)sbit可尋址位sbit是C51中的一種擴(kuò)充數(shù)據(jù)類型,利用它可以訪問芯片內(nèi)部RAM中的可尋址位或特殊功能寄存器中的可尋址位。如先前我們定義了sfrP1=0x90;sbitP1_1=P1^1;

//P1_1為P1中的P1.1引腳第四十八頁,共七十六頁,2022年,8月28日4、常量常量是在程序運(yùn)行過程中不能改變值的量,而變量是可以在程序運(yùn)行過程中不斷變化的量。變量的定義可以使用所有C51編譯器支持的數(shù)據(jù)類型常量的數(shù)據(jù)類型只有整型、浮點(diǎn)型、字符型、字符串型和位標(biāo)量。第四十九頁,共七十六頁,2022年,8月28日常量的數(shù)據(jù)類型說明:1)整型常量整型常量可以表示為:十進(jìn)制,如123、0、-89等。十六進(jìn)制則以0x開頭如0x34,-0x3B等。長整型就在數(shù)字后面加字母L,如104L等。第五十頁,共七十六頁,2022年,8月28日常量的數(shù)據(jù)類型說明2)浮點(diǎn)型常量:可分為十進(jìn)制和指數(shù)表示形式。十進(jìn)制由數(shù)字和小數(shù)點(diǎn)組成,如0.888,3345.345,0.0等,整數(shù)或小數(shù)部分為0,可以省略但必須有小數(shù)點(diǎn)。第五十一頁,共七十六頁,2022年,8月28日常量的數(shù)據(jù)類型說明3)字符型常量是單引號內(nèi)的字符,如'a','d'等,不可以顯示的控制字符,可以在該字符前面加一個(gè)反斜杠"\"組成專用轉(zhuǎn)義字符。轉(zhuǎn)義字符含義ASCII碼(16/10進(jìn)制)\o空字符(NULL)00H/0\n換行符(LF)0AH/10\r回車符(CR)0DH/13\t水平制表符(HT)09H/9\b退格符(BS)08H/8\f換頁符(FF)0CH/12\'單引號27H/39\"雙引號22H/34\\反斜杠5CH/92第五十二頁,共七十六頁,2022年,8月28日常量的數(shù)據(jù)類型說明4)字符串型常量由雙引號內(nèi)的字符組成,如"test","OK"等。當(dāng)引號內(nèi)的沒有字符時(shí),為空字符串。在使用特殊字符時(shí)同樣要使用轉(zhuǎn)義字符如雙引號。在C中字符串常量是做為字符類型數(shù)組來處理的,在存儲字符串時(shí)系統(tǒng)會(huì)在字符串尾部加上\o轉(zhuǎn)義字符以作為該字符串的結(jié)束符。第五十三頁,共七十六頁,2022年,8月28日常量可用在不必改變值的場合,如固定的數(shù)據(jù)表,字庫等。常量的定義方式有幾種:

#difineFalse0x0;//用預(yù)定義語句可以定義常量

#difineTrue0x1;//這里定義False為0,True為1

//在程序中用到False編譯時(shí)自動(dòng)用0替換,同理True替換為1

第五十四頁,共七十六頁,2022年,8月28日unsignedintcodea=100;//這一句用code把a(bǔ)定義在程序存儲器中并賦值constunsignedintc=100;//用const定義c為無符號int常量并賦值以上兩句它們的值都保存在程序存儲器中,而程序存儲器在運(yùn)行中是不允許被修改的,所以如果在這兩句后面用了類似a=110,a++這樣的賦值語句,編譯時(shí)將會(huì)出錯(cuò)。

第五十五頁,共七十六頁,2022年,8月28日5、變量變量就是一種在程序執(zhí)行過程中其值能不斷變化的量。要在程序中使用變量必須先用標(biāo)識符作為變量名,并指出所用的數(shù)據(jù)類型和存儲模式,這樣編譯系統(tǒng)才能為變量分配相應(yīng)的存儲空間。第五十六頁,共七十六頁,2022年,8月28日5、變量定義一個(gè)變量的格式如下:[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表在定義格式中除了數(shù)據(jù)類型和變量名表是必要的,其它都是可選項(xiàng)。存儲種類是指變量在程序執(zhí)行過程中的作用范圍。存儲種類有四種:自動(dòng)(auto),外部(extern),靜態(tài)(static)和寄存器(register),缺省類型為自動(dòng)(auto)第五十七頁,共七十六頁,2022年,8月28日存儲器類型的說明就是指定該變量在C51硬件系統(tǒng)中所使用的存儲區(qū)域,并在編譯時(shí)準(zhǔn)確的定位。第五十八頁,共七十六頁,2022年,8月28日KEIL所能認(rèn)別的存儲器類型存儲器類型說明data直接訪問內(nèi)部數(shù)據(jù)存儲器(128字節(jié)),訪問速度最快bdata可位尋址內(nèi)部數(shù)據(jù)存儲器(16字節(jié)),允許位與字節(jié)混合訪問idata間接訪問內(nèi)部數(shù)據(jù)存儲器(256字節(jié)),允許訪問全部內(nèi)部地址pdata分頁訪問外部數(shù)據(jù)存儲器(256字節(jié)),用MOVX@Ri指令訪問xdata外部數(shù)據(jù)存儲器(64KB),用MOVX@DPTR指令訪問code程序存儲器(64KB),用MOVC@A+DPTR指令訪問第五十九頁,共七十六頁,2022年,8月28日如果省略存儲器類型,系統(tǒng)則會(huì)按編譯模式SMALL,COMPACT或LARGE所規(guī)定的默認(rèn)存儲器類型去指定變量的存儲區(qū)域。無論什么存儲模式都可以聲明變量在任何的8051存儲區(qū)范圍,然而把最常用的命令如循環(huán)計(jì)數(shù)器和隊(duì)列索引放在內(nèi)部數(shù)據(jù)區(qū)可以顯著的提高系統(tǒng)性能。還有要指出的就是變量的存儲種類與存儲器類型是完全無關(guān)的。第六十頁,共七十六頁,2022年,8月28日例:數(shù)據(jù)類型存儲類型變量Chardatavar1;bitbdataflags;unsignedcharxdatavextor[10];第六十一頁,共七十六頁,2022年,8月28日6、運(yùn)算符與C語言基本相同:+-*/:(加減乘除)>>=<<=:(大于大于等于小于小于等于)==!=:(測試等于測試不等于)第六十二頁,共七十六頁,2022年,8月28日6、運(yùn)算符&&||!:(邏輯與邏輯或邏輯非)>><<:(位右移位左移)&|:(按位與按位或)^~:(按位異或按位取反)第六十三頁,共七十六頁,2022年,8月28日7、C51的基本語句與標(biāo)準(zhǔn)C語言基本相同:if選擇語言switch/case多分支選擇語言while循環(huán)語言do-while循環(huán)語言for循環(huán)語言第六十四頁,共七十六頁,2022年,8月28日8、C程序的規(guī)范化設(shè)計(jì)在單片機(jī)C程序設(shè)計(jì)中,項(xiàng)目一般按功能進(jìn)行結(jié)構(gòu)化設(shè)計(jì)。將一個(gè)項(xiàng)目劃分為多個(gè)功能,每個(gè)功能的相關(guān)程序放在一個(gè)C程序文檔中,稱之為一個(gè)模塊(group),對應(yīng)的文件名即為模塊名。一個(gè)模塊通常由兩個(gè)文檔組成:一個(gè)為頭文件*.h,對模塊中的數(shù)據(jù)結(jié)構(gòu)和函數(shù)原型進(jìn)行描述;另一個(gè)則為C文件*.c,對數(shù)據(jù)實(shí)例或?qū)ο蠖x,以及函數(shù)算法具體實(shí)現(xiàn)。第六十五頁,共七十六頁,2022年,8月28日(1)C51庫函數(shù)與H頭文件C51編譯器的運(yùn)行庫中包含有豐富的庫函數(shù),使用庫函數(shù)可以大大簡化用戶的程序設(shè)計(jì)工作,提高編程效率。由于8051系列單片機(jī)本身的特點(diǎn),某些庫函數(shù)的參數(shù)和調(diào)用格式與ANSIC標(biāo)準(zhǔn)有所不同。每個(gè)庫函數(shù)都在相應(yīng)的頭文件中給出了函數(shù)原型說明,用戶如果需要使用庫函數(shù),必須在源程序的開始處采用預(yù)處理器指令#include將有關(guān)的頭文件包含進(jìn)來。第六十六頁,共七十六頁,2022年,8月28日C51包含的頭文件常用有:reg51.h(定義特殊功能寄存器和位寄存器);math.h數(shù)學(xué)函數(shù)庫(定義常用數(shù)學(xué)運(yùn)算);absacc.h絕對地址訪問頭文件(定義一些宏用來對存儲器空間進(jìn)行絕對地址訪問)intrins.h內(nèi)部函數(shù)庫

(包含變量循環(huán)移位、位操作等函數(shù))第六十七頁,共七十六頁,2022年,8月28日(2)C51的程序結(jié)構(gòu)

與一般C語言的結(jié)構(gòu)相同,以main()函數(shù)為程序人口,程序體中包含若干語句還可以包含若干函數(shù)。第六十八頁,共七十六頁,2022年,8月28日C51的程序結(jié)構(gòu)如下全局變量說明函數(shù)聲明Main(){

數(shù)據(jù)說明部分語句執(zhí)行部分,包括可能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論