單片機內(nèi)部有很多的特殊功能寄存器,每個寄存器在單片機內(nèi)部都分配有唯一的地址,一般我們會根據(jù)寄存器功能的不同給寄存器賦予各自的名稱,當我們需要在程序中操作這些特殊功能寄存器時,必須要在程序的最前面將這些名稱加以聲明,聲明的過程實際就是將這個寄存器在內(nèi)存中的地址編號賦給這個名稱,這樣編譯器在以后的程序中才可認知這些名稱所對應(yīng)的寄存器。對于大多數(shù)初學(xué)者來講,這些寄存器的聲明已經(jīng)完全被包含在51單片機的特殊功能寄存器聲明頭文件“reg51.h”中了,初學(xué)者若不想深入了解,完全可以暫不操作它。
數(shù)據(jù)元(Data Element),也稱為數(shù)據(jù)元素,是用一組屬性描述其定義、標識、表示和允許值的數(shù)據(jù)單元,在一定語境下,通常用于構(gòu)建一個語義正確、獨立且無歧義的特定概念語義的信息單元。數(shù)據(jù)元可以理解為數(shù)據(jù)的基本單元,將若干具有相關(guān)性的數(shù)據(jù)元按一定的次序組成一個整體結(jié)構(gòu)即為數(shù)據(jù)模型。
C語言是一門面向過程的、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設(shè)計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業(yè)平臺的許多計算機平臺上進行編譯。
圖1.2.1至圖1.2.6三組圖是51單片機芯片不同封裝的引腳圖和實物圖,其中標有NC的是不連接(No Connect)的意思。當大家首次看見這些引腳時,一定會有又多又亂的感覺,而且難以記憶。千萬不要著急,對于初學(xué)者來說,單純地記憶引腳標號沒有任何意義,最好的方法就是邊學(xué)邊記。
二進制(binary),是在數(shù)學(xué)和數(shù)字電路中以2為基數(shù)的記數(shù)系統(tǒng),是以2為基數(shù)代表系統(tǒng)的二進位制。這一系統(tǒng)中,通常用兩個不同的符號0(代表零)和1(代表一)來表示。發(fā)現(xiàn)者是萊布尼茨。數(shù)字電子電路中,邏輯門的實現(xiàn)直接應(yīng)用了二進制,現(xiàn)代的計算機和依賴計算機的設(shè)備里都使用二進制。每個數(shù)字稱為一個比特(Bit,Binary digit的縮寫)。
單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習使用單片機是了解計算機原理與結(jié)構(gòu)的最佳選擇。
很多單片機初學(xué)者問我的第一句話都是:怎樣才能學(xué)好單片機?今天,我就結(jié)合我自己是如何開始學(xué)習單片機的,如何開始上手,又如何開始熟練等話題與大家分享。
Proteus虛擬仿真軟件由英國Labcenter公司開發(fā),集電路原理圖設(shè)計、印制電路板設(shè)計和實物仿真等功能于一體,可以利用軟件模擬各種硬件(如:電阻、電容等模擬器件,單片機、微處理器等數(shù)字器件,示波器、萬用表等儀器設(shè)備),并支持對模擬硬件的軟件編程和虛擬仿真調(diào)試。這使得用戶可以在沒有硬件支持的情況下,以電路原理為基礎(chǔ)搭建虛擬模型,進行系統(tǒng)統(tǒng)仿真和調(diào)試,并可以看到系統(tǒng)運行的模擬效果。由于可節(jié)約成本、提高研發(fā)效率,利用Proteus軟件進行單片機系統(tǒng)輔助設(shè)計的方式已經(jīng)被很多高校和研發(fā)機構(gòu)采用。
Proteus軟件具有良好的人機交互功能,該軟件啟動后將自動進入ISIS功能界面(見圖9-1),其中多數(shù)工具欄的位置可以通過鼠標拖動來調(diào)整。本節(jié)將以AT89C52單片機最小系統(tǒng)原理圖繪制為例,介紹ISIS的使用方法。
C語言是一種計算機程序設(shè)計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。
C語言是一種高級程序設(shè)計語言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用C51語言設(shè)計單片機應(yīng)用系統(tǒng)程序時,首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計方法,這樣可使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護。對于一個較大的程序,可將整個程序按功能分成若干個模塊,不同的模塊完成不同的功能。對于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會引起整個程序管理的混亂,還可增強可讀性,移植性也好。
單片機C51語言兼?zhèn)涓呒壵Z言與低級語言的優(yōu)點。語法結(jié)構(gòu)和標準C語言基本一致,語言簡潔,便于學(xué)習。運行于單片機平臺,支持的微處理器種類繁多,可移植性好。對于兼容的8051系列單片機,只要將一個硬件型號下的程序稍加修改,甚至不加改變,就可移植到另一個不同型號的單片機中運行。具有高級語言的特點,盡量減少底層硬件寄存器的操作。單片機C51語言提供了完備的數(shù)據(jù)類型、運算符及函數(shù)供使用。C51語言是一種結(jié)構(gòu)化程序設(shè)計語言,可以使用一對花括號“{}”將一系列語句組合成一個復(fù)合語句,程序結(jié)構(gòu)清晰明了。C51語言代碼執(zhí)行的效率方面十分接近匯編語言,且比匯編語言的程序易于理解,便于代碼共享。
程序設(shè)計語言是用于書寫計算機程序的語言。語言的基礎(chǔ)是一組記號和一組規(guī)則。根據(jù)規(guī)則由記號構(gòu)成的記號串的總體就是語言。在程序設(shè)計語言中,這些記號串就是程序。程序設(shè)計語言有3個方面的因素,即語法、語義和語用。語法表示程序的結(jié)構(gòu)或形式,亦即表示構(gòu)成語言的各個記號之間的組合規(guī)律,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但不涉及使用者。
當程序的運行結(jié)果與預(yù)期不同時,需要利用μVision4的調(diào)試功能分析和查找程序中隱藏的邏輯錯誤。下面介紹程序調(diào)試的具體方法。
KeilμVision4是Keil軟件公司為8051系列微控制器及其兼容產(chǎn)品設(shè)計的集成式軟件開發(fā)環(huán)境。μVision4集成了C51編譯器和A51匯編器,其界面類似于Microsoft VS,支持C語言和匯編語言程序的編寫和調(diào)試,功能強大。
Wuying00
譚意義
baby321
后一個5年
龍牙
13935218969
st6666
學(xué)吧
jiayouxuexi
Fimer
isabella2019
zspzspzsp
yjm1995
tengfei1266
heisetiantang
YDavy
魚躍此時海
1243907563
慕容垂
QQ23
curryLIHENGLEI
羅晶凡
Liuxds
無心h
與你無瓜
Senmin
夜是打火機
floodsource
tonifyingheart
10468005