教學(xué)課件-單片機(jī)應(yīng)用技術(shù)(C語言版課件)_第1頁
教學(xué)課件-單片機(jī)應(yīng)用技術(shù)(C語言版課件)_第2頁
教學(xué)課件-單片機(jī)應(yīng)用技術(shù)(C語言版課件)_第3頁
教學(xué)課件-單片機(jī)應(yīng)用技術(shù)(C語言版課件)_第4頁
教學(xué)課件-單片機(jī)應(yīng)用技術(shù)(C語言版課件)_第5頁
已閱讀5頁,還剩756頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

新世紀(jì)高職高專

電氣自動化技術(shù)類課程規(guī)劃教材單片機(jī)應(yīng)用技術(shù)

(C語言版)

本電子課件是與《單片機(jī)應(yīng)用技術(shù)》教材相配套的教學(xué)資源之一。為了使用者選取方便,課件制作時(shí)均是由任課教師按授課時(shí)的講課過程進(jìn)行制作的。課件中提供了教學(xué)用的所有圖表和大量講解用的文字。為了兼顧教學(xué)效率和教學(xué)效果,建議采用電子課件教學(xué)時(shí),應(yīng)注意圖表在PPT上顯示,講解用的文字不在PPT上顯示,使用者可根據(jù)教學(xué)需要進(jìn)行修改。

提供電子課件是為了提高教學(xué)效率,但是決不應(yīng)該以課件代替教師的備課過程。課程教學(xué)效果的實(shí)現(xiàn)主要依賴于任課教師的獨(dú)特的教學(xué)設(shè)計(jì),教學(xué)從本質(zhì)上是教師與學(xué)生的互動,是感情與感情的交流,是思想與思想的碰撞,是心靈與心靈的溝通!

在此,希望本課件能夠?yàn)槟慕虒W(xué)目的的實(shí)現(xiàn)起到一定的推波助瀾的作用!

使用說明目錄任務(wù)1開關(guān)控制指示燈任務(wù)2彩燈循環(huán)控制器設(shè)計(jì)1任務(wù)3彩燈循環(huán)控制器設(shè)計(jì)2任務(wù)4交通信號燈控制任務(wù)5兩臺單片機(jī)之間互傳數(shù)據(jù)任務(wù)68155擴(kuò)展鍵盤與顯示器任務(wù)7波形發(fā)生器及數(shù)據(jù)采集任務(wù)8單片機(jī)控制系統(tǒng)的典型實(shí)例任務(wù)9溫度報(bào)警器的設(shè)計(jì)與制作*任務(wù)1開關(guān)控制指示燈1.1工作任務(wù)1.1.1硬件電路及工作原理1.1.2控制程序1.1.3單片機(jī)的開發(fā)系統(tǒng)

1.1.4任務(wù)分析與總結(jié)

1.2相關(guān)知識鏈接1.2.1計(jì)算機(jī)概述1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域1.2.3MCS-51系列單片機(jī)結(jié)構(gòu)和引腳功能1.2.4MCS-51內(nèi)部存儲器

1.2.5MCS-51系列單片機(jī)的I/O口結(jié)構(gòu)與操作1.2.6MCS-51系列單片機(jī)的時(shí)序和復(fù)位電路

1.2.7數(shù)制與編碼

*1.1工作任務(wù)任務(wù)名稱開關(guān)控制指示燈任務(wù)目標(biāo)了解MCS—51系列單片機(jī)的基本結(jié)構(gòu)和特征、應(yīng)用特點(diǎn)、CPU的組成、4個(gè)8位I/O端口的各自功能和應(yīng)用特點(diǎn)及外部引腳功能;理解單片機(jī)系統(tǒng)的工作過程及CPU時(shí)序特點(diǎn);熟悉MCS—51系列單片機(jī)的存儲器結(jié)構(gòu)、片內(nèi)數(shù)據(jù)存儲器的功能區(qū)劃分、常用的特殊功能寄存器(SFR)的功能和應(yīng)用特點(diǎn)、機(jī)器周期的概念以及機(jī)器周期與指令周期之間的關(guān)系等;掌握8051單片機(jī)具有的硬件資源及部分硬件資源的使用、各控制引腳的功能和應(yīng)用特點(diǎn);學(xué)會單片機(jī)開發(fā)系統(tǒng)的使用。

任務(wù)描述通過開關(guān)S1~S4控制四個(gè)D1~D4發(fā)光二極管,開關(guān)合上對應(yīng)的信號指示燈亮任務(wù)載體計(jì)算機(jī)、單片機(jī)仿真器、實(shí)驗(yàn)箱或?qū)嶒?yàn)開發(fā)板相關(guān)知識單片機(jī)硬件系統(tǒng)、開發(fā)系統(tǒng)、數(shù)制與編碼表1-1開關(guān)控制指示燈的工作任務(wù)要點(diǎn)

*1.1.1硬件電路及工作原理

1.硬件電路電路為8051單片機(jī)與開關(guān)、LED發(fā)光二極管的接口電路。*1.1.1硬件電路及工作原理

2.工作原理P1口的P1.4~P1.7作為數(shù)據(jù)輸入口,接到輸入開關(guān)S1~S4;P1.0~P1.3作為輸出口,接發(fā)光二極管D1~D4

。*1.1.1硬件電路及工作原理

2.工作原理當(dāng)開關(guān)按下,對應(yīng)的輸入位電平由“0”變?yōu)椤?”,通過編寫程序可以控制當(dāng)開關(guān)S1~S4按下時(shí)對應(yīng)的指示燈D1~D4亮。*1.1.1硬件電路及工作原理

2.工作原理四個(gè)二極管接成共陰極,當(dāng)S1按下時(shí),只要將P1.4的狀態(tài)送給P1.0,則P1.0輸出邏輯“1”點(diǎn)亮發(fā)光二極管D1,反之輸出“0”時(shí)發(fā)光二極管熄滅。*1.1.2控制程序

參考源程序如下:#include<reg51.h>//包含51單片機(jī)的寄存器符號定義的頭文件reg51.h#defineuintunsignedintsbitD1=P1^0;//定義位變量

sbitD2=P1^1;sbitD3=P1^2;sbitD4=P1^3;sbitS1=P1^4;sbitS2=P1^5;sbitS3=P1^6;sbitS4=P1^7;

voidDelay(uintx)//延時(shí)程序

{uchari;//定義循環(huán)變量

while(x--)for(i=0;i<120;i++);}*1.1.2控制程序

//主程序voidmain(void){P1=0xf0;//使P1.4~P1.7置為輸入口

while(1){D1=S1;//取開關(guān)狀態(tài),開關(guān)按下對應(yīng)的燈點(diǎn)亮

D2=S2;D3=S3;D4=S4;Delay(10);}}*單片機(jī)系統(tǒng)的工作過程實(shí)質(zhì)上即是執(zhí)行用戶程序的過程,程序編譯成功后就可以執(zhí)行程序?qū)崿F(xiàn)預(yù)期控制目標(biāo)。在硬件電路不變的情況下,用戶可以根據(jù)任務(wù)要求編寫出不同的控制程序。如圖1-1,可以用4個(gè)開關(guān)的不同組合控制4個(gè)二極管的不同亮滅形式。

1.1.2控制程序

試編程實(shí)現(xiàn):每次按下K1時(shí)遞增點(diǎn)亮一只LED,全亮?xí)r再次按下則再次循環(huán)開始,K2按下后點(diǎn)亮上面2只LED,K3按下后點(diǎn)亮下面2只LED,K4按下后關(guān)閉所有LED。

*1.1.3單片機(jī)開發(fā)系統(tǒng)

單片機(jī)開發(fā)系統(tǒng)的基本組成圖圖1-2單片機(jī)開發(fā)系統(tǒng)的基本組成作用:完成程序的編寫、編譯、軟件和硬件的調(diào)試等。*1.KeilC51軟件的使用1.1.3單片機(jī)開發(fā)系統(tǒng)

使用C語言能獲得極高的程序編寫效率,縮短工程開發(fā)周期。但是C語言是面向過程的高級語言,它對硬件透明,而硬件只能執(zhí)行機(jī)器碼,為此,需要將C語言所描述的對象語句轉(zhuǎn)換成機(jī)器碼。首先C語言要轉(zhuǎn)換成模塊文件,通過連接器與其他模塊文件連接之后,編譯成與硬件對應(yīng)的匯編語言,再通過匯編編譯器轉(zhuǎn)換成對應(yīng)的機(jī)器碼,被CPU執(zhí)行。*完成C語言到機(jī)器碼轉(zhuǎn)換需要使用編譯器自動完成,KeilC51μVision3是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS—51核的芯片,它集源程序編輯、編譯、仿真等于一體,同時(shí)還支持PLM、匯編和C語言的程序輸入。1.1.3單片機(jī)開發(fā)系統(tǒng)

1.KeilC51軟件的使用*(1)新建一個(gè)工程啟動μVision3仿真軟件,進(jìn)入圖1-3所示界面。點(diǎn)擊菜單欄中的【文件】菜單中的【新建項(xiàng)目】,在彈出的窗口中寫好項(xiàng)目名:Task1,并選擇好保存路徑。圖1-3μVision3環(huán)境窗口1.KeilC51軟件的使用*(1)新建一個(gè)工程同時(shí)自動彈出如圖1-4所示的設(shè)備選擇窗口,選取CPU的類型,如廠家Atmel中的AT89C51。

圖1-4設(shè)備選擇對話框

1.KeilC51軟件的使用*(2)新建源文件在【文件】菜單中選擇【新建文件】任務(wù),新建一個(gè)源文件。在源文件中輸入任務(wù)1的程序,保存文件為“Task1.c”,其中的“.c”為文件的擴(kuò)展名,若為匯編語言源程序,擴(kuò)展名為“.asm”。也可以打開一個(gè)已經(jīng)存在的C語言源程序文件。

(3) 對工程Task1進(jìn)行設(shè)置點(diǎn)擊“目標(biāo)1”前的“+”,在展開的內(nèi)容“源代碼組1”上右擊,出現(xiàn)如圖1-5所示的菜單。①添加文件到目標(biāo)組1.KeilC51軟件的使用*圖1-5將文件添加到目標(biāo)組中11.KeilC51軟件的使用*圖1-6選擇要添加的文件選擇“增加文件到組‘源代碼組1’”項(xiàng),在彈出如圖1-6所示的對話框,選擇要填加的文件如“Task1.c”到目標(biāo)組中。

1.KeilC51軟件的使用*(3) 對工程Task1進(jìn)行設(shè)置用右鍵單擊“目標(biāo)1”或單擊圖標(biāo),獲取目標(biāo)1的選項(xiàng)對話框,如圖1-7所示,目標(biāo)選項(xiàng)設(shè)置包括了設(shè)備、項(xiàng)目、輸出等11項(xiàng)選項(xiàng)卡。在“項(xiàng)目”選項(xiàng)卡里AT89C51單片機(jī)默認(rèn)的時(shí)鐘頻率為24MHz,由圖1-1可知,此處設(shè)置成6MHz。若使用片內(nèi)ROM,則要選中圖中的使用片內(nèi)ROM,其余保留默認(rèn)設(shè)置。

②目標(biāo)選項(xiàng)

1.KeilC51軟件的使用*圖1-7設(shè)置“目標(biāo)”選項(xiàng)卡1.KeilC51軟件的使用*選中“輸出”選項(xiàng)卡,如圖1-8所示,選擇“產(chǎn)生HEX文件”選項(xiàng),這樣才會產(chǎn)生十六進(jìn)制文件。圖1-8設(shè)置“輸出”選項(xiàng)卡1.KeilC51軟件的使用*①編譯程序

(4)編譯、仿真調(diào)試運(yùn)行程序“0個(gè)錯誤,0個(gè)警告”表示編譯連接成功,可以對程序進(jìn)行仿真和調(diào)試了。

1.KeilC51軟件的使用圖1-9程序的編譯與連接單擊按鈕即可進(jìn)行編譯與連接,編譯與連接過程如圖1-9所示。*①編譯程序

(4)編譯、仿真調(diào)試運(yùn)行程序1.KeilC51軟件的使用圖1-9程序的編譯與連接編譯當(dāng)前文件,即只編譯被激活窗口中的源程序。創(chuàng)建目標(biāo),即只編譯和連接在項(xiàng)目窗口中修改過的源程序,再和已被編譯過的文件進(jìn)行連接處理,用于多種源程序的情況。

重建所有目標(biāo)文件,即編譯和連接項(xiàng)目里登錄的所有源程序文件。*②仿真調(diào)試

(4)編譯、仿真調(diào)試運(yùn)行程序1.KeilC51軟件的使用圖1-10任務(wù)1仿真結(jié)果單擊按鈕圖標(biāo)即可仿真運(yùn)行程序。程序完成的是任務(wù)1中的用P1口的低4四的開頭狀態(tài)控制其高4位的二極管的亮滅。點(diǎn)擊菜單欄中的【外圍設(shè)備】下的“I/O-Ports”中的Port1,即打開P1口,如圖1-10所示。當(dāng)模擬P1.5和P1.6的開關(guān)被按下,則P1.2和P1.1輸出口為“1”,對應(yīng)的硬件電路中的二極管點(diǎn)亮。

*2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)仿真實(shí)驗(yàn)系統(tǒng)組成由仿真器、實(shí)驗(yàn)箱、偉福仿真軟件和開關(guān)電源構(gòu)成。(1)特點(diǎn)

①主機(jī)+仿真頭的組合;

②雙平臺:操作系統(tǒng)具有DOS版本和WINDOWS版本;

③雙工作模式:即軟件模擬仿真(不需要仿真器也能模擬仿真)和硬件仿真;④雙CPU結(jié)構(gòu),100%不占用戶資源;⑤雙集成環(huán)境:編輯、編譯、下載、調(diào)試全部集中在一個(gè)環(huán)境下;

⑥強(qiáng)大的邏輯分析儀綜合調(diào)試功能;⑦強(qiáng)大的追蹤器功能。1.1.3單片機(jī)開發(fā)系統(tǒng)

*2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)(2)實(shí)驗(yàn)箱8段數(shù)碼管鍵盤

8×8LED點(diǎn)陣液晶顯示屏

開關(guān)組

仿真板直流電機(jī)步進(jìn)電機(jī)擴(kuò)展總線模擬給定電源

晶體震蕩源

壓力傳感器

指示燈*(3)開發(fā)環(huán)境的使用①建立新文件啟動偉福集成調(diào)試軟件WAVE6000,進(jìn)入集成環(huán)境界面進(jìn)入集成環(huán)境界面,如圖1-12所示

,選擇菜單【文件|新建文件】功能,或單擊快捷工具欄中的“新建文件”按鈕,出現(xiàn)一個(gè)文件名為“NONAME1”的源程序窗口,在此窗口中輸入1.1.2節(jié)的控制程序。2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)*(3)開發(fā)環(huán)境的使用

單擊快捷工具欄中的“保存文件”按鈕,在彈出的“保存文件”對話框中選擇保存源文件的文件夾,如圖1-13所示,并給出文件名“TASK1.C”,單擊【保存】按鈕保存文件。文件保存后,源程序窗口上文件名變成了“TASK1.C”。

2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)*選擇菜單【文件|新建項(xiàng)目】功能:加入模塊文件(3)開發(fā)環(huán)境的使用②新建一個(gè)WAVE項(xiàng)目文件,加入剛才所建的.C文件

2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)在“加入模塊文件”對話框中選擇剛才保存的文件“TASK1.C”,單擊【打開】按鈕,如圖1-14所示。*加入包含文件(3)開發(fā)環(huán)境的使用②新建一個(gè)WAVE項(xiàng)目文件,加入剛才所建的.C文件

2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)在“加入包含文件”對話框中,選擇所要加入的包含文件(可多選)。包含文件通常用于多模塊或高級語言編程中,若沒有包含文件單擊【取消】按鈕,如圖1-15所示。

*保存項(xiàng)目(3)開發(fā)環(huán)境的使用②新建一個(gè)WAVE項(xiàng)目文件,加入剛才所建的.C文件

2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)在“保存項(xiàng)目”對話框中輸入項(xiàng)目名“TASK1”,無須加后綴。軟件會自動將后綴設(shè)成“.PRJ”。單擊【保存】按鈕,將項(xiàng)目保存在與源程序相同的文件夾下,如圖1-16所示。

*(3)開發(fā)環(huán)境的使用③設(shè)置仿真器2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)單擊快捷工具欄中的“仿真器設(shè)置”按鈕或雙擊項(xiàng)目窗口的第一行來打開“仿真器設(shè)置”對話框,如圖1-17所示。對仿真器和仿真語言進(jìn)行設(shè)置。(a)仿真器設(shè)置(b)仿真語言設(shè)置*(3)開發(fā)環(huán)境的使用④編譯程序2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)單擊快捷工具欄中的“編譯”按鈕或F9鍵,編譯項(xiàng)目。在編譯過程中,如果有錯可以在信息窗口中顯示出來,雙擊錯誤信息,可以在源程序中定位錯誤所在行。糾正錯誤后,再繼續(xù)編譯直到?jīng)]有錯誤。在編譯之前,軟件會自動將項(xiàng)目和程序存盤,如圖1-18所示。圖1-18編譯程序*(3)開發(fā)環(huán)境的使用④調(diào)試程序2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)在編譯沒有錯誤后調(diào)試程序。調(diào)試程序分為全速執(zhí)行、單步、跟蹤、執(zhí)行到光標(biāo)處等方式運(yùn)行程序。由于條件編譯或高級語言優(yōu)化的原因,不是所有的源程序都能產(chǎn)生機(jī)器指令。源程序窗口最左邊的代表此行為有效程序,此行產(chǎn)生了可以執(zhí)行的機(jī)器指令,如圖1-19所示。*④調(diào)試程序仿真結(jié)果:將P1口的高四位的輸入狀態(tài)送給低四位輸出,控制發(fā)光二極管的亮、滅顯示。通過軟件模擬仿真方式可以看到P1口的位狀態(tài)的變化。*(3)開發(fā)環(huán)境的使用⑤硬件仿真2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)如圖1-2所示,先將仿真器通過串行電纜連接到計(jì)算機(jī)上,再將仿真頭接到仿真器,檢查接線是否有誤,確認(rèn)無誤后,接上電源,打開仿真器和實(shí)驗(yàn)箱的電源開關(guān)。參見第(4)步“設(shè)置仿真器”,打開“仿真器設(shè)置”對話框,在“通信設(shè)置”選項(xiàng)卡的下方有“使用偉福軟件模擬器”的選擇項(xiàng),將其前面復(fù)選框內(nèi)的鉤去掉,選擇正確的串行口,單擊【好】按鈕確認(rèn)。如果仿真器和仿真頭設(shè)置正確,并且硬件連接沒有錯誤,就會出現(xiàn)“硬件仿真”對話框,并顯示仿真器、仿真頭的型號及仿真器的序列號,表明仿真器初始化正確。*(3)開發(fā)環(huán)境的使用⑤硬件仿真2.偉福單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)如果仿真器初始化過程中有誤,軟件就會再次出現(xiàn)“硬件仿真”對話框,如圖1-20所示,這時(shí)應(yīng)檢查仿真器、仿真頭的選擇是否有誤,硬件接線是否有誤,各電源是否打開等,檢查糾正錯誤后,再次確認(rèn),直至仿真器初始化正確。圖1-20仿真器初始化有誤*1.任務(wù)分析為了實(shí)現(xiàn)開關(guān)控制指示燈功能,首先要有硬件電路,由圖1-1可知,本任務(wù)的硬件電路由一個(gè)8051單片機(jī)、輸入電路(開關(guān)等)、輸出電路(發(fā)光二極管等)、晶振電路和復(fù)位電路組成。其中的核心器件是8051單片機(jī),當(dāng)向單片機(jī)里面輸入了程序后,在控制程序、單片機(jī)內(nèi)部電路及外部電路的協(xié)作下,單片機(jī)控制系統(tǒng)可以完成人們預(yù)期的功能和任務(wù)。1.1.4任務(wù)分析與總結(jié)

*2.任務(wù)結(jié)論(1)任務(wù)結(jié)果:實(shí)驗(yàn)箱中的4個(gè)發(fā)光二極管的亮滅狀態(tài)由4個(gè)開關(guān)控制,哪個(gè)開關(guān)被按下,對應(yīng)的指示燈亮。1.1.4任務(wù)分析與總結(jié)

(2)指示燈和開關(guān)的狀態(tài)是通過8051單片機(jī)的P1口及控制程序進(jìn)行信息控制傳遞的。指示燈的狀態(tài)隨開關(guān)的狀態(tài)如何變化是由控制程序主導(dǎo)的。在硬件電路不變的情況下,修改程序可以實(shí)現(xiàn)不同的控制功能。結(jié)論:單片機(jī)控制系統(tǒng)由硬件電路和軟件程序兩部分組成,通過程序完成對硬件電路的控制,兩者缺一不可。*1946年2月15日,第一臺電子數(shù)字計(jì)算機(jī)問世,標(biāo)志著計(jì)算機(jī)時(shí)代的到來。1.電子計(jì)算機(jī)的產(chǎn)生及發(fā)展

1.2相關(guān)知識鏈接ENIACENIAC奠定了電子計(jì)算機(jī)的發(fā)展基礎(chǔ),在計(jì)算機(jī)史上具有劃時(shí)代的意義,標(biāo)志著電子計(jì)算機(jī)時(shí)代的到來。1.2.1計(jì)算機(jī)概述

*1.電子計(jì)算機(jī)的產(chǎn)生及發(fā)展采用不同物理器件的發(fā)展歷程電子管計(jì)算機(jī)晶體管計(jì)算機(jī)中小規(guī)模集成電路計(jì)算機(jī)大、超大規(guī)模集成電路計(jì)算機(jī)機(jī)器語言匯編語言高級語言軟件(編程語言)發(fā)展計(jì)算機(jī)的發(fā)展1.2.1計(jì)算機(jī)概述

*馮·諾依曼提出的“二進(jìn)制運(yùn)算”和“程序存儲”的思想,構(gòu)建了計(jì)算機(jī)經(jīng)典結(jié)構(gòu)。2.計(jì)算機(jī)的基本結(jié)構(gòu)圖1-21計(jì)算機(jī)的基本結(jié)構(gòu)框圖*單片機(jī)定義:把CPU和一定容量的存儲器、中斷系統(tǒng)、一些并/串接口電路及定時(shí)/計(jì)數(shù)器電路集成在一塊芯片上。3.單片微型計(jì)算機(jī)*單芯片微機(jī)形成階段1.2.2

單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域1.單片機(jī)的發(fā)展過程特點(diǎn):體積小,價(jià)格低,存儲器容量小,尋址范圍?。ú淮笥?K),無串行接口,指令系統(tǒng)功能不強(qiáng)。

1976年,Intel公司推出了MCS-48系列單片機(jī)。8位CPU、1K字節(jié)ROM、64字節(jié)RAM、27根I/O線和1個(gè)8位定時(shí)/計(jì)數(shù)器。*性能完善提高階段1.單片機(jī)的發(fā)展過程特點(diǎn):雖然仍是8位機(jī),但其結(jié)構(gòu)體系完善,性能已大大提高,品種全、兼容性強(qiáng)、軟硬件資源豐富、面向控制的特點(diǎn)進(jìn)一步突出、性能價(jià)格比高。現(xiàn)在,MCS-51已成為公認(rèn)的單片機(jī)經(jīng)典機(jī)種。1980年,Intel公司推出了MCS-51系列單片機(jī):8位CPU、4K字節(jié)ROM、128字節(jié)RAM、4個(gè)8位并口、1個(gè)全雙工串行口、2個(gè)16位定時(shí)/計(jì)數(shù)器。尋址范圍64K,并有控制功能較強(qiáng)的布爾處理器。1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域*微控制器化階段特點(diǎn):片內(nèi)面向測控系統(tǒng)電路增強(qiáng),使之可以方便靈活地用于復(fù)雜的自動測控系統(tǒng)及設(shè)備。“微控制器”的稱謂更能反應(yīng)單片機(jī)的本質(zhì)。1983年,Intel推出MCS-96系列單片機(jī)。芯片內(nèi)集成:16位CPU、8K字節(jié)ROM、232字節(jié)RAM、5個(gè)8位并口、1個(gè)全雙工串行口、2個(gè)16位定時(shí)/計(jì)數(shù)器。尋址范圍64K。片上還有4路或8路10位ADC、1路PWM輸出及高速I/O部件等。1.單片機(jī)的發(fā)展過程1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域*微控制器的CPU核仍以CISC為主,但向RISC

演化。單片機(jī)發(fā)展趨勢提升指令執(zhí)行速度。集成大容量片上FLASH存儲器,實(shí)現(xiàn)ISP、IAP。普遍使用混合信號(數(shù)字、模擬相混合)集成技術(shù)。增加可聯(lián)網(wǎng)的外設(shè)接口。追求低電壓、低功耗、低價(jià)位、LPG。1.單片機(jī)的發(fā)展過程1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域*2.單片機(jī)的應(yīng)用模式和應(yīng)用領(lǐng)域1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域①體積小,價(jià)格低,應(yīng)用廣。(1)單片機(jī)的特點(diǎn)②通用性、靈活性強(qiáng),易擴(kuò)展

。③可靠性高、抗干擾能力強(qiáng)

。④實(shí)時(shí)控制能力強(qiáng)

。微型計(jì)算機(jī)具有運(yùn)算速度快、精度高、方便靈活、適應(yīng)范圍廣和可靠性高等特點(diǎn)。作為其分支的單片機(jī),由于特殊的硬件結(jié)構(gòu)和指令系統(tǒng),還具有以下突出特點(diǎn)。*1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域①工業(yè)方面:各種測控系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、工業(yè)機(jī)器人、機(jī)電一體化產(chǎn)品等。(2)單片機(jī)的應(yīng)用領(lǐng)域②智能儀器儀表方面:如齒輪精度檢驗(yàn)儀類的各種工業(yè)檢驗(yàn)、測量儀器、醫(yī)療器械等。

③通信方面:調(diào)制解調(diào)器、程控交換技術(shù)。

④民用方面:全自動洗衣機(jī)、智能電飯鍋、電話機(jī)、錄像機(jī)、空調(diào)機(jī)和電子玩具等。

⑤導(dǎo)彈與控制方面:導(dǎo)彈控制、魚雷制導(dǎo)控制、智能武器裝備、航天飛機(jī)導(dǎo)航系統(tǒng)等。

2.單片機(jī)的應(yīng)用模式和應(yīng)用領(lǐng)域*1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域MCS-51系列單片機(jī)采用HMOS(如8051)和CHMOS(如80C51)工藝。這兩種單片機(jī)完全兼容。(1)Intel公司的MCS-51系列單片機(jī)MCS-51系列單片機(jī)按片內(nèi)有無程序存儲器及程序存儲器的形式分為三種基本產(chǎn)品:8031、8051和8751。它們的引腳與指令系統(tǒng)完全兼容,但在內(nèi)部結(jié)構(gòu)及應(yīng)用特性方面存在一些差異。8031內(nèi)部包括一個(gè)8位的CPU、128KB的RAM、21個(gè)特殊功能寄存器、4個(gè)8位并行I/O口、1個(gè)全雙工的串行口、2個(gè)16位的定時(shí)/計(jì)數(shù)器。但無程序存儲器,使用時(shí)需外擴(kuò)EPROM芯片。3.MCS-51系列單片機(jī)簡介*1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域3.MCS-51系列單片機(jī)簡介8051是在8031的基礎(chǔ)上,片內(nèi)集成有4KB的ROM,ROM中的程序是由單片機(jī)芯片廠固化的,適合大批量的生產(chǎn)。8751片內(nèi)含有4KB的EPROM,單片機(jī)應(yīng)用開發(fā)人員可以把編寫好的程序用開發(fā)機(jī)或編程器寫入其中,也可以反復(fù)修改程序。但其價(jià)格相對于8031較貴。

高檔單片機(jī)主要包括:將原來的8031/8051/8751進(jìn)行擴(kuò)展為8032/8052/8752;低功耗CHMOS工藝芯片80C31H/87C51/80C51BH;具有高級語言編程的芯片8052H-BASIC;高性能的8XCX52系列。*1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域3.MCS-51系列單片機(jī)簡介Atmel公司生產(chǎn)的MCS-51系列單片機(jī)提供了豐富的外圍接口和專用的控制器,可用于特殊用途。例如電壓比較、USB控制、MP3解碼及CAN控制等。此外,Atmel公司還把ISP技術(shù)集成在MCS-51系列單片機(jī)中,使用戶能夠方便地改變程序代碼,從而方便地進(jìn)行系統(tǒng)調(diào)試。Atmel公司還提供了各種產(chǎn)品的不同封裝,以方便用戶進(jìn)行選擇。

(2)Atmel公司的MCS-51系列單片機(jī)*1.2.2單片機(jī)的發(fā)展過程與應(yīng)用領(lǐng)域3.MCS-51系列單片機(jī)簡介表1-2AT89系列單片機(jī)常用產(chǎn)品特性一覽表型號片內(nèi)存儲器I/O口線定時(shí)/計(jì)數(shù)器模擬比較器中斷源串行口程序存儲器數(shù)據(jù)存儲器89C10511KBFPEROM64B151個(gè)16位1個(gè)3個(gè)無89C20512KBFPEROM128B152個(gè)16位1個(gè)5個(gè)2級UART89C514KBFPEROM128B322個(gè)16位無5個(gè)2級UART89C528KBFPEROM256B323個(gè)16位無6個(gè)2級UART*MCS-51系列單片機(jī)屬高檔8位單片機(jī),其典型芯片有8031、8051、8751、89C51。除內(nèi)部ROM不同外,它們的內(nèi)部結(jié)構(gòu)和引腳完全相同。下面以8051單片機(jī)為例說明MCS-51系列單片機(jī)內(nèi)部組成結(jié)構(gòu)。

1.2.3MCS-51系列單片機(jī)結(jié)構(gòu)和引腳功能*1.2.3MCS-51系列單片機(jī)結(jié)構(gòu)和引腳功能1.8051的內(nèi)部結(jié)構(gòu)P0P1P2P3并行接口CPU時(shí)鐘電路串行接口中斷系統(tǒng)ROMRAM定時(shí)/計(jì)數(shù)器T0T1TXDRXD8051單片機(jī)由CPU、RAM和ROM組成的存儲器、I/O接口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、時(shí)鐘電路等構(gòu)成。8051單片機(jī)的基本組成如圖1-14所示*1.2.3MCS-51系列單片機(jī)結(jié)構(gòu)和引腳功能1.8051的內(nèi)部結(jié)構(gòu)(1)中央處理器(CPU)

作用:讀入并分析每條指令,根據(jù)各指令的功能控制單片機(jī)的各功能部件執(zhí)行指定的操作,是控制和指揮單片機(jī)工作的中心。組成:包括運(yùn)算器和控制器。運(yùn)算器組成:包括算術(shù)/邏輯運(yùn)算單元ALU、累加器A、寄存器B、暫存寄存器、程序狀態(tài)標(biāo)志寄存器PSW等

??刂破鹘M成:包括指令寄存器IR、指令譯碼器ID、定時(shí)及控制邏輯電路和程序計(jì)數(shù)器PC等。

*ALU

由定時(shí)和控制部件構(gòu)成的控制器,包括定時(shí)控制邏輯、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、程序計(jì)數(shù)器PC、堆棧指針SP、RAM地址寄存器以及16位地址緩沖器等。運(yùn)算器(ALU、專用寄存器)CPU結(jié)構(gòu)*ALU

PC是一個(gè)16位的計(jì)數(shù)器??偸谴娣胖乱粋€(gè)要取的指令的存儲單元的16位地址。CPU總是把PC的內(nèi)容作為地址,按該地址從內(nèi)存中取出指令碼或含在指令中的操作數(shù)。每當(dāng)取完一個(gè)字節(jié)后PC的內(nèi)容自動加1,為取下一個(gè)字節(jié)作準(zhǔn)備。指令寄存器IR用來保存當(dāng)前正在執(zhí)行的一條指令。執(zhí)行一條指令先把它從程序存儲器取到IR中。CPU結(jié)構(gòu)指令的內(nèi)容包括操作碼和地址碼兩部分,操作碼送往指令譯碼器ID,經(jīng)其譯碼后確定所要執(zhí)行的操作。

定時(shí)與控制邏輯是CPU的核心部件,它的任務(wù)是控制取指令、執(zhí)行指令、存取操作數(shù)或運(yùn)算結(jié)果等操作。*1.2.3MCS-51系列單片機(jī)結(jié)構(gòu)和引腳功能1.8051的內(nèi)部結(jié)構(gòu)(2)片內(nèi)存儲器

8051芯片共有256個(gè)RAM單元,其中的后128個(gè)單元被專用寄存器占用;能作為寄存器供用戶使用的只有前128個(gè)單元,用于存放可讀/寫的數(shù)據(jù)。8051共有4KB容量的掩膜內(nèi)部ROM,用于存放程序、原始數(shù)據(jù)或表格。(3)I/O接口8051單片機(jī)有4個(gè)8位的并行I/O接口,即P0~P3,可實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。一個(gè)全雙工的串行接口(利用P3口的兩個(gè)引腳P3.0和P3.1),可實(shí)現(xiàn)單片機(jī)與其他設(shè)備之間的串行數(shù)據(jù)傳送。*1.2.3MCS-51系列單片機(jī)結(jié)構(gòu)和引腳功能1.8051的內(nèi)部結(jié)構(gòu)(4)定時(shí)/計(jì)數(shù)器

8051共有2個(gè)16位的定時(shí)/計(jì)數(shù)器,可實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并根據(jù)定時(shí)或計(jì)數(shù)結(jié)果對單片機(jī)進(jìn)行控制。(5)中斷系統(tǒng)

8051單片機(jī)共有5個(gè)中斷源、2個(gè)中斷優(yōu)先級,可滿足控制應(yīng)用的需要。5個(gè)中斷源分別為2個(gè)外部中斷、2個(gè)定時(shí)/計(jì)數(shù)器中斷和1個(gè)串行口中斷。

(6)時(shí)鐘電路

時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,此脈沖序列用來為單片機(jī)芯片內(nèi)部各種微操作提供時(shí)間基準(zhǔn)。系統(tǒng)允許的晶振頻率一般為6MHz和12MHz。**2.8051的信號引腳及功能(1)電源及電源復(fù)用引腳Vcc:電源端,接+5V。Vss:接地端。復(fù)位信號輸入端/備用電源輸入端片外程序存儲器訪問允許信號/片內(nèi)EPROM編程電源。

(2)晶體振蕩器或外部振蕩信號輸入引腳XTAL1:晶振接入的一個(gè)引腳。采用外部振蕩器時(shí),此引腳接地。XTAL2:晶振接入的另一個(gè)引腳。采用外部振蕩器時(shí)此引腳作為外部振蕩信號的輸入端。*2.8051的信號引腳及功能(3)地址鎖存及外部ROM選能信號輸出引腳

地址鎖存允許信號輸出/編程脈沖輸入引腳。ALE在有外部擴(kuò)展存儲器的系統(tǒng)中,當(dāng)訪問外部存儲器時(shí),ALE信號的下降沿鎖存低8位地址信號。在無外部擴(kuò)展存儲器的系統(tǒng)中,可以作為對外輸出1/6振蕩器頻率的時(shí)鐘信號。PROG的功能是8751等片內(nèi)含有EPROM器件的編程脈沖輸入端。

*2.8051的信號引腳及功能(3)地址鎖存及外部ROM選通信號輸出引腳

外部程序存儲器讀選通信號。該引腳有效(低電平)時(shí),可實(shí)現(xiàn)對外部ROM單元的讀操作。可以驅(qū)動8個(gè)LSTTL負(fù)載。*2.8051的信號引腳及功能(4)I/O引腳P0.0~P0.7:數(shù)據(jù)/低位地址復(fù)用總線接口P0.0~P0.7:數(shù)據(jù)/低位地址復(fù)用總線接口。

P2.0~P2.7:高位地址總線接口。P1.0~P1.7:靜態(tài)通用I/O接口。P3.0~P3.7:雙功能接口。

*2.8051的信號引腳及功能(4)I/O引腳P0.0~P0.7:數(shù)據(jù)/低位地址復(fù)用總線接口四個(gè)端口中:P1口的應(yīng)用最為靈活。當(dāng)擴(kuò)展存儲器或其他具有數(shù)據(jù)接口、命令接口或狀態(tài)接口的器件時(shí),P2口和P0口聯(lián)合組成16位地址總線。P3口常用第二功能。*1.2.4MCS-51內(nèi)部存儲器

存儲器是組成計(jì)算機(jī)的三大主要部件之一,其功能是存儲信息,即程序和數(shù)據(jù)。只讀存儲器(ROM):ROM是一種寫入信息后不能改寫只能讀出的存儲器,斷電后其里面的信息保留不變,常用來存放固定的程序或數(shù)據(jù)。所以,ROM常被稱作程序存儲器。隨機(jī)存取存儲器(RAM):RAM是一種CPU在運(yùn)行過程中能隨時(shí)寫入和讀出數(shù)據(jù),但在關(guān)閉電源時(shí)其所存儲的信息將丟失的存儲器,只能用來存放暫時(shí)性的輸入輸出數(shù)據(jù)、運(yùn)算的中間結(jié)果或用作堆棧。因此,RAM常被稱作數(shù)據(jù)存儲器。*MCS-51存儲器結(jié)構(gòu)

三大邏輯存儲空間內(nèi)部數(shù)據(jù)存儲器

程序存儲器外部ROM0FFFFH1000H外部RAM及輸入輸出端口(

64K)0000H0FFFFH0FFFH0000H內(nèi)部ROM

EA=10FFFH0000H外部ROM

EA=00080H00FFH特殊功能寄存器0000H007FH內(nèi)部RAM外部數(shù)據(jù)存儲器1.2.4MCS-51內(nèi)部存儲器

*

程序存儲器(Programmemory)主要用于存放經(jīng)調(diào)試正確的應(yīng)用程序和常數(shù)表格。由于MCS-51系列單片機(jī)采用16位的程序計(jì)數(shù)器PC和16位的地址總線,因而程序存儲器可擴(kuò)展的地址空間為64KB,并且這64KB地址在空間分布范圍上是連續(xù)和統(tǒng)一的。1.2.4MCS-51內(nèi)部存儲器

1.內(nèi)部程序存儲器*...程序存儲器(PC)中斷5中斷4中斷3中斷2中斷10000H0001H0002H0003H000BH0013H001BH0023H002BH定時(shí)器1中斷外部中斷0定時(shí)器0中斷外部中斷1串行口中斷8位0FFFH0FFEH0000HFFFFH(64K)0000H0FFFH(4K)內(nèi)部EA=1程序存儲器資源分布中斷入口地址外部EA=0引腳接高電平時(shí),CPU可訪問內(nèi)部和外部ROM,且程序自片內(nèi)程序存儲器開始執(zhí)行,PC值超出片內(nèi)ROM容量時(shí),會自動轉(zhuǎn)向片外程序存儲器中的程序。1.2.4MCS-51內(nèi)部存儲器

1.內(nèi)部程序存儲器*0000HFFFFH(64K)外部數(shù)據(jù)存儲器00HFFH7FH80H(高128B)(低128B)內(nèi)部RAM專用

寄存器0組R0R7R0R7R0R7R0R71組2組3組工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲器18H1FH10H17H08H0FH00H07HRS1RS0000組011組102組013組1.2.4MCS-51內(nèi)部存儲器

2.內(nèi)部數(shù)據(jù)存儲器*2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07MSB位地址LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800單元地址2.內(nèi)部數(shù)據(jù)存儲器*用戶RAM區(qū)(30H~7FH)

2.內(nèi)部數(shù)據(jù)存儲器此區(qū)間共80個(gè)單元,只可按字節(jié)尋址,而不可位尋址。對通用RAM區(qū)的使用沒有任何規(guī)定或限制,但在一般應(yīng)用中常把堆棧開辟在此區(qū)間中。內(nèi)部數(shù)據(jù)存儲器的128個(gè)單元,從功能上分成寄存器區(qū)、位尋址區(qū)和用戶RAM區(qū)三大部分,但在使用時(shí)并非絕對如此。例如,若只使用到第0組工作寄存器,則第1~3組工作寄存器區(qū)間即可用作一般的數(shù)據(jù)存儲器。同樣,位尋址區(qū)的各字節(jié)倘若不作位操作使用,即可用作一般的數(shù)據(jù)存儲器。*特殊功能寄存器(SFR)簡單歸類如下:與ALU相關(guān)的寄存器有累加器A、B寄存器和程序狀態(tài)字PSW;與指針相關(guān)的寄存器有堆棧指針SP、兩個(gè)8位寄存器DPH和DPL組成的16位數(shù)據(jù)指針DPTR;與端口相關(guān)的寄存器有I/O端口寄存器P0~P3、串行端口數(shù)據(jù)緩沖器SBUF、串行端口控制寄存器SCON、串行通信波特率倍增寄存器PCON;與定時(shí)/計(jì)數(shù)器相關(guān)的寄存器有T0計(jì)數(shù)初值寄存器TH0和TL0、T1計(jì)數(shù)初值寄存器TH1和TL1、工作模式寄存器TMOD、控制寄存器TCON;與中斷相關(guān)的寄存器有中斷允許控制寄存器IE和優(yōu)先級控制寄存器IP。

(2)特殊功能寄存器區(qū)*助記符位地址/位符號字節(jié)地址BF7HF6HF5HF4HF3HF2HF1HF0HF0HACCE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HCYACF0RS1RS0OV—PIPBFHBEHBDHBCHBBHBAHB9HB8HB8H———PSPT1PX1PT0PX0P3B7HB6HB5HB4HB3HB2HB1HB0HB0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0IEAFHAEHADHACHABHAAHA9HA8HA8HEA——ESET1EX1ET0EX0P2A7HA6HA5HA4HA3HA2HA1HA0HA0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SBUF99H特殊功能寄存器區(qū)

*助記符位地址/位符號字節(jié)地址SCON9FH9EH9DH9CH9BH9AH99H98H98HSM0SM1SM2RENTB8RB8TIRIP197H96H95H94H93H92H91H90H90HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TH18DHTH08CHTL18BHTL08AHTMODGATEC/TM1M0GATEC/TM1M089HTCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMOD———————87HDPH83HDPL82HSP81HP087H86H85H84H83H82H81H80H80HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0*

(2)特殊功能寄存器區(qū)2.內(nèi)部數(shù)據(jù)儲存器①累加器A(Accumulator)

累加器A為8位寄存器,它是CPU中使用最頻繁的寄存器,MCS-51指令系統(tǒng)中多數(shù)指令的執(zhí)行都通過它進(jìn)行。②寄存器B寄存器是一個(gè)8位寄存器,主要用于乘、除法運(yùn)算,也可以作為RAM的一個(gè)單元使用。

*③程序狀態(tài)字PSW(ProgramStateWord)CyACF0RS1RS0OV…PD7D6D5D4D3D2D1D0PSW進(jìn)位標(biāo)志、“位累加器”

輔助進(jìn)位標(biāo)志

用戶通用狀態(tài)標(biāo)志

溢出標(biāo)志

奇偶標(biāo)志位

保留位

工作寄存器組選擇控制位

若A中有奇數(shù)個(gè)“1”,則P置位,否則清零

2.內(nèi)部數(shù)據(jù)儲存器*RS1、RS0與片內(nèi)工作寄存器組的對應(yīng)關(guān)系組號RS1RS0片內(nèi)PAM地址0組0000H~07H1組0108H~0FH2組1010H~17H3組0118H~1FH2.內(nèi)部數(shù)據(jù)儲存器③程序狀態(tài)字PSW(ProgramStateWord)*堆棧是指用戶在單片機(jī)內(nèi)部RAM中開辟的、遵循“先進(jìn)后出”原則、只能從一端存取數(shù)據(jù)的一個(gè)存儲區(qū)。存取數(shù)據(jù)的一端稱為棧頂。④堆棧指針SP(StackPointer)2.內(nèi)部數(shù)據(jù)儲存器

(2)特殊功能寄存器區(qū)*

堆棧中的數(shù)據(jù)壓入和彈出過程凡是關(guān)系到堆棧操作的場合,都需要借助MCS-51的CPU中一個(gè)專用8位寄存器SP來間接指示堆棧中數(shù)據(jù)存取的位置,該寄存器被稱為堆棧指針SP。MCS-51的堆棧是向上(即向地址增加的方向)生成的,堆棧指針SP的初始值稱為棧底。在堆棧操作過程中,SP始終指向堆棧的棧頂。單片機(jī)復(fù)位后SP的值為07H,因此入棧數(shù)據(jù)將從08H存起。08H~1FH與工作寄存器區(qū)1~3,通常把棧底設(shè)計(jì)在片內(nèi)RAM中地址值較高的地方,如60H等。2.內(nèi)部數(shù)據(jù)儲存器*⑤數(shù)據(jù)指針寄存器DPTR(DataPointRegister)

是一個(gè)16位的專用寄存器,其高位字節(jié)寄存器用DPH表示、低位字節(jié)寄存器用DPL表示。既可作為一個(gè)16位寄存器DPTR來處理,也可作為兩個(gè)獨(dú)立的8位寄存器DPH和DPL來處理。DPTR主要用來存放16位地址,可通過它訪問64KB外部數(shù)據(jù)存儲器或外部程序存儲器空間。2.內(nèi)部數(shù)據(jù)儲存器

(2)特殊功能寄存器區(qū)*

接口電路是微機(jī)應(yīng)用系統(tǒng)中必不可少的組成部分,其中并行輸入/輸出接口是CPU與外部進(jìn)行信息交換的主要通道,如任務(wù)1中的P1口。

MCS—51系列單片機(jī)內(nèi)部有4個(gè)并行的I/O接口電路:P0、P1、P2、P3,它們都是雙向口,既可以輸入又可以輸出。

P1口主要用作輸入輸出口。P0、P2口經(jīng)常用作外部擴(kuò)展存儲器時(shí)的數(shù)據(jù)、地址總線。P3口除了可用作I/O口外,每一根都有第二功能。通過這些I/O口,單片機(jī)可以外接鍵盤、顯示器等外圍設(shè)備,還可以進(jìn)行系統(tǒng)擴(kuò)展,以解決片內(nèi)硬件資源不足問題

1.2.5MCS-51系列單片機(jī)的I/O口結(jié)構(gòu)與操作*P0口原理圖如下所示:1.P0口作為通用I/O使用,

是一個(gè)準(zhǔn)雙向口;作為地址/數(shù)據(jù)總線時(shí),是一個(gè)真正的雙向接口。*P0口可作通用I/O口使用,又可作地址/數(shù)據(jù)總線口;P0既可按字節(jié)尋址,又可按位尋址;作通用I/O口輸出時(shí):是開漏輸出,應(yīng)外接上拉電阻;作地址/數(shù)據(jù)總線口時(shí),P0是一真正雙向口,而作通用I/O口時(shí),只是一個(gè)準(zhǔn)雙向口。1.P0口P0口特點(diǎn)總結(jié):*(1)只能作I/O口,沒有地址/數(shù)據(jù)復(fù)用功能(2)可按字節(jié)尋址,也可按位尋址(3)是一準(zhǔn)雙向口,輸出驅(qū)動接有上拉電阻,不是開漏輸出。

讀鎖存器讀引腳寫鎖存器內(nèi)部總線DCLQQP1.X鎖存器P1.X引腳Vcc內(nèi)部上拉電阻R*2.P1口*(1)當(dāng)P2口作為通用I/O時(shí),是一準(zhǔn)雙向口。(2)從P2口輸入數(shù)據(jù)時(shí),先向鎖存器寫“1”。(3)可位尋址,也可按字節(jié)尋址。(4)可輸出地址高8位。

讀引腳寫鎖存器內(nèi)部總線讀鎖存器DCLQQP2.X鎖存器MUXP2.X引腳地址Vcc控制內(nèi)部上拉電阻R*l3.P2口*讀引腳寫鎖存器內(nèi)部總線讀鎖存器DCLQQP3.X鎖存器P3.X引腳第二功能輸出內(nèi)部上拉電阻R*第二功能輸入Vcc&P3口原理圖如下所示:4.P3口*當(dāng)P3口作為通用I/O接口時(shí),第2功能輸出線為高電平,使與非門3的輸出取決于口鎖存器的狀態(tài)。在這種情況下,P3口仍是1個(gè)準(zhǔn)雙向口,它的工作方式、負(fù)載能力均與P1、P2口相同。當(dāng)P3口作為第2功能使用時(shí),其鎖存器Q端必須為高電平,否則V1管導(dǎo)通,引腳被箝位在低電平,無法輸入或輸出第2功能信號。當(dāng)Q端為高電平時(shí),P3口的口線狀態(tài)就取決于第2功能輸出線的狀態(tài)。P3口特點(diǎn)總結(jié):4.P3口*

MCS-51系列單片機(jī)的4個(gè)并行I/O口均由內(nèi)部總線控制,端口的功能復(fù)用會自動識別,不用指令選擇。4個(gè)口編號依次為P0~P3,均為并行I/O口,每個(gè)口8根線,共32根口線,每一條線都可以單獨(dú)輸入/輸出。P0口是8位、漏極開路的雙向I/O口,當(dāng)用作片外存儲器或接口擴(kuò)展時(shí),分時(shí)復(fù)用為數(shù)據(jù)總線和低8位地址總線,可驅(qū)動8個(gè)LSTTL負(fù)載。5.并行I/O口的應(yīng)用特性*P1口是8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻,驅(qū)動能力為4個(gè)LSTTL負(fù)載。P2口是8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻,可驅(qū)動4個(gè)LSTTL負(fù)載,外部擴(kuò)展時(shí)用作高8位地址總線。P3口是8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻,可驅(qū)動4個(gè)LSTTL負(fù)載。P3口的所有口線都具有第二功能,實(shí)現(xiàn)控制總線的作用。

5.并行I/O口的應(yīng)用特性*1.2.6MCS-51系列單片機(jī)的時(shí)序和復(fù)位電路CPU以不同的方式,通過復(fù)雜的時(shí)序電路執(zhí)行并完成各種不同指令功能。CPU的控制器按照指令的功能發(fā)出一系列在時(shí)間上有一定次序的信號去控制和啟動一部分邏輯電路,完成某種操作。在一定時(shí)刻發(fā)出一定的控制信號去啟動一定的邏輯部件動作,這就是CPU的時(shí)序。*(1)系統(tǒng)時(shí)鐘與時(shí)鐘周期系統(tǒng)時(shí)鐘是一切微處理器、微控制器內(nèi)部電路工作的基礎(chǔ)。單片機(jī)內(nèi)部有一個(gè)自激振蕩電路,可以通過它或外部提供振蕩源驅(qū)動內(nèi)部時(shí)鐘電路產(chǎn)生系統(tǒng)時(shí)鐘信號。系統(tǒng)時(shí)鐘信號的振蕩周期簡稱時(shí)鐘周期。系統(tǒng)時(shí)鐘組成了單片機(jī)機(jī)器周期的狀態(tài)序列。

1.2.6MCS-51系列單片機(jī)的時(shí)序和復(fù)位電路1.MCS-51系列單片機(jī)的CPU時(shí)序*(2)機(jī)器周期與指令周期CPU完成一種基本操作所需要的時(shí)間稱為機(jī)器周期Tcy?;镜臋C(jī)器周期有取指周期、存儲器讀周期和存儲器寫周期等,各種指令功能都是由這幾種基本機(jī)器周期實(shí)現(xiàn)的。CPU執(zhí)行一條指令所需要的時(shí)間稱為指令周期,它以機(jī)器周期為單位。MCS-51的指令可以分為單周期指令、雙周期指令和四周期指令三種,它們的執(zhí)行時(shí)間依次是1個(gè)、2個(gè)和4個(gè)機(jī)器周期。1.MCS-51系列單片機(jī)的CPU時(shí)序*機(jī)器周期與時(shí)鐘周期的關(guān)系

MCS-51系列單片機(jī)的的1個(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期。為了敘述方便,可將1個(gè)機(jī)器周期分為6個(gè)狀態(tài)S1~S6,每個(gè)狀態(tài)又分為兩節(jié)拍P1、P2,則1個(gè)機(jī)器周期的12個(gè)節(jié)拍依次為S1P1、S1P2、S2P1……S6P2。如果系統(tǒng)時(shí)鐘的晶振頻率為fosc=12MHz,則

1Tcy

=12Tosc=12/fosc=12/(12×106)=1μs即:1個(gè)機(jī)器周期的時(shí)間為1μs。

1.MCS-51系列單片機(jī)的CPU時(shí)序*復(fù)位操作就是使單片機(jī)內(nèi)部的一些部件恢復(fù)到某種預(yù)先確定的狀態(tài)。復(fù)位狀態(tài):除以下SFR外,其余SFR都被硬件自動寫入0口鎖存器P0~P3:0FFH堆棧指針SP:07HSBUF:不定內(nèi)部RAM不受復(fù)位操作的影響,但在單片機(jī)接通電源時(shí),RAM中的內(nèi)容不定。復(fù)位工作方式2.MCS-51單片機(jī)的復(fù)位*SFR復(fù)位值SFR復(fù)位值SFR復(fù)位值PCACCBPSWSPDPTRP0~P3IP(51子系列)IP(52子系列)IE(51子系列)IE(52子系列)SBUF0000H00H00H00H07H0000HFFH×××00000B××000000B0××00000B0×000000B不定

TMODTCONTH0TL0TH1TL1TH2(52子系列)TL2(52子系列)RCAP2H(52子系列)RCAP2L(52子系列)SCONPCON(HMOS工藝)PCON(CHMOS工藝)

00H00H00H00H00H00H00H00H00H00H00H0×××××××B0×××0000B

*單片機(jī)進(jìn)入復(fù)位狀態(tài)的條件在內(nèi)部振蕩器運(yùn)行時(shí),使復(fù)位輸入端RESET至少保持兩個(gè)機(jī)器周期(24個(gè)振蕩周期)為高電平,由CPU采樣復(fù)位信號,啟動復(fù)位時(shí)序,完成復(fù)位操作。2.MCS-51單片機(jī)的復(fù)位*復(fù)位電路

上電復(fù)位電路

按鈕復(fù)位電路

當(dāng)VCC接通電源時(shí),即可實(shí)現(xiàn)單片機(jī)的上電復(fù)位

2.MCS-51單片機(jī)的復(fù)位*數(shù)制:是進(jìn)位計(jì)數(shù)制的簡稱。十進(jìn)制:生活中最熟悉的進(jìn)位計(jì)數(shù)制。特點(diǎn):

每一位是0~9十個(gè)數(shù)碼中的一個(gè)數(shù)碼,基數(shù)是10

運(yùn)算規(guī)則:逢十進(jìn)一,借一當(dāng)十例如,十進(jìn)制數(shù)47.25按權(quán)展開為:1.2.7

數(shù)制及其轉(zhuǎn)換

*

其一是(N)R,R代表2、10、16等;其二是在數(shù)的結(jié)尾以一字母標(biāo)示

D(Decimal)代表十進(jìn)制(也可省略)

B(Binary)代表二進(jìn)制

O(Octal)代表八進(jìn)制

H(Hexadecimal)代表十六進(jìn)制。如:(1010)2

(100)10

101B101DEFH為了區(qū)分?jǐn)?shù)的不同進(jìn)制,有兩種不同的區(qū)分法:1.2.7

數(shù)制及其轉(zhuǎn)換

*1.2.7

數(shù)制與編碼

(1)二進(jìn)制數(shù)及其轉(zhuǎn)換①二進(jìn)制數(shù)的特點(diǎn)

每一位是0、1兩個(gè)數(shù)碼中的一個(gè)數(shù)碼,基數(shù)是2

運(yùn)算規(guī)則:逢二進(jìn)一,借一當(dāng)二②二進(jìn)制數(shù)和十進(jìn)制數(shù)的轉(zhuǎn)換

二進(jìn)制數(shù)十進(jìn)制數(shù):乘權(quán)求和法。十進(jìn)制數(shù)整數(shù)二進(jìn)制數(shù):除2取余逆排法。十進(jìn)制數(shù)小數(shù)二進(jìn)制數(shù):乘2取整順排法。1.數(shù)制及其轉(zhuǎn)換*(2)十六進(jìn)制數(shù)及其轉(zhuǎn)換①十六進(jìn)制數(shù)的特點(diǎn)

每一位是0~9、A~F中的一個(gè)數(shù)碼,基數(shù)是16運(yùn)算規(guī)則:逢十六進(jìn)一,借一當(dāng)十六②十六進(jìn)制數(shù)的轉(zhuǎn)換

十六進(jìn)制數(shù)二進(jìn)制數(shù):一拉四法。二進(jìn)制數(shù)十六進(jìn)制數(shù):四合一法。十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換類似于二進(jìn)制數(shù)和十進(jìn)制數(shù)之間的轉(zhuǎn)換1.2.7

數(shù)制與編碼

1.數(shù)制及其轉(zhuǎn)換*

機(jī)器數(shù):機(jī)器中以編碼形式表示的數(shù);真值:原來一般書寫形式表示的數(shù)。2.機(jī)器數(shù)與真值

有符號的數(shù)在數(shù)學(xué)中用“十”和“-”表示,在計(jì)算機(jī)中規(guī)定用最高位作為符號位,用“0”表示“+”,用“1”表示“-”。例:負(fù)數(shù)

-1011011B(-5BH)1011011B1

(DBH)機(jī)器數(shù)真值*3.原碼、反碼、補(bǔ)碼

在計(jì)算機(jī)中機(jī)器數(shù)可以用三種方法表示,即原碼、反碼和補(bǔ)碼。(1)原碼:最高位為符號位,其余位為數(shù)值位。(2)反碼:是有符號二進(jìn)制數(shù)的一種表示方法。正數(shù)的反碼與原碼相同;負(fù)數(shù)的反碼符號位為1,數(shù)值位是原碼的數(shù)值位按位取反。注:采用原碼和反碼表示時(shí),符號位不能同數(shù)值一道參加運(yùn)算。*3.

原碼、反碼、補(bǔ)碼

例如:*3.

原碼、反碼、補(bǔ)碼

(3)補(bǔ)碼:計(jì)算機(jī)中有符號數(shù)的常用表示方法。

正數(shù)的補(bǔ)碼與原碼相同;負(fù)數(shù)的補(bǔ)碼是反碼加1。例如:*反碼:范圍是:+127~-127;“0”有2種表示補(bǔ)碼:范圍是:+127~-128;“0”有1種表示3.

原碼、反碼、補(bǔ)碼

表1-7特殊數(shù)的幾種表示方法對照表*3.

原碼、反碼、補(bǔ)碼

三種編碼的最高位為符號位,“0”表示正,“1”表示負(fù)。對于正數(shù),三種編碼的表示方法相同。對于負(fù)數(shù),三種編碼的符號位均為1,數(shù)值部分不同。8位二進(jìn)制數(shù)的原碼、反碼和補(bǔ)碼所能表示的數(shù)值范圍是不完全相同的。

結(jié)論1*3.

原碼、反碼、補(bǔ)碼

(4)補(bǔ)碼的加減運(yùn)算補(bǔ)碼運(yùn)算的幾個(gè)公式:

其中,為的每一位(包括符號位)都按位取反,再加1。上面式子中,x1、x2、(x1+x2)、(x1-x2)必須在-2n-1~2n-1范圍內(nèi),否則機(jī)器會產(chǎn)生溢出錯誤。*3.

原碼、反碼、補(bǔ)碼

例1-9用補(bǔ)碼進(jìn)行運(yùn)算,求x1+x2x1=+0011101B=+29,x

2=-0000110B=-600011101+1111101000010111

真值為:+0010111B=+23由此可見,符號在參加運(yùn)算后結(jié)果是正確的。則[x1]補(bǔ)+[x2]補(bǔ)為:自然丟失1解:*3.

原碼、反碼、補(bǔ)碼

例1-10用補(bǔ)碼進(jìn)行運(yùn)算,求x1-x2

x1=+0001000B=+8,x

2=+0001111B=+1500001000+1111000111111001

真值為:-0000111B=-7則[x1]補(bǔ)+[-x2]補(bǔ)為:解:*

求出參加運(yùn)算的兩個(gè)數(shù)的補(bǔ)碼。用補(bǔ)碼相加進(jìn)行加法運(yùn)算,用減數(shù)變補(bǔ)相加完成減法運(yùn)算。運(yùn)算時(shí)符號位應(yīng)當(dāng)作為數(shù)的一部分參與運(yùn)算,符號位有進(jìn)位則丟棄。運(yùn)算結(jié)果仍為補(bǔ)碼,要得到真值須再轉(zhuǎn)換。負(fù)數(shù)的補(bǔ)碼求原碼時(shí),符號位不變,數(shù)值位按位取反后再加“1”。補(bǔ)碼運(yùn)算結(jié)果超出機(jī)器允許范圍,會產(chǎn)生“溢出”而出錯。結(jié)論2*4.BCD碼和字符的ASCII碼

計(jì)算機(jī)只能識別“0”和“1”兩個(gè)符號,而計(jì)算機(jī)處理的信息卻有多種形式,例如數(shù)字、標(biāo)點(diǎn)符號、運(yùn)算符號、各種命令、文字和圖形等。要表示這么多的信息并識別它們,必須對這些信息進(jìn)行編碼。計(jì)算機(jī)中根據(jù)信息對象不同,編碼的方式也不同。常見的碼制有BCD碼和ASCII碼等。

*(1)BCD碼(十進(jìn)制數(shù)的二進(jìn)制編碼)4.BCD碼和字符的ASCII碼

BCD(BinaryCodedDecimal)碼也叫二—十進(jìn)制編碼,是指將十進(jìn)制數(shù)的0~9十個(gè)數(shù)字用二進(jìn)制數(shù)表示的編碼。由于十進(jìn)制數(shù)有十個(gè)不同的數(shù)碼,因此需用4位二進(jìn)制數(shù)來表示。而4位二進(jìn)制編碼有16種不同的組合,從中取出10種組合來表示0~9十個(gè)數(shù)有多種方案,所以BCD碼也有多種方案。最常用的編碼是8421碼,它是一種恒權(quán)碼,8(23)、4(22)、2(21)、1(20)分別是4位二進(jìn)制數(shù)的權(quán)值。*4.BCD碼和字符的ASCII碼

表1-8BCD(8421)碼與十進(jìn)制數(shù)對應(yīng)關(guān)系十進(jìn)制數(shù)8421BCD碼十進(jìn)制數(shù)8421BCD碼00000501011000160110200107011130011810004010091001*(2)ASCII碼(字符編碼)4.BCD碼和字符的ASCII碼

在計(jì)算機(jī)內(nèi),任何信息都是用代碼表示的,字母、數(shù)字和符號也是用二進(jìn)制代碼表示的。國際上通用的是美國國家信息交換標(biāo)準(zhǔn)字符碼,即ASCII碼(AmericanStandardCodeforInformationInterchange)。ASCII碼是一種8位代碼,最高位一般用于奇偶校驗(yàn),用7位代碼對128字符進(jìn)行編碼。其中32個(gè)是控制字符,96個(gè)是圖形字符,如下圖所示。7位ASCII碼字符表,最高位未列出,一般表示時(shí)以0來代替。列為高三位二進(jìn)制碼,行為低4位二進(jìn)制碼。附錄CASCII碼表*任務(wù)小結(jié)任務(wù)1著重講述了單片機(jī)開發(fā)系統(tǒng)的使用、MCS-51系列單片機(jī)的結(jié)構(gòu)、存儲器組織、并行接口、引腳功能以及時(shí)序和工作方式等內(nèi)容。單片機(jī)是把微處理器、存儲器、輸入輸出接口、定時(shí)/計(jì)數(shù)器以及串行通信接口等集成在一個(gè)芯片上,它具有體積小、價(jià)格和功耗低、可靠性高等特點(diǎn),其應(yīng)用領(lǐng)域十分廣泛。*任務(wù)小結(jié)計(jì)算機(jī)中所有信息都采用二進(jìn)制表示,對于數(shù)值型數(shù)據(jù),常采用幾種進(jìn)位計(jì)數(shù)制表示,不同數(shù)制之間可以相互轉(zhuǎn)換。對有符號數(shù)的表示有真值、機(jī)器數(shù)、原碼、反碼和補(bǔ)碼。在機(jī)器中采用補(bǔ)碼加減運(yùn)算規(guī)則做加減運(yùn)算。為了方便書寫程序和數(shù)據(jù),觀察處理結(jié)果,同時(shí)又能符合計(jì)算機(jī)只能識別二進(jìn)制的特點(diǎn),對十進(jìn)制數(shù)采用BCD編碼,對常用字符編碼采用ASCII碼。*1-1單片機(jī)有哪些方面的應(yīng)用?發(fā)展前景如何?1-2MCS—51系列單片機(jī)包括哪幾個(gè)主要部件?各自的邏輯功能如何?1-3簡述PC、PSW、DPTR和ACC等四種專用寄存器的各自含義和作用。1-4何謂程序狀態(tài)標(biāo)志寄存器?它的符號是什么?它的位置在哪里?其中各位的含義是什么?多應(yīng)用在什么場合?1-5數(shù)據(jù)堆棧的特點(diǎn)是什么?堆棧指針的地址在哪里?單片機(jī)初始化后,把“SP初始化為07H”是什么意思?1-6MCS—51系列單片機(jī)的存儲器是怎樣配置的?片內(nèi)ROM與片外擴(kuò)展ROM的存儲空間的關(guān)系是什么?片內(nèi)RAM與片外擴(kuò)展RAM的存儲空間的關(guān)系是什么?思考題及習(xí)題*1-7MCS—51系列單片機(jī)中ROMLess型器件,在應(yīng)用中P0口和P2口能否直接作為I/O口連接開關(guān)、指示燈之類的外設(shè)?為什么?1-8MCS—51系列單片機(jī)ROM存儲空間中,0003H~002BH有什么用途?用戶應(yīng)怎樣合理安排?1-98051的片內(nèi)RAM分哪三部分?各部分在使用上有何特點(diǎn)?內(nèi)部RAM中字節(jié)地址00~7F與位地址00~7F完全重合,CPU如何區(qū)分?1-10MCS—51系列單片機(jī)如何實(shí)現(xiàn)工作寄存器組的選擇?1-11何謂時(shí)鐘周期、機(jī)器周期、指令周期?三者間有何關(guān)系?當(dāng)晶振頻率為4MHz時(shí),三者各是多少?1-12MCS—51系列單片機(jī)40個(gè)引腳的功能各是什么?思考題及習(xí)題*1-13綜述P0口、P1口、P2口、P3口的功能。當(dāng)單片機(jī)外擴(kuò)RAM和ROM時(shí),它們各起什么作用?1-14“復(fù)位”是什么意思?MCS—51系列單片機(jī)進(jìn)入復(fù)位狀態(tài)的條件是什么?常用的復(fù)位方法有哪幾種?應(yīng)注意什么事項(xiàng)?畫出電路圖說明其工作原理。1-15對下列不同數(shù)制的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。(1)(10011010)2=()16=()10

(0110.011)2=()16=()10(2)(12.375)10=()2=()16

(127.875)10=()2=()16(3)(0B7)16=()2=()10

(3EF.8)16=()2=()10思考題及習(xí)題*思考題及習(xí)題

1-16將下列二進(jìn)制帶符號數(shù)分別用原碼、反碼和補(bǔ)碼表示。(1)+1101110(2)-1111111

(3)+1010111(4)-10000001-17寫出下列各十進(jìn)制數(shù)的BCD碼。(1)(47)10

(2)(68)10(3)(1986.7)10(4)

(1969)10*《單片機(jī)應(yīng)用技術(shù)》課件制作組任務(wù)2彩燈循環(huán)控制器設(shè)計(jì)12.1工作任務(wù)2.1.1硬件電路及工作原理2.1.2控制內(nèi)容2.1.3任務(wù)分析

2.1.4任務(wù)結(jié)論

2.2相關(guān)知識鏈接2.2.1概述2.2.2C51的運(yùn)算符與表達(dá)式2.2.3C51的數(shù)據(jù)類型2.2.4程序結(jié)構(gòu)

2.2.5C51的存儲器類型與存儲器模式2.2.6函數(shù)

*《單片機(jī)應(yīng)用技術(shù)》課件制作組2.1工作任務(wù)任務(wù)名稱彩燈循環(huán)控制器設(shè)計(jì)1任務(wù)目標(biāo)進(jìn)一步熟悉MCS-51單片機(jī)I/O口操作與控制;了解C51單片機(jī)程序設(shè)計(jì)的特點(diǎn);掌握C51運(yùn)算與表達(dá)式;掌握C51數(shù)據(jù)類型與程序結(jié)構(gòu);掌握C51存儲器類型與存儲器模式;熟悉函數(shù)的操作任務(wù)描述設(shè)計(jì)彩燈模擬控制器,P1口外接8只發(fā)光二極管模擬彩燈,使用C51編寫C51程序,控制8個(gè)彩燈亮滅循環(huán)任務(wù)載體計(jì)算機(jī)、單片機(jī)仿真器、實(shí)驗(yàn)箱、學(xué)習(xí)板相關(guān)知識C51單片機(jī)程序設(shè)計(jì)基礎(chǔ)表2-1彩燈循環(huán)控制器設(shè)計(jì)1工作任務(wù)要點(diǎn)

*《單片機(jī)應(yīng)用技術(shù)》課件制作組2.1.1硬件電路及工作原理

1.硬件電路*《單片機(jī)應(yīng)用技術(shù)》課件制作組2.1.1硬件電路及工作原理

2.工作原理發(fā)光二極管是共陰極接法,當(dāng)P1口某位輸出邏輯“1”時(shí)點(diǎn)亮該位發(fā)光二極管,反之輸出為“0”時(shí)發(fā)光二極管熄滅。用程序控制P1口各位的電平狀態(tài),可以控制8只LED的不同亮滅效果。*《單片機(jī)應(yīng)用技術(shù)》課件制作組2.1.2任務(wù)內(nèi)容

按圖2-1連接好硬件或在仿真環(huán)境(Proteus)中搭建仿真環(huán)境。1.硬件連接2.彩燈循環(huán)控制器控制程序#include“reg51.h”

delay(unsignedintx);∥聲明函數(shù)voidmain(void){unsignedchari;∥定義循環(huán)變量P1=0x01;while(1){for(i=0;i<8;i++)∥移位

{P1=P1<<1;

∥P1口數(shù)據(jù)左移delay(1000);

∥延時(shí)}P1=0x01;}}voiddelay(unsignedintx){while(x)x--;}*《單片機(jī)應(yīng)用技術(shù)》課件制作組2.1.3任務(wù)分析

C51是基于標(biāo)準(zhǔn)C語言下的一種嵌入式MCS-51單片機(jī)編程語言,其繼承了標(biāo)準(zhǔn)C語言的所有特點(diǎn),通過擴(kuò)充,C51可以訪問MCS-51單片機(jī)中的所有寄存器、I/O口引腳及所有可位尋址的控制位,以實(shí)現(xiàn)位操作。1.C51單片機(jī)編程語言2.C51程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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

提交評論