單片機(jī)基礎(chǔ)知識(shí)課件_第1頁(yè)
單片機(jī)基礎(chǔ)知識(shí)課件_第2頁(yè)
單片機(jī)基礎(chǔ)知識(shí)課件_第3頁(yè)
單片機(jī)基礎(chǔ)知識(shí)課件_第4頁(yè)
單片機(jī)基礎(chǔ)知識(shí)課件_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章單片機(jī)基礎(chǔ)知識(shí)本章主要內(nèi)容1、單片機(jī)概述2、單片機(jī)中數(shù)的表示方法3、常用編碼第1章單片機(jī)基礎(chǔ)知識(shí)本章主要內(nèi)容1、單片機(jī)概述2、單1一、單片機(jī)的概念

單片機(jī)是近代計(jì)算機(jī)技術(shù)發(fā)展的一個(gè)分支——嵌入式計(jì)算機(jī)系統(tǒng)。它是將計(jì)算機(jī)的主要部件:CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器、輸入/輸出接口電路等集成在一塊大規(guī)模的集成電路中,形成芯片級(jí)的微型計(jì)算機(jī)稱為單片微型計(jì)算機(jī)(SingleChipMicrocomputer)簡(jiǎn)稱單片機(jī)。單片機(jī)自從問世以來(lái),就在控制領(lǐng)域得到廣泛應(yīng)用,特別是近年來(lái),許多功能電路都被集成在單片機(jī)內(nèi)部,如A/D、D/A、PWM、WDT、I2C總線接口等,極大提高了單片機(jī)的測(cè)量和控制能力,我們現(xiàn)在所說(shuō)的單片機(jī)已突破了微型計(jì)算機(jī)(Microcomputer)的傳統(tǒng)內(nèi)容,更準(zhǔn)確的名稱應(yīng)為微控制器(Microcontroller)。

英文簡(jiǎn)寫為:MCU/MPU一、單片機(jī)的概念單片機(jī)是近代計(jì)算機(jī)技術(shù)2單片機(jī)發(fā)展的起步階段最早期的單片機(jī)只有4位,功能簡(jiǎn)單,只能用于簡(jiǎn)單的控制。1974年出現(xiàn)了8位單片機(jī),由美國(guó)仙童公司首先推出典型的產(chǎn)品有Intel公司的MCS—48系列,Zilog公司的Z—8系列,Motorola公司的MC6800等,單片機(jī)的性能有了較大提高,并正式命名為SingleChipMicrocomputer。二、單片機(jī)的發(fā)展概況

單片機(jī)發(fā)展的起步階段二、單片機(jī)的發(fā)展概況3單片機(jī)發(fā)展的成熟階段1979~1982年單片機(jī)發(fā)展進(jìn)入成熟階段,單片機(jī)內(nèi)部的體系結(jié)構(gòu)得到進(jìn)一步完善,面向?qū)ο蟆⑼怀隽丝刂乒δ埽瑢ぶ返目臻g范圍擴(kuò)大,規(guī)范了數(shù)據(jù)線、地址線的總線結(jié)構(gòu),有了多功能的異步串行接口UART,設(shè)置位地址空間,提供位尋址和位操作和大量的控制轉(zhuǎn)移指令等。形成了單片機(jī)標(biāo)準(zhǔn)結(jié)構(gòu)。這時(shí)期最典型的產(chǎn)品就是Intel公司的MCS—51系列單片機(jī)。單片機(jī)發(fā)展的成熟階段4微控制器形成階段1982~1990年單片機(jī)完成向微控制器的轉(zhuǎn)換,為進(jìn)一步滿足測(cè)控要求,將許多測(cè)控對(duì)象的接口電路集成到單片機(jī)內(nèi)部,如A/D、D/A、PWM、DMA等。形成了不同于SingleChipMicrocomputer特點(diǎn)的微控制器——MCU。微控制器形成階段5微控制器百花齊放進(jìn)入20世紀(jì)90年代,隨著半導(dǎo)體集成電路技術(shù)微電子技術(shù)的發(fā)展,以及電氣制造商和半導(dǎo)體廠商的廣泛參與,微控制器進(jìn)入百花齊放的發(fā)展時(shí)期。微控制器百花齊放6小巧靈活、成本低,易于產(chǎn)品化,有優(yōu)異的性能價(jià)格比。集成度高,有很高的可靠性,能在惡劣的環(huán)境下工作。控制功能強(qiáng),面向?qū)ο蟛僮髦噶睿梢灾苯訉?duì)功能部件操作,易于實(shí)現(xiàn)從簡(jiǎn)單到復(fù)雜的各類控制任務(wù)。低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。三、單片機(jī)的特點(diǎn)小巧靈活、成本低,易于產(chǎn)品化,有優(yōu)異的性能價(jià)格比。三、單片7工業(yè)自動(dòng)化控制辦公自動(dòng)化設(shè)備智能儀器儀表家用電器醫(yī)療儀器設(shè)備通信產(chǎn)品航空航天等單片機(jī)應(yīng)用已經(jīng)深入到人類生活的各個(gè)領(lǐng)域。四、單片機(jī)的應(yīng)用領(lǐng)域工業(yè)自動(dòng)化控制四、單片機(jī)的應(yīng)用領(lǐng)域8五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)程序編寫、編譯程序下載(編程)通電運(yùn)行觀察硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編寫程序編譯目標(biāo)文件仿真編程器芯片內(nèi)部(1)(2)(3)(4)五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編9五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)程序編寫、編譯程序下載(編程)通電運(yùn)行觀察硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編寫程序編譯目標(biāo)文件仿真編程器芯片內(nèi)部(1)(2)(3)(4)五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編10位:就是一位的二進(jìn)制數(shù),其只能存放“1”或“0”,可以用來(lái)表示兩種不同狀態(tài)信息,如開關(guān)的“通”和“斷”,電平的“高”和“低”等。字節(jié):8位二進(jìn)制數(shù)組成一個(gè)字節(jié),既可以表示實(shí)際的數(shù),也可以表示多個(gè)狀態(tài)的組合信息。8位單片機(jī)中數(shù)是以字節(jié)為基本單位。字:兩個(gè)字節(jié)組成一個(gè)字,也即16位的二進(jìn)制數(shù)。一、位、字節(jié)、字的概念

位:就是一位的二進(jìn)制數(shù),其只能存放“1”或“0”,可以用來(lái)表111、數(shù)制

1)十進(jìn)制數(shù)(Decimal)

特點(diǎn):基數(shù)為10,由0、1、2、3、4、5、6、7、8、9十個(gè)數(shù)碼構(gòu)成。進(jìn)位規(guī)則是“逢十進(jìn)一”。二、數(shù)制與數(shù)制轉(zhuǎn)換

2)二進(jìn)制數(shù)(Binary)

特點(diǎn):基數(shù)為2,由0和1兩個(gè)數(shù)碼構(gòu)成。進(jìn)位規(guī)則是“逢二進(jìn)一”。1、數(shù)制二、數(shù)制與數(shù)制轉(zhuǎn)換2)二進(jìn)制數(shù)(Binary)123)十六進(jìn)制數(shù)(Hexadecimal)特點(diǎn):基數(shù)為16,由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六個(gè)數(shù)碼構(gòu)成,其中A、B、C、D、E、F分別表示10、11、12、13、14、15進(jìn)位規(guī)則是“逢十六進(jìn)一”。在單片機(jī)編程應(yīng)用中,可以用上面的任一種數(shù)制來(lái)表示數(shù),但要在數(shù)的后面加表示數(shù)制的符號(hào),二進(jìn)制數(shù)為“B”,十六進(jìn)制數(shù)為“H”,十進(jìn)制數(shù)為“D”,十進(jìn)制數(shù)的符號(hào)“D”可以省略。十六進(jìn)制數(shù)本質(zhì)上就是二進(jìn)制數(shù),4位二進(jìn)制數(shù)構(gòu)成1位十六進(jìn)制數(shù)。實(shí)際應(yīng)用中一般用十六進(jìn)制數(shù)。注:存儲(chǔ)器的地址一般都采用16進(jìn)制數(shù)來(lái)表達(dá)比較方便3)十六進(jìn)制數(shù)(Hexadecimal)13十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)00H0000B88H1000B11H0001B99H1001B22H0010B10AH1010B33H0011B11BH1011B44H0100B12CH1100B55H0101B13DH1101B66H0110B14EH1110B77H0111B15FH1111B十進(jìn)制數(shù)、十六進(jìn)制數(shù)、二進(jìn)制數(shù)對(duì)應(yīng)關(guān)系表

十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)00H0142、數(shù)制轉(zhuǎn)換1)二進(jìn)制數(shù)與十六進(jìn)制數(shù)間的轉(zhuǎn)換二進(jìn)制→十六進(jìn)制方法:以小數(shù)點(diǎn)為界分成左側(cè)整數(shù)部分和右側(cè)小數(shù)部分,整數(shù)部分從小數(shù)點(diǎn)開始,向左每4位一組,不足4位在數(shù)的前面補(bǔ)0,小數(shù)部分從小數(shù)點(diǎn)開始,向右每4位一組,不足4位在數(shù)的后面補(bǔ)0,然后每組用十六進(jìn)制數(shù)碼表示,并按序相連即可。[例1-1]把111010.011110B轉(zhuǎn)換為十六進(jìn)制數(shù)。00111010.01111000=3A.783A.78H前面加兩個(gè)零后面加兩個(gè)零練習(xí):11100.01001=?H2、數(shù)制轉(zhuǎn)換00111010.01111000=315

十六進(jìn)制→二進(jìn)制方法:將每位十六進(jìn)制數(shù)分別用4位二進(jìn)制數(shù)碼表示,然后把它們按序連在一起即為對(duì)應(yīng)的二進(jìn)制數(shù)。[例1-2]把2BD4H和20.5H轉(zhuǎn)化為二進(jìn)制數(shù)2BD4H=0010101111010100B20.5H=00100000.0101B練習(xí):86.9H=?B十六進(jìn)制→二進(jìn)制練習(xí):162)二進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換二進(jìn)制→十進(jìn)制方法:將二進(jìn)制數(shù)按權(quán)展開后求和即得到十進(jìn)制數(shù)。[例1-3]把1001.01B轉(zhuǎn)換成十進(jìn)制數(shù)。

1001.01B=1×23+0×22+0×21+1×20+0×2-1+1×2-2

=9.25練習(xí):11010.01B=?2)二進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換1001.01B=1×23+17

十進(jìn)制→二進(jìn)制方法:整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換成二進(jìn)制數(shù)的整數(shù)和小數(shù)。整數(shù)部分轉(zhuǎn)換通常采用“除2取余法”,小數(shù)部分轉(zhuǎn)換通常采用“乘2取整法”。[例1-4]將十進(jìn)制數(shù)47轉(zhuǎn)換為二進(jìn)制數(shù)。2|472|232|112|52|2余數(shù)111101除取余,先有低位,依次到高低位高位則:47=101111B2|10練習(xí):33=?B十進(jìn)制→二進(jìn)制2|472|232|118[例1-5]將十進(jìn)制數(shù)0.8125轉(zhuǎn)換成二進(jìn)制數(shù)。0.8125×21.62500.6250×21.25000.2500×20.5000×21.0000整數(shù)110則:0.8125=0.1101B高位低位1乘取整,先有高位,依次到低練習(xí):0.125=?B[例1-5]將十進(jìn)制數(shù)0.8125轉(zhuǎn)換成二進(jìn)制數(shù)。0.8193)十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換十六進(jìn)制→十進(jìn)制方法:將十六進(jìn)制數(shù)按權(quán)展開后求和即得到十進(jìn)制數(shù)[例1-6]將十六進(jìn)制數(shù)3DF2H轉(zhuǎn)換成十進(jìn)制數(shù)。3DF2H=3×163+13×162+15×161

+2×160

=15858練習(xí):4AB9H=?3)十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換3DF2H=3×163+120十進(jìn)制→十六進(jìn)制方法:整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換成二進(jìn)制數(shù)的整數(shù)和小數(shù)。整數(shù)部分轉(zhuǎn)換通常采用“除16取余法”,小數(shù)部分轉(zhuǎn)換通常采用“乘16取整法”。[例1-7]將十進(jìn)制數(shù)47轉(zhuǎn)換為十六進(jìn)制數(shù)。余數(shù)16|4716|215(FH)低位02高位則47=2FH除取余,先有低位,依次到高練習(xí):50=?H十進(jìn)制→十六進(jìn)制余數(shù)16|4716|2121[例1-8]將十進(jìn)制數(shù)0.48046875轉(zhuǎn)換成十六進(jìn)制數(shù)。整數(shù)0.48046875×167.687500007高位0.68750000×1611.0000000011(BH)低位則0.48046875=0.7BH乘取整,先有高位,依次到低[例1-8]將十進(jìn)制數(shù)0.48046875轉(zhuǎn)換成十六進(jìn)22

十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),可先將其轉(zhuǎn)換為十六進(jìn)制數(shù),再由十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),可以減少許多計(jì)算。如:

47=2FH=101111B十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),可先將其轉(zhuǎn)換為十六231、加法運(yùn)算運(yùn)算規(guī)則:0+0=0,0+1=1+0=1,1+1=10(向高位進(jìn)位)。[例1-9]01101010B

+00111011B三、二進(jìn)制數(shù)運(yùn)算

1B10100101、加法運(yùn)算三、二進(jìn)制數(shù)運(yùn)算1B1010010242、減法運(yùn)算運(yùn)算規(guī)則:0-0=0,1-0=1,1-1=0,0-1=1(向高位借1)。[例1-10]10110101B

-01001101B01101000B2、減法運(yùn)算253、乘法運(yùn)算運(yùn)算規(guī)則:0×0=0,0×1=1×0=0,1×1=1。[例1-11]1010被乘數(shù)

×1001乘數(shù)101000000000

10101011010積3、乘法運(yùn)算264、除法運(yùn)算

除法運(yùn)算是乘法的逆運(yùn)算。與十進(jìn)制數(shù)類似,從被除數(shù)的最高位開始取出與除數(shù)相同的位數(shù),減去除數(shù),夠減商記為1,不夠減商記為0,然后將被除數(shù)的下一位移到余數(shù)上,重復(fù)前面的減除數(shù)操作,直到被除數(shù)的位都下移為止。

[例1-12]

100001商除數(shù)110)11001011被除數(shù)

110001011

110101余數(shù)則11001011B÷110B=100001B,余數(shù)101B。4、除法運(yùn)算27

二進(jìn)制數(shù)的加、減、乘、除運(yùn)算,可以歸納為加、減、移位三種操作。單片機(jī)都有相應(yīng)的操作指令。二進(jìn)制數(shù)邏輯運(yùn)算將在后面的章節(jié)中,結(jié)合單片機(jī)的邏輯運(yùn)算指令講解。

二進(jìn)制數(shù)的加、減、乘、除運(yùn)算,可以歸納為加、減281、無(wú)符號(hào)數(shù)、有符號(hào)數(shù)無(wú)符號(hào)數(shù):8位單片機(jī)中數(shù)是以字節(jié)為單位,即8位二進(jìn)制數(shù)的形式存在,一個(gè)字節(jié)存放數(shù)的范圍為0~255。有符號(hào)數(shù):最高位表示數(shù)的符號(hào),并且規(guī)定0表示“+”,1表示“-”。其余位為數(shù)值位,表示數(shù)的大小。

D7D6D5D4D3D2D1D0四、單片機(jī)中數(shù)的表示符號(hào)位數(shù)值位思考:大于256的數(shù)如何表示?1、無(wú)符號(hào)數(shù)、有符號(hào)數(shù)四、單片機(jī)中數(shù)的表示符號(hào)位數(shù)值位思考29機(jī)器數(shù):數(shù)碼化了的帶符號(hào)位的數(shù)稱為機(jī)器數(shù)。真值:機(jī)器數(shù)所代表的實(shí)際的數(shù)稱為機(jī)器數(shù)的真值。例如:00000001B和10000001B為機(jī)器數(shù),+1和-1分別為它們的真值。機(jī)器數(shù)的表示方法有三種形式:原碼、反碼和補(bǔ)碼。

機(jī)器數(shù):數(shù)碼化了的帶符號(hào)位的數(shù)稱為機(jī)器數(shù)。302.原碼0表示+,用1表示-,數(shù)值位與該數(shù)的絕對(duì)值一致。正數(shù)的原碼與原來(lái)的數(shù)相同,負(fù)數(shù)的原碼符號(hào)位為1,數(shù)值位與對(duì)應(yīng)的正數(shù)數(shù)值位相同。例:[+1]原=00000001B,[-1]原=10000001B,[+0]原=00000000B,[-0]原=10000000B單字節(jié)原碼表示的范圍為:-127~+127。0的原碼有兩種表示方法,+0和-0。思考:雙字節(jié)原碼表示的范圍是多少?2.原碼思考:雙字節(jié)原碼表示的范圍是多少?313.反碼一個(gè)數(shù)的反碼可以由它的原碼求得,正數(shù)的反碼與正數(shù)原碼相同,負(fù)數(shù)的反碼符號(hào)位為1,數(shù)值位為對(duì)應(yīng)原碼的數(shù)值位按位取反。[+1]反=[+1]原=00000001B[-1]反=11111110B[+0]反=[+0]原=00000000B[-0]反=11111111B單字節(jié)反碼表示的范圍為:-127~+127。3.反碼324.補(bǔ)碼數(shù)學(xué)關(guān)系:[X]補(bǔ)=模+X一個(gè)數(shù)的補(bǔ)碼可由該數(shù)的反碼求得。正數(shù)的補(bǔ)碼與正數(shù)的反碼和原碼一致,負(fù)數(shù)的補(bǔ)碼等于該數(shù)的反碼加1。[+1]補(bǔ)=[+1]原=[+1]反=00000001B[-1]補(bǔ)=11111111B[-0]反=11111111B,加1得00000000B。所以:[-0]補(bǔ)=00000000B=[+0]補(bǔ),0的補(bǔ)碼只有一種表示方法。單字節(jié)補(bǔ)碼范圍:-128~127。4.補(bǔ)碼33二進(jìn)制數(shù)原碼反碼補(bǔ)碼00000000+0+0000000001+1+1+100000010+2+2+2…………01111101+125+125+12501111110+126+126+12601111111+127+127+12710000000-0-127-12810000001-1-126-12710000010-2-125-126…………11111101-125-2-311111110-126-1-211111111-127-0-1單字節(jié)二進(jìn)制數(shù)原碼、反碼、補(bǔ)碼對(duì)應(yīng)關(guān)系二進(jìn)制數(shù)原碼反碼補(bǔ)碼0000000034[例1-13]單片機(jī)處理1-2=?的過(guò)程方法一:00000001(+1的補(bǔ)碼)

-00000010(+2的補(bǔ)碼)11111111(-1的補(bǔ)碼)方法二:00000001(+1的補(bǔ)碼)

+11111110(-2的補(bǔ)碼)11111111(-1的補(bǔ)碼)從該例可以看出,對(duì)于加減運(yùn)算,數(shù)據(jù)是補(bǔ)碼表示的,運(yùn)算的結(jié)果也是補(bǔ)碼表示的數(shù)。單片機(jī)(微機(jī)也是一樣的)處理數(shù)據(jù)時(shí),加減法用補(bǔ)碼,乘除法用原碼。[例1-13]單片機(jī)處理1-2=?的過(guò)程35[例1-14]求-5的補(bǔ)碼,再將結(jié)果作為原碼,求其補(bǔ)碼。10000101(-5的原碼)11111010(-5的反碼)11111011(-5的補(bǔ)碼)11111011(原碼)10000100(反碼)10000101(補(bǔ)碼)一次求補(bǔ)二次求補(bǔ)可以看出:對(duì)一個(gè)負(fù)數(shù)進(jìn)行兩次求補(bǔ)過(guò)程,又得到這個(gè)數(shù)本身,正數(shù)的原碼和補(bǔ)碼又是一致的。因此:原碼和補(bǔ)碼是互補(bǔ)的,相互轉(zhuǎn)換的方法和步驟也是一樣的。[例1-14]求-5的補(bǔ)碼,再將結(jié)果作為原碼,求其補(bǔ)碼。一36一、8421BCD碼1、BCD碼(BinaryCodedDecimalCode),用二進(jìn)制數(shù)對(duì)每位的十進(jìn)制數(shù)編碼。最常用的是8421BCD碼,它用4位二進(jìn)制數(shù)對(duì)十進(jìn)制數(shù)的數(shù)碼進(jìn)行編碼,8421分別代表每位的權(quán),用0000B~1001B分別代表十進(jìn)制數(shù)的0~9。十進(jìn)制數(shù)BCD碼十進(jìn)制數(shù)BCD碼十進(jìn)制數(shù)BCD碼000005010110000100001000160110110001000120010701111200010010300118100013000100114010091001······BCD碼常用于數(shù)碼顯示場(chǎng)合比較方便一、8421BCD碼1、BCD碼(BinaryCoded372、BCD碼的加法運(yùn)算8421BCD碼是用4位二進(jìn)制數(shù)表示,4位二進(jìn)制數(shù)是“逢十六進(jìn)一”,而BCD碼高位和低位之間是“逢十進(jìn)一”,單片機(jī)在運(yùn)算是把其作為二進(jìn)制數(shù)處理的,兩個(gè)BCD碼相加時(shí),當(dāng)?shù)?位向高4位進(jìn)位,或高4位向更高位進(jìn)位時(shí),需要對(duì)該4位加6調(diào)整。或者結(jié)果某4位出現(xiàn)非法碼(即1010~1111),對(duì)應(yīng)4位也要加6調(diào)整。[例1-15]BCD碼X=23,Y=49,求X+Y00100011=23

+01001001=4901101100低4位出現(xiàn)非法碼

+011001110010=72。2、BCD碼的加法運(yùn)算[例1-15]BCD碼X=23,Y=38[例1-16]BCD碼X=28,Y=49,求X+Y00101000=28

+01001001=4901110001低4位向高4位進(jìn)位

+011001110111=77

MCS-51系列單片機(jī)有專門的BCD碼加法的調(diào)整指令,沒有BCD碼減法運(yùn)算調(diào)整指令。單片機(jī)中一個(gè)字節(jié)可以存放兩位的BCD碼(也稱為壓縮BCD碼)[例1-16]BCD碼X=28,Y=49,求X+Y39二、ASC-II碼

ASCII碼(AmericanStandardCodeforInformationInterchange,美國(guó)信息交換標(biāo)準(zhǔn)代碼),用于處理字符、控制等信息。ASCII用7位二進(jìn)制數(shù)表示,共有128個(gè)字符,其中包括數(shù)碼0~9,英文字母,標(biāo)點(diǎn)符號(hào)和控制字符。數(shù)碼“0”的編碼為0110000B,即30H,字母A的編碼為1000001B,即41H。ASC-II碼常用于鍵盤編碼二、ASC-II碼ASCII碼(Ame40b7b6b5

0000010100111001011101110000NULDLESP0@P、p0001SOHDC1!1AQaq0010STXDC2"2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l|1101CRGS—=M]m}1110SORS.>N↑n~1111SIUS/?O←oDELb4b3b2b1b7b6b5000001010011100101110141第1章單片機(jī)基礎(chǔ)知識(shí)本章主要內(nèi)容1、單片機(jī)概述2、單片機(jī)中數(shù)的表示方法3、常用編碼第1章單片機(jī)基礎(chǔ)知識(shí)本章主要內(nèi)容1、單片機(jī)概述2、單42一、單片機(jī)的概念

單片機(jī)是近代計(jì)算機(jī)技術(shù)發(fā)展的一個(gè)分支——嵌入式計(jì)算機(jī)系統(tǒng)。它是將計(jì)算機(jī)的主要部件:CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器、輸入/輸出接口電路等集成在一塊大規(guī)模的集成電路中,形成芯片級(jí)的微型計(jì)算機(jī)稱為單片微型計(jì)算機(jī)(SingleChipMicrocomputer)簡(jiǎn)稱單片機(jī)。單片機(jī)自從問世以來(lái),就在控制領(lǐng)域得到廣泛應(yīng)用,特別是近年來(lái),許多功能電路都被集成在單片機(jī)內(nèi)部,如A/D、D/A、PWM、WDT、I2C總線接口等,極大提高了單片機(jī)的測(cè)量和控制能力,我們現(xiàn)在所說(shuō)的單片機(jī)已突破了微型計(jì)算機(jī)(Microcomputer)的傳統(tǒng)內(nèi)容,更準(zhǔn)確的名稱應(yīng)為微控制器(Microcontroller)。

英文簡(jiǎn)寫為:MCU/MPU一、單片機(jī)的概念單片機(jī)是近代計(jì)算機(jī)技術(shù)43單片機(jī)發(fā)展的起步階段最早期的單片機(jī)只有4位,功能簡(jiǎn)單,只能用于簡(jiǎn)單的控制。1974年出現(xiàn)了8位單片機(jī),由美國(guó)仙童公司首先推出典型的產(chǎn)品有Intel公司的MCS—48系列,Zilog公司的Z—8系列,Motorola公司的MC6800等,單片機(jī)的性能有了較大提高,并正式命名為SingleChipMicrocomputer。二、單片機(jī)的發(fā)展概況

單片機(jī)發(fā)展的起步階段二、單片機(jī)的發(fā)展概況44單片機(jī)發(fā)展的成熟階段1979~1982年單片機(jī)發(fā)展進(jìn)入成熟階段,單片機(jī)內(nèi)部的體系結(jié)構(gòu)得到進(jìn)一步完善,面向?qū)ο蟆⑼怀隽丝刂乒δ埽瑢ぶ返目臻g范圍擴(kuò)大,規(guī)范了數(shù)據(jù)線、地址線的總線結(jié)構(gòu),有了多功能的異步串行接口UART,設(shè)置位地址空間,提供位尋址和位操作和大量的控制轉(zhuǎn)移指令等。形成了單片機(jī)標(biāo)準(zhǔn)結(jié)構(gòu)。這時(shí)期最典型的產(chǎn)品就是Intel公司的MCS—51系列單片機(jī)。單片機(jī)發(fā)展的成熟階段45微控制器形成階段1982~1990年單片機(jī)完成向微控制器的轉(zhuǎn)換,為進(jìn)一步滿足測(cè)控要求,將許多測(cè)控對(duì)象的接口電路集成到單片機(jī)內(nèi)部,如A/D、D/A、PWM、DMA等。形成了不同于SingleChipMicrocomputer特點(diǎn)的微控制器——MCU。微控制器形成階段46微控制器百花齊放進(jìn)入20世紀(jì)90年代,隨著半導(dǎo)體集成電路技術(shù)微電子技術(shù)的發(fā)展,以及電氣制造商和半導(dǎo)體廠商的廣泛參與,微控制器進(jìn)入百花齊放的發(fā)展時(shí)期。微控制器百花齊放47小巧靈活、成本低,易于產(chǎn)品化,有優(yōu)異的性能價(jià)格比。集成度高,有很高的可靠性,能在惡劣的環(huán)境下工作。控制功能強(qiáng),面向?qū)ο蟛僮髦噶睿梢灾苯訉?duì)功能部件操作,易于實(shí)現(xiàn)從簡(jiǎn)單到復(fù)雜的各類控制任務(wù)。低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。三、單片機(jī)的特點(diǎn)小巧靈活、成本低,易于產(chǎn)品化,有優(yōu)異的性能價(jià)格比。三、單片48工業(yè)自動(dòng)化控制辦公自動(dòng)化設(shè)備智能儀器儀表家用電器醫(yī)療儀器設(shè)備通信產(chǎn)品航空航天等單片機(jī)應(yīng)用已經(jīng)深入到人類生活的各個(gè)領(lǐng)域。四、單片機(jī)的應(yīng)用領(lǐng)域工業(yè)自動(dòng)化控制四、單片機(jī)的應(yīng)用領(lǐng)域49五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)程序編寫、編譯程序下載(編程)通電運(yùn)行觀察硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編寫程序編譯目標(biāo)文件仿真編程器芯片內(nèi)部(1)(2)(3)(4)五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編50五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)程序編寫、編譯程序下載(編程)通電運(yùn)行觀察硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編寫程序編譯目標(biāo)文件仿真編程器芯片內(nèi)部(1)(2)(3)(4)五、單片機(jī)應(yīng)用的環(huán)節(jié)硬件電路設(shè)計(jì)硬件設(shè)計(jì)軟件設(shè)計(jì)編程環(huán)境編51位:就是一位的二進(jìn)制數(shù),其只能存放“1”或“0”,可以用來(lái)表示兩種不同狀態(tài)信息,如開關(guān)的“通”和“斷”,電平的“高”和“低”等。字節(jié):8位二進(jìn)制數(shù)組成一個(gè)字節(jié),既可以表示實(shí)際的數(shù),也可以表示多個(gè)狀態(tài)的組合信息。8位單片機(jī)中數(shù)是以字節(jié)為基本單位。字:兩個(gè)字節(jié)組成一個(gè)字,也即16位的二進(jìn)制數(shù)。一、位、字節(jié)、字的概念

位:就是一位的二進(jìn)制數(shù),其只能存放“1”或“0”,可以用來(lái)表521、數(shù)制

1)十進(jìn)制數(shù)(Decimal)

特點(diǎn):基數(shù)為10,由0、1、2、3、4、5、6、7、8、9十個(gè)數(shù)碼構(gòu)成。進(jìn)位規(guī)則是“逢十進(jìn)一”。二、數(shù)制與數(shù)制轉(zhuǎn)換

2)二進(jìn)制數(shù)(Binary)

特點(diǎn):基數(shù)為2,由0和1兩個(gè)數(shù)碼構(gòu)成。進(jìn)位規(guī)則是“逢二進(jìn)一”。1、數(shù)制二、數(shù)制與數(shù)制轉(zhuǎn)換2)二進(jìn)制數(shù)(Binary)533)十六進(jìn)制數(shù)(Hexadecimal)特點(diǎn):基數(shù)為16,由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六個(gè)數(shù)碼構(gòu)成,其中A、B、C、D、E、F分別表示10、11、12、13、14、15進(jìn)位規(guī)則是“逢十六進(jìn)一”。在單片機(jī)編程應(yīng)用中,可以用上面的任一種數(shù)制來(lái)表示數(shù),但要在數(shù)的后面加表示數(shù)制的符號(hào),二進(jìn)制數(shù)為“B”,十六進(jìn)制數(shù)為“H”,十進(jìn)制數(shù)為“D”,十進(jìn)制數(shù)的符號(hào)“D”可以省略。十六進(jìn)制數(shù)本質(zhì)上就是二進(jìn)制數(shù),4位二進(jìn)制數(shù)構(gòu)成1位十六進(jìn)制數(shù)。實(shí)際應(yīng)用中一般用十六進(jìn)制數(shù)。注:存儲(chǔ)器的地址一般都采用16進(jìn)制數(shù)來(lái)表達(dá)比較方便3)十六進(jìn)制數(shù)(Hexadecimal)54十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)00H0000B88H1000B11H0001B99H1001B22H0010B10AH1010B33H0011B11BH1011B44H0100B12CH1100B55H0101B13DH1101B66H0110B14EH1110B77H0111B15FH1111B十進(jìn)制數(shù)、十六進(jìn)制數(shù)、二進(jìn)制數(shù)對(duì)應(yīng)關(guān)系表

十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)00H0552、數(shù)制轉(zhuǎn)換1)二進(jìn)制數(shù)與十六進(jìn)制數(shù)間的轉(zhuǎn)換二進(jìn)制→十六進(jìn)制方法:以小數(shù)點(diǎn)為界分成左側(cè)整數(shù)部分和右側(cè)小數(shù)部分,整數(shù)部分從小數(shù)點(diǎn)開始,向左每4位一組,不足4位在數(shù)的前面補(bǔ)0,小數(shù)部分從小數(shù)點(diǎn)開始,向右每4位一組,不足4位在數(shù)的后面補(bǔ)0,然后每組用十六進(jìn)制數(shù)碼表示,并按序相連即可。[例1-1]把111010.011110B轉(zhuǎn)換為十六進(jìn)制數(shù)。00111010.01111000=3A.783A.78H前面加兩個(gè)零后面加兩個(gè)零練習(xí):11100.01001=?H2、數(shù)制轉(zhuǎn)換00111010.01111000=356

十六進(jìn)制→二進(jìn)制方法:將每位十六進(jìn)制數(shù)分別用4位二進(jìn)制數(shù)碼表示,然后把它們按序連在一起即為對(duì)應(yīng)的二進(jìn)制數(shù)。[例1-2]把2BD4H和20.5H轉(zhuǎn)化為二進(jìn)制數(shù)2BD4H=0010101111010100B20.5H=00100000.0101B練習(xí):86.9H=?B十六進(jìn)制→二進(jìn)制練習(xí):572)二進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換二進(jìn)制→十進(jìn)制方法:將二進(jìn)制數(shù)按權(quán)展開后求和即得到十進(jìn)制數(shù)。[例1-3]把1001.01B轉(zhuǎn)換成十進(jìn)制數(shù)。

1001.01B=1×23+0×22+0×21+1×20+0×2-1+1×2-2

=9.25練習(xí):11010.01B=?2)二進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換1001.01B=1×23+58

十進(jìn)制→二進(jìn)制方法:整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換成二進(jìn)制數(shù)的整數(shù)和小數(shù)。整數(shù)部分轉(zhuǎn)換通常采用“除2取余法”,小數(shù)部分轉(zhuǎn)換通常采用“乘2取整法”。[例1-4]將十進(jìn)制數(shù)47轉(zhuǎn)換為二進(jìn)制數(shù)。2|472|232|112|52|2余數(shù)111101除取余,先有低位,依次到高低位高位則:47=101111B2|10練習(xí):33=?B十進(jìn)制→二進(jìn)制2|472|232|159[例1-5]將十進(jìn)制數(shù)0.8125轉(zhuǎn)換成二進(jìn)制數(shù)。0.8125×21.62500.6250×21.25000.2500×20.5000×21.0000整數(shù)110則:0.8125=0.1101B高位低位1乘取整,先有高位,依次到低練習(xí):0.125=?B[例1-5]將十進(jìn)制數(shù)0.8125轉(zhuǎn)換成二進(jìn)制數(shù)。0.8603)十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換十六進(jìn)制→十進(jìn)制方法:將十六進(jìn)制數(shù)按權(quán)展開后求和即得到十進(jìn)制數(shù)[例1-6]將十六進(jìn)制數(shù)3DF2H轉(zhuǎn)換成十進(jìn)制數(shù)。3DF2H=3×163+13×162+15×161

+2×160

=15858練習(xí):4AB9H=?3)十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換3DF2H=3×163+161十進(jìn)制→十六進(jìn)制方法:整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換成二進(jìn)制數(shù)的整數(shù)和小數(shù)。整數(shù)部分轉(zhuǎn)換通常采用“除16取余法”,小數(shù)部分轉(zhuǎn)換通常采用“乘16取整法”。[例1-7]將十進(jìn)制數(shù)47轉(zhuǎn)換為十六進(jìn)制數(shù)。余數(shù)16|4716|215(FH)低位02高位則47=2FH除取余,先有低位,依次到高練習(xí):50=?H十進(jìn)制→十六進(jìn)制余數(shù)16|4716|2162[例1-8]將十進(jìn)制數(shù)0.48046875轉(zhuǎn)換成十六進(jìn)制數(shù)。整數(shù)0.48046875×167.687500007高位0.68750000×1611.0000000011(BH)低位則0.48046875=0.7BH乘取整,先有高位,依次到低[例1-8]將十進(jìn)制數(shù)0.48046875轉(zhuǎn)換成十六進(jìn)63

十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),可先將其轉(zhuǎn)換為十六進(jìn)制數(shù),再由十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),可以減少許多計(jì)算。如:

47=2FH=101111B十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),可先將其轉(zhuǎn)換為十六641、加法運(yùn)算運(yùn)算規(guī)則:0+0=0,0+1=1+0=1,1+1=10(向高位進(jìn)位)。[例1-9]01101010B

+00111011B三、二進(jìn)制數(shù)運(yùn)算

1B10100101、加法運(yùn)算三、二進(jìn)制數(shù)運(yùn)算1B1010010652、減法運(yùn)算運(yùn)算規(guī)則:0-0=0,1-0=1,1-1=0,0-1=1(向高位借1)。[例1-10]10110101B

-01001101B01101000B2、減法運(yùn)算663、乘法運(yùn)算運(yùn)算規(guī)則:0×0=0,0×1=1×0=0,1×1=1。[例1-11]1010被乘數(shù)

×1001乘數(shù)101000000000

10101011010積3、乘法運(yùn)算674、除法運(yùn)算

除法運(yùn)算是乘法的逆運(yùn)算。與十進(jìn)制數(shù)類似,從被除數(shù)的最高位開始取出與除數(shù)相同的位數(shù),減去除數(shù),夠減商記為1,不夠減商記為0,然后將被除數(shù)的下一位移到余數(shù)上,重復(fù)前面的減除數(shù)操作,直到被除數(shù)的位都下移為止。

[例1-12]

100001商除數(shù)110)11001011被除數(shù)

110001011

110101余數(shù)則11001011B÷110B=100001B,余數(shù)101B。4、除法運(yùn)算68

二進(jìn)制數(shù)的加、減、乘、除運(yùn)算,可以歸納為加、減、移位三種操作。單片機(jī)都有相應(yīng)的操作指令。二進(jìn)制數(shù)邏輯運(yùn)算將在后面的章節(jié)中,結(jié)合單片機(jī)的邏輯運(yùn)算指令講解。

二進(jìn)制數(shù)的加、減、乘、除運(yùn)算,可以歸納為加、減691、無(wú)符號(hào)數(shù)、有符號(hào)數(shù)無(wú)符號(hào)數(shù):8位單片機(jī)中數(shù)是以字節(jié)為單位,即8位二進(jìn)制數(shù)的形式存在,一個(gè)字節(jié)存放數(shù)的范圍為0~255。有符號(hào)數(shù):最高位表示數(shù)的符號(hào),并且規(guī)定0表示“+”,1表示“-”。其余位為數(shù)值位,表示數(shù)的大小。

D7D6D5D4D3D2D1D0四、單片機(jī)中數(shù)的表示符號(hào)位數(shù)值位思考:大于256的數(shù)如何表示?1、無(wú)符號(hào)數(shù)、有符號(hào)數(shù)四、單片機(jī)中數(shù)的表示符號(hào)位數(shù)值位思考70機(jī)器數(shù):數(shù)碼化了的帶符號(hào)位的數(shù)稱為機(jī)器數(shù)。真值:機(jī)器數(shù)所代表的實(shí)際的數(shù)稱為機(jī)器數(shù)的真值。例如:00000001B和10000001B為機(jī)器數(shù),+1和-1分別為它們的真值。機(jī)器數(shù)的表示方法有三種形式:原碼、反碼和補(bǔ)碼。

機(jī)器數(shù):數(shù)碼化了的帶符號(hào)位的數(shù)稱為機(jī)器數(shù)。712.原碼0表示+,用1表示-,數(shù)值位與該數(shù)的絕對(duì)值一致。正數(shù)的原碼與原來(lái)的數(shù)相同,負(fù)數(shù)的原碼符號(hào)位為1,數(shù)值位與對(duì)應(yīng)的正數(shù)數(shù)值位相同。例:[+1]原=00000001B,[-1]原=10000001B,[+0]原=00000000B,[-0]原=10000000B單字節(jié)原碼表示的范圍為:-127~+127。0的原碼有兩種表示方法,+0和-0。思考:雙字節(jié)原碼表示的范圍是多少?2.原碼思考:雙字節(jié)原碼表示的范圍是多少?723.反碼一個(gè)數(shù)的反碼可以由它的原碼求得,正數(shù)的反碼與正數(shù)原碼相同,負(fù)數(shù)的反碼符號(hào)位為1,數(shù)值位為對(duì)應(yīng)原碼的數(shù)值位按位取反。[+1]反=[+1]原=00000001B[-1]反=11111110B[+0]反=[+0]原=00000000B[-0]反=11111111B單字節(jié)反碼表示的范圍為:-127~+127。3.反碼734.補(bǔ)碼數(shù)學(xué)關(guān)系:[X]補(bǔ)=模+X一個(gè)數(shù)的補(bǔ)碼可由該數(shù)的反碼求得。正數(shù)的補(bǔ)碼與正數(shù)的反碼和原碼一致,負(fù)數(shù)的補(bǔ)碼等于該數(shù)的反碼加1。[+1]補(bǔ)=[+1]原=[+1]反=00000001B[-1]補(bǔ)=11111111B[-0]反=11111111B,加1得00000000B。所以:[-0]補(bǔ)=00000000B=[+0]補(bǔ),0的補(bǔ)碼只有一種表示方法。單字節(jié)補(bǔ)碼范圍:-128~127。4.補(bǔ)碼74二進(jìn)制數(shù)原碼反碼補(bǔ)碼00000000+0+0000000001+1+1+100000010+2+2+2…………01111101+125+125+12501111110+126+126+12601111111+127+127+12710000000-0-127-12810000001-1-126-12710000010-2-125-126…………11111101-125-2-311111110-126-1-211111111-127-0-1單字節(jié)二進(jìn)制數(shù)原碼、反碼、補(bǔ)碼對(duì)應(yīng)關(guān)系二進(jìn)制數(shù)原碼反碼補(bǔ)碼0000000075[例1-13]單片機(jī)處理1-2=?的過(guò)程方法一:00000001(+1的補(bǔ)碼)

-00000010(+2的補(bǔ)碼)11111111(-1的補(bǔ)碼)方法二:00000001(+1的補(bǔ)碼)

+11111110(-2的補(bǔ)碼)11111111(-1的補(bǔ)碼)從該例可以看出,對(duì)于加減運(yùn)算,數(shù)據(jù)是補(bǔ)碼表示的,運(yùn)算的結(jié)果也是補(bǔ)碼表示的數(shù)。單片機(jī)(微機(jī)也是一樣的)處理數(shù)據(jù)時(shí),加減法用補(bǔ)碼,乘除法用原碼。[例1-13]單片機(jī)處理1-2=?的過(guò)程76[例1-14]求-5的補(bǔ)碼,再將結(jié)果作為原碼,求其補(bǔ)碼。10000101(-5的原碼)11111010(-5的反碼)11111011(-5的補(bǔ)碼)11111011(原

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論