版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)應(yīng)用與接口技術(shù)主講: 博客:目錄緒 論0180C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立02認(rèn)識(shí)80C51單片機(jī)的I/O口0480C51單片機(jī)的中斷系統(tǒng)05 80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立(買實(shí)驗(yàn)板)03目錄80C51單片機(jī)的指令系統(tǒng)0780C51程序設(shè)計(jì)初步(略講)08模 擬 量 轉(zhuǎn) 換 接 口10顯 示 接 口0980C51單片機(jī)的定時(shí)器/計(jì)數(shù)器06目錄實(shí)時(shí)鐘芯片及其應(yīng)用(若沒時(shí)間不講)13LED點(diǎn)陣屏及其應(yīng)用141112液晶顯示屏及其應(yīng)用15鍵 盤 接 口11I2C串行接口總線12單片機(jī)應(yīng)用與接口技術(shù)緒 論有關(guān)本課程學(xué)習(xí)的幾點(diǎn)建議本課程是一門實(shí)踐性、應(yīng)用性很強(qiáng)的學(xué)科僅僅聽懂還不夠,重在培養(yǎng)
2、動(dòng)手能力硬件/軟件同樣重要、不可偏廢 硬件是骨架,軟件是靈魂本課程的前期基礎(chǔ)課程是數(shù)字電路與模擬電路理這方面知識(shí)掌握得不夠好的請(qǐng)自己補(bǔ)上預(yù)習(xí)、聽課、復(fù)習(xí)、作業(yè)、實(shí)驗(yàn)環(huán)環(huán)都重要用科學(xué)的方法學(xué)習(xí)單片機(jī)技術(shù)的應(yīng)用遍布國(guó)民經(jīng)濟(jì)與人民生活的各個(gè)領(lǐng)域請(qǐng)欣賞師兄師姐們的作品集實(shí)驗(yàn)板網(wǎng)店: 單片機(jī)視頻教程 打開網(wǎng)址即可直接觀看 速度還不錯(cuò).地址: 緒 論單片機(jī)簡(jiǎn)介“單片機(jī)”名稱的由來(lái)從計(jì)算機(jī)主板看起運(yùn)算器控制器存儲(chǔ)器輸入/輸出接口總線單片機(jī)將這些部分集中到一塊芯片中1、買還是做開發(fā)板?2、買什么樣的開發(fā)板3、筆記本電腦調(diào)查4、USB轉(zhuǎn)串口緒 論單片機(jī)簡(jiǎn)介 五部分組成:不論計(jì)算機(jī)復(fù)雜程度如何,它總是由運(yùn)算器,控
3、制器,存儲(chǔ)器,輸入/輸出接口,總線這五個(gè)部分組成通常運(yùn)算器和控制器被做成一塊芯片,也就是CPU在計(jì)算機(jī)主板上,內(nèi)存條和BIOS芯片是存儲(chǔ)器,鍵盤、鼠標(biāo)接口和25針打印機(jī)接口就是輸入/輸出設(shè)備,而總線則被設(shè)計(jì)在主板上,用于主板上各個(gè)部件之間的電氣連接在一些應(yīng)用場(chǎng)合,人們不需要計(jì)算機(jī)完成十分復(fù)雜的運(yùn)算,但卻希望計(jì)算機(jī)小巧,可靠,價(jià)格低。人們就把組成計(jì)算機(jī)的這5個(gè)部分全部集成到一塊芯片上,也說(shuō)是一塊芯片就能構(gòu)成一個(gè)獨(dú)立的計(jì)算機(jī),在當(dāng)時(shí)的技術(shù)條件下,這是一件了不起的事情,于是人們就用這個(gè)特征來(lái)為之命名,稱為“單片機(jī)”,這就是“單片機(jī)”名稱的由來(lái)緒 論常見的單片機(jī)品種180C51及其兼容系列(1)80C
4、51基本系列(2)80C51兼容系列89S52、STC89系列(3)80C51擴(kuò)展系列STC12系列、菲利普LPC系列、C8051F系列緒 論計(jì)算機(jī)中數(shù)據(jù)的表示按進(jìn)位的原則進(jìn)行計(jì)數(shù),稱為進(jìn)位計(jì)數(shù)制,簡(jiǎn)稱“數(shù)制”。數(shù)制有多種,在計(jì)算機(jī)中常使用的有十進(jìn)制、二進(jìn)制和十六進(jìn)制1十進(jìn)制數(shù)按“逢十進(jìn)一”的原則進(jìn)行計(jì)數(shù),稱為十進(jìn)制數(shù)。D3D2D1D0=D3103+D2102+D1101 +D01002二進(jìn)制數(shù)按“逢二進(jìn)一”的原則進(jìn)行計(jì)數(shù),稱為二進(jìn)制數(shù)。B3B2B1B0=B323+B222+B121 +B020十六進(jìn)制數(shù)按“逢十六進(jìn)一”的原則進(jìn)行計(jì)數(shù),稱為十六進(jìn)制數(shù)。H3H2H1H0=H3163+H2162+
5、H1161 +H0160緒 論二進(jìn)制的算術(shù)運(yùn)算加法規(guī)則0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10乘法規(guī)則0 0 = 00 1 = 01 0 = 01 1 = 1求11011+1101的值1 1 0 1 1 + 1 1 0 1 1 0 1 0 0 0求11011101的值 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1緒 論數(shù)制間的轉(zhuǎn)換1十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)除二取余法:即把待轉(zhuǎn)換的十進(jìn)制不斷地用2除,一直到商是0為止,然后將所得的余數(shù)由下而上排列即可。2二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)位權(quán)法:即把
6、各非十進(jìn)制數(shù)按權(quán)展開,然后求和。3二進(jìn)制轉(zhuǎn)換為十六進(jìn)制從右向左,每四位二進(jìn)制化為一位十六進(jìn)制,不足部分用零補(bǔ)齊。4十六進(jìn)制轉(zhuǎn)換為二進(jìn)制一位十六進(jìn)制數(shù)化為四位二進(jìn)制數(shù)。邏輯數(shù)據(jù)的表示每個(gè)邏輯變量或邏輯運(yùn)算的結(jié)果,產(chǎn)生邏輯值該邏輯值僅取“真”或“假”兩個(gè)值。判斷成立為“真”,判斷不成立為“假”。在計(jì)算機(jī)內(nèi)常用0和1表示這兩個(gè)邏輯值,一般用0表示假,1表示真。緒 論k1k2k1k2燈燈開關(guān)通:1,斷:0燈亮:1,滅:0開關(guān)通:1,斷:0燈亮:1,滅:0k1k2k1k2燈燈開關(guān)通:1,斷:0燈亮:1,滅:0k燈燈k緒 論計(jì)算機(jī)中常用的基本術(shù)語(yǔ)兩盞燈一共能夠呈現(xiàn)四種狀態(tài),即“00”、“01”、“10”和
7、“11”,而二進(jìn)制數(shù)00、01、10、11相當(dāng)于十進(jìn)制數(shù)的0、1、2、3,因此,燈的狀態(tài)可以用數(shù)學(xué)方法來(lái)描述,反之,數(shù)值也可以用電子元件的不同狀態(tài)的組合來(lái)表示。位(bit)的定義是:位是計(jì)算機(jī)中所能表示的最小數(shù)據(jù)單位。相鄰8位二進(jìn)制碼稱之為一個(gè)字節(jié)(byte),用B表示。字是計(jì)算機(jī)內(nèi)部進(jìn)行數(shù)據(jù)處理的基本單位。它由若干位二進(jìn)制碼組成,通常與計(jì)算機(jī)內(nèi)部的寄存器、運(yùn)算器、數(shù)據(jù)總線的寬度一致,每個(gè)字所包含的位數(shù)稱為字長(zhǎng)。緒 論存儲(chǔ)器在計(jì)算機(jī)中存儲(chǔ)器用來(lái)存放數(shù)據(jù)存儲(chǔ)器中有大量的存儲(chǔ)單元每個(gè)存儲(chǔ)單元都可以有“0”和“1”兩種狀態(tài)存儲(chǔ)器是以“0”和“1”的組合來(lái)表示數(shù)據(jù),而不是放入的如同十進(jìn)制1、2、3、4
8、這種形式的數(shù)據(jù)。緒 論半導(dǎo)體存儲(chǔ)器的分類1只讀存儲(chǔ)器只讀存儲(chǔ)器又稱為ROM,其中的內(nèi)容在操作運(yùn)行過(guò)程中只能被CPU讀出,而不能寫入或更新類似于印好的書,只能讀書里面的內(nèi)容,不可以隨意更改書里面的內(nèi)容。2隨機(jī)存取存儲(chǔ)器隨機(jī)存取存儲(chǔ)器又稱為RAM,其中的內(nèi)容可以在工作時(shí)隨機(jī)讀出和存入隨機(jī)存儲(chǔ)器的內(nèi)容可以隨時(shí)改寫,所以它適用于存放一些變量,運(yùn)算的中間結(jié)果,現(xiàn)場(chǎng)采集的數(shù)據(jù)等等。3可現(xiàn)場(chǎng)改寫的非易失存儲(chǔ)器快擦寫FLASH存儲(chǔ)器、新型非易失靜態(tài)存儲(chǔ)器NVSRAM和鐵電存儲(chǔ)器FRAM等。這些存儲(chǔ)器的共同特點(diǎn)是:從原理上看,它們屬于ROM型存儲(chǔ)器,但是從功能上看,它們又可以隨時(shí)改寫信息,因而作用又接近于RAM
9、??偨Y(jié)及預(yù)習(xí)內(nèi)容本章我們學(xué)習(xí)了 單片機(jī)的由來(lái)及品種數(shù)制及其轉(zhuǎn)換(更詳細(xì)內(nèi)容請(qǐng)看補(bǔ)充材料)計(jì)算機(jī)中常用術(shù)語(yǔ)存儲(chǔ)器及其分類 下次課預(yù)習(xí)內(nèi)容學(xué)習(xí)Keil軟件的安裝及使用學(xué)習(xí)Proteus軟件的安裝及使用P12課后習(xí)題1、2、3單片機(jī)應(yīng)用與接口技術(shù)80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立Keil軟件簡(jiǎn)介、安裝與使用 Keil軟件簡(jiǎn)介Keil軟件提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境VisionIDE,將這些部分組合在一起。Vision IDEC51編譯器A51匯編器安裝Keil軟件可以從Keil公司及其
10、中國(guó)代理處購(gòu)得Keil軟件。如果想試用,可以到Keil公司的網(wǎng)站()下載Eval版本。下載得到的Keil軟件是一個(gè)壓縮包,解壓后雙擊其中的Setup.exe即可安裝。如果不是購(gòu)買的商品軟件,請(qǐng)選擇Eval Version安裝。80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立使用Keil軟件Keil軟件界面80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立使用Keil軟件1源文件的建立Vision內(nèi)集成有一個(gè)文本編緝器,可以在Vision集成環(huán)境中直接進(jìn)行源程序的輸入,該文本編緝器支持對(duì)匯編或C語(yǔ)言中關(guān)鍵字變色顯示。2工程的建立在項(xiàng)目開發(fā)中,并不是僅有一個(gè)源程序就行了,還要選擇CPU,確定編譯/匯編、鏈接的參數(shù),指定調(diào)試的方
11、式等。為管理和使用方便,Keil使用工程(Project)將所需設(shè)置的參數(shù)和所有文件都加在一個(gè)工程中,只能對(duì)工程而不能對(duì)單一的源程序進(jìn)行編譯(匯編)和鏈接等操作3工程的設(shè)置工程建立好以后,還要對(duì)工程進(jìn)行進(jìn)一步的設(shè)置,以滿足每個(gè)工程的個(gè)性化要求4編譯、鏈接在設(shè)置好工程后,即可進(jìn)行編譯、鏈接,以獲得可以執(zhí)行的代碼。Vision2 操作菜單(2) 編輯菜單和編輯器命令(Edit)(3) 選擇文本命令在Vision2 中,您可以按下Shift 鍵和相應(yīng)的光標(biāo)鍵來(lái)選擇文字。例如,Ctrl+是將光標(biāo)移到下一個(gè)單詞,而Ctrl+Shift+是選中從光標(biāo)的位置到下一個(gè)單詞開始前的文字,您也可以用鼠標(biāo)選擇文字。
12、Keil學(xué)習(xí)補(bǔ)充材料(9) 軟件版本控制系統(tǒng)菜單(SVCS)配置和添加軟件版本控制系統(tǒng)(Software Version Control System)命令。Keil軟件補(bǔ)充學(xué)習(xí)資料keil入門.PDF(簡(jiǎn)單實(shí)用)Keil_C編譯器常見警告與錯(cuò)誤信息的解決方法.pdfKeil實(shí)例教程(一).pdf(周堅(jiān)編)Keil實(shí)例教程(二).pdfKeil實(shí)例教程(三).pdfKeil實(shí)例教程(四).pdfKeil實(shí)例教程(五).pdfKeil-C51開發(fā)教程-周立功公司.pdf80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立PROTEUS軟件簡(jiǎn)介、安裝與使用Proteus ISIS是英國(guó)Labcenter公司開發(fā)的電
13、路分析與實(shí)物仿真軟件,它的Logo界面如圖1-13所示。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析各種模擬器件和集成電路。Proteus軟件簡(jiǎn)介具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真功能;有各種虛擬儀器;支持主流單片機(jī)系統(tǒng)的仿真。提供軟件調(diào)試功能。具有強(qiáng)大的原理圖繪制功能;具有印刷線路板繪制功能。80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立使用Proteus軟件安裝好Proteus軟件后,單擊桌面“開始所有程序Proteus 7 Professional”打開Proteus軟件。單擊器件選擇按鈕(如右圖),選擇所需用的器件(如下圖)Proteus ISIS的工作界面 8
14、0C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立選好所需元件在圖紙上放好元件并用導(dǎo)線連接畫出如下所示電路圖使用Proteus軟件80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立使用Proteus軟件雙擊單片機(jī)芯片U1,打開如右圖所示對(duì)話框單擊Program File,打開如下所示對(duì)話框,找到目標(biāo)文件80C51單片機(jī)軟件實(shí)驗(yàn)環(huán)境的建立使用Proteus軟件單擊 運(yùn)行可以觀察到運(yùn)行的效果單片機(jī)應(yīng)用與接口技術(shù)80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立學(xué)習(xí)單片機(jī)離不開實(shí)踐操作,因此準(zhǔn)備一套硬件實(shí)驗(yàn)器材很有必要。作為一本教材而言,如果使用某一種特定的實(shí)驗(yàn)器材難以兼顧一般性。為此,本書作了多種安排。使用萬(wàn)能板
15、自行制作作者提供PCB文件,讀者自行制作印刷線路板使用作者提供的成品實(shí)驗(yàn)電路板方案一、使用萬(wàn)能板自行制作使用主芯片為STC89C52來(lái)自制一塊簡(jiǎn)單的實(shí)驗(yàn)板該芯片與80C51兼容,并具有能使串行口直接下載代碼的特點(diǎn),因而不需要專門的編程器,這使得使本實(shí)驗(yàn)板來(lái)做實(shí)驗(yàn)的成本很低80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立方案一、使用萬(wàn)能板自行制作電路原理圖80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立方案一、使用萬(wàn)能板自行制作電路板的制作先安排一下板上各元件的位置,然后根據(jù)元件的高度由低到高分別安裝,集成電路的位置安裝集成電路插座。需要特別說(shuō)明的是,D1D8不要安裝成一列,而是安裝成一圈,如下圖所示,這是為以后的課題做好
16、準(zhǔn)備代碼的寫入將代碼寫入單片機(jī)芯片,也稱為芯片燒寫、芯片編程、下載程序等芯片燒寫需要用到一個(gè)專用軟件,該軟件可以免費(fèi)下載。下載的地址為:,80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立方案一、使用萬(wàn)能板自行制作代碼的寫入單擊“OpenFile/打開文件”按鈕,開啟“打開文件”對(duì)話框打開文件后,還可以進(jìn)行一些設(shè)置,如下時(shí)所用波特率、是否倍速工作、振蕩電路中的放大器是否半功率增益工作等,這些設(shè)置暫時(shí)都可取默認(rèn)值。確認(rèn)此時(shí)電路板尚未通電,然后單擊“Download/下載”按鈕,下載軟件開始準(zhǔn)備與單片機(jī)通信給電路板通電,即將代碼寫入芯片中80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立讓實(shí)驗(yàn)電路板具有仿真功能仿真的概念仿真是一
17、種調(diào)試方案,它讓單片機(jī)以單步或者過(guò)程單步的方式來(lái)執(zhí)行程序每執(zhí)行一行程序,觀察該程序執(zhí)行完畢后產(chǎn)生的效果,并與寫該行指令時(shí)的預(yù)期效果比較,如果一致,說(shuō)明程序正確,如果不同,說(shuō)明程序出現(xiàn)問(wèn)題。仿真芯片制作制作仿真芯片需要用到一塊特定的芯片,即SST公司的SST89E554RC芯片硬件制作:取下任務(wù)1中所制作實(shí)驗(yàn)板中的STC89C52芯片,插入SST89E554RC芯片,即完成了硬件制作工作。軟件操作:需要使用軟件將一些代碼寫入該芯片,這里所使用的軟件是SST EASYISP,這個(gè)軟件可以在下載80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立仿真芯片的制作運(yùn)行SST EasyIsp軟件,如右圖所示單擊Detect
18、Chip/RS232菜單項(xiàng),選擇第一項(xiàng)Dectect Target MCU for firmware1.1 F and RS232 config,出現(xiàn)如下圖所示對(duì)話框80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立仿真芯片的制作按提示一步一步執(zhí)行,如果一切順利,可見下圖所示界面。單擊菜單“SoftICE”,即可生成仿真芯片80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立方案二、認(rèn)識(shí)和使用成品實(shí)驗(yàn)板當(dāng)需要擴(kuò)展數(shù)碼管、液晶顯示屏等連線較多的部分時(shí),飛線很多,制作不易。為此,作者設(shè)計(jì)與制作了一塊實(shí)驗(yàn)板,該板使用了雙面線路板使用這塊實(shí)驗(yàn)板可以進(jìn)行流水燈、人機(jī)界面程序設(shè)計(jì)、音響、中斷、計(jì)數(shù)器等基本編程練習(xí),還可以學(xué)習(xí)I2C接口芯片
19、使用、SPI接口芯片使用、字符型液晶接口技術(shù)、與PC機(jī)進(jìn)行串行通訊等目前較為流行的技術(shù)80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立方案二、認(rèn)識(shí)和使用成品實(shí)驗(yàn)板硬件結(jié)構(gòu)8個(gè)發(fā)光二極管 6位數(shù)碼管RS232串行接口4個(gè)按鍵開關(guān)2種計(jì)數(shù)信號(hào)源音響接口AT24C芯片插座實(shí)時(shí)鐘PCF8563芯片多功能芯片X5045字符型液晶接口80C51單片機(jī)硬件實(shí)驗(yàn)環(huán)境的建立方案二、認(rèn)識(shí)和使用成品實(shí)驗(yàn)板實(shí)驗(yàn)電路板的基本使用方法電源提供:本板需外接電源,可以通過(guò)插座J5向?qū)嶒?yàn)板供電,供電電壓在712V之間,電流不小于300mA;復(fù)位選擇:本板提供了2種復(fù)位電路:RC復(fù)位與X5045復(fù)位,通過(guò)JP1選擇;計(jì)數(shù)源選擇:第一個(gè)計(jì)數(shù)源由
20、555電路提供,第二個(gè)由PCF8563提供,通過(guò)JP2選擇;音響電路工作選擇:JP5用于選擇P3.2工作于輸出方式還是輸入方式,當(dāng)需要將P3.2作為驅(qū)動(dòng)音響電路工作的輸出端時(shí),應(yīng)該短路子插于JP5的下方;字符型LCD實(shí)驗(yàn):做LCD實(shí)驗(yàn)時(shí),需斷開數(shù)碼管的供電電路。JP4用于選擇顯示器;ISP功能的使用:撥去JP1插座上的短路子,使復(fù)位端懸空。標(biāo)號(hào)為J2的插座為ISP下載插座,將下載電纜與實(shí)驗(yàn)板正確連接,本插座采用ATMEL公司提供標(biāo)準(zhǔn)接頭單片機(jī)應(yīng)用與接口技術(shù)認(rèn)識(shí)80C51單片機(jī)I/O口認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)控制LED如右圖所示是用單片機(jī)控制LED的基本連線圖;單片機(jī)工作時(shí)至少需要用
21、到Vcc、GND、Rst、Xtal2、Xtal1和EA等6個(gè)腳;要用80C51單片機(jī)來(lái)控制LED,這個(gè)LED必須要和80C51單片機(jī)的某個(gè)引腳相連,80C51單片機(jī)上除了基本連線必須用到的6個(gè)引腳外,還有34個(gè)引腳,這里把LED的陰極和80C51單片機(jī)的第1腳相連按照右圖的接法,當(dāng)80C51單片機(jī)的第1腳是高電平時(shí),LED1不亮,第1腳是低電平時(shí),LED1亮。為此80C51的1腳要能夠控制認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)控制LED要能夠讓P10引腳按要求輸出 “高”或“低”電平,要用80C51單片機(jī)能夠“懂”的方式向80C51單片機(jī)發(fā)布命令,這些80C51單片機(jī)能“懂”的命令稱之為該單片機(jī)
22、的指令。要讓單片機(jī)聽我們(單片機(jī)程序編寫者)的指揮,我們(單片機(jī)程序編寫者)自己必須要先學(xué)習(xí)單片機(jī)的指令。讓一個(gè)引腳輸出高電平的指令是SETB,讓一個(gè)引腳輸出低電平的指令是CLR。要P10引腳輸出高電平,可以用這樣的指令:SETB P10要讓P10引腳輸出低電平,可以用這樣的指令:CLR P10認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)控制LED用Proteus仿真來(lái)實(shí)現(xiàn)CPU選用AT89C51圖中CPU的復(fù)位電路、電源電路、晶振電路等均不需要畫。雙擊U1,選擇Programmer。單擊“”運(yùn)行,可以觀察到發(fā)光管D1被點(diǎn)亮。認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)發(fā)出聲音當(dāng)所需發(fā)出的聲音不太復(fù)雜時(shí),使用
23、單片機(jī)自身的內(nèi)部資源加上簡(jiǎn)單的硬件即可實(shí)現(xiàn)。單片機(jī)控制揚(yáng)聲器發(fā)聲的方法讓P1.0引腳送出一個(gè)1000HZ的交變信號(hào),就是要求P1.0引腳不斷變?yōu)楦唠娖胶偷碗娖?,高低電平的時(shí)間可各保持500us。如果第一條指令是讓P1.0引腳變?yōu)楦唠娖?,第二條指令是讓P1.0引腳變?yōu)榈碗娖侥敲匆_(dá)到送出交變信號(hào)的目的,需要在執(zhí)行完第2條指令以后再回去執(zhí)行第1條指令。此外,還要考慮時(shí)間的因素認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)發(fā)出聲音用Proteus仿真來(lái)實(shí)現(xiàn)AT89C51為主芯片LS1是揚(yáng)聲器數(shù)字示器用來(lái)觀察波形認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)發(fā)出聲音延時(shí)工作過(guò)程的分析單片機(jī)的片內(nèi)RAM與工作寄存器為了理解
24、延時(shí)程序的工作原理,首先要了解延時(shí)程序中出現(xiàn)的一些符號(hào)。80C51單片機(jī)內(nèi)部一共有128個(gè)數(shù)據(jù)存儲(chǔ)器,可作為數(shù)據(jù)緩沖、堆棧、工作寄存器等用途。這部分?jǐn)?shù)據(jù)存儲(chǔ)器具有十分重要的作用,幾乎任何一個(gè)實(shí)用的程序都必須要用到這一部分資源來(lái)編程延時(shí)程序分析MOV指令的意思是傳遞數(shù)據(jù)。指令MOV R7,#2中,R7是接受者,2是被傳遞的數(shù),這一行指令的意義是:將數(shù)據(jù)2送到R7中去DJNZ指令后面跟著的兩個(gè)符號(hào),一個(gè)是R6,一個(gè)是D2,R6是寄存器, D2是標(biāo)號(hào),DJNZ指令的執(zhí)行過(guò)程是:將其后面的第一個(gè)參數(shù)中的值減1,然后看這個(gè)值是否等于0,如果等于0,往下執(zhí)行,如果不等于0,則轉(zhuǎn)移到第二個(gè)參數(shù)所指定的位置去
25、執(zhí)行最終的結(jié)果是“DJNZ R6,D2”這條指令將被執(zhí)行2502=500次,從而實(shí)現(xiàn)延時(shí)認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)發(fā)出聲音延時(shí)時(shí)間的計(jì)算機(jī)器周期:在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過(guò)程劃分為若干個(gè)階段,每一階段完成一項(xiàng)工作。例如,取指令、存儲(chǔ)器讀、存儲(chǔ)器寫等,這每一項(xiàng)工作為一個(gè)基本操作。完成一個(gè)基本操作所需的時(shí)間稱之為一個(gè)機(jī)器周期。振蕩周期:80C51單片機(jī)的晶體振蕩器的周期,它等于振蕩器頻率的倒數(shù)。指令周期:執(zhí)行一條指令的時(shí)間,用機(jī)器周期數(shù)來(lái)表示。每一條指令需用的機(jī)器周期數(shù)永遠(yuǎn)是固定的,而且每一條指令所需的機(jī)器周期數(shù)可以通過(guò)表格查到假設(shè)所用晶振為12M,一個(gè)機(jī)器周期是1微
26、秒。而DJNZ指令是雙周期指令,所以執(zhí)行一次需要2微秒。一共執(zhí)行500次,即1000微秒,也就是1毫秒。認(rèn)識(shí)80C51單片機(jī)I/O口用指拔開關(guān)設(shè)置音調(diào)音名與頻率的關(guān)系要求根據(jù)指拔開關(guān)的設(shè)置來(lái)發(fā)出不同音名的聲音,表3-4所示是音名、頻率、延時(shí)時(shí)間及延時(shí)常數(shù)的對(duì)應(yīng)關(guān)系。表3-5所示是系統(tǒng)晶振為12M,采用例3-2可的延時(shí)程序時(shí),延時(shí)時(shí)間與延時(shí)常數(shù)的對(duì)應(yīng)關(guān)系。認(rèn)識(shí)80C51單片機(jī)I/O口用指拔開關(guān)設(shè)置音調(diào)用Proteus仿真來(lái)實(shí)現(xiàn)AT89C51為CPU8位拔動(dòng)開關(guān)與P2端口相連P1.0作為輸出端認(rèn)識(shí)80C51單片機(jī)I/O口單片機(jī)內(nèi)部的并行I/O口并行I/O口80C51單片機(jī)共有4個(gè)8位的并行雙向I/
27、O口,共32個(gè)引腳。這4個(gè)并行I/O口分別被記作P0、P1、P2和P3,每個(gè)并行I/O口的結(jié)構(gòu)和功能并不全相同P0口:P0口是一個(gè)多功能口,除了作為通用I/O口外,還可以作為地址/數(shù)據(jù)總線,在單片機(jī)進(jìn)行系統(tǒng)時(shí)用作系統(tǒng)總線。P1口:P1口作為通用I/O口使用。P2口:P2口是一個(gè)多功能口,除了作為通用I/O口外,還可以作為高8位的地址線,用于系統(tǒng)的擴(kuò)展。P3口:P3口是一個(gè)多功能口,除了作為通用I/O口外,每一根引腳還有第二種功能認(rèn)識(shí)80C51單片機(jī)I/O口單片機(jī)內(nèi)部的并行I/O口 (a) P1口中一位的結(jié)構(gòu) (b) P0口中一位的結(jié)構(gòu)圖3-1051單片機(jī)I/O口的兩種結(jié)構(gòu)認(rèn)識(shí)80C51單片機(jī)I
28、/O口用單片機(jī)制作風(fēng)火輪玩具風(fēng)火輪是一個(gè)小玩具,簡(jiǎn)單地說(shuō)就是讓若干個(gè)燈圍成圓形,當(dāng)燈以不同的速度、方式點(diǎn)亮?xí)r,可以變化出各種花樣。用Proteus仿真來(lái)實(shí)現(xiàn)AT89C51為CPUP1口接8個(gè)LED,環(huán)狀排列認(rèn)識(shí)80C51單片機(jī)I/O口用單片機(jī)制作風(fēng)火輪玩具用硬件仿真來(lái)實(shí)現(xiàn)選擇Keil Monitor-51 Driver為仿真模式,如右圖所示單擊Setting打開設(shè)置對(duì)話框,選擇端口與波持率,如下圖所示設(shè)置完成后退出按CTRL+F5進(jìn)入調(diào)試認(rèn)識(shí)80C51單片機(jī)I/O口單片機(jī)的內(nèi)部結(jié)構(gòu)一個(gè)80C51單片機(jī)內(nèi)部有以下一些功能部件:一個(gè)8位CPU用來(lái)運(yùn)算、控制。片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM,對(duì)于51型單片機(jī)而
29、言,容量是128字節(jié)。片內(nèi)程序存儲(chǔ)器ROM,對(duì)于89S51單片機(jī)而言,容量是4K(4096個(gè)單元)。四個(gè)8位的并行I/O口,分別是P0、P1、P2、P3。2個(gè)16位的定時(shí)/計(jì)數(shù)器。中斷結(jié)構(gòu)。一個(gè)可編程全雙工通用異步接收發(fā)送器UART。一個(gè)片內(nèi)振蕩器用于時(shí)鐘的產(chǎn)生??梢詫ぶ?4KB外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的總結(jié)擴(kuò)展結(jié)構(gòu)認(rèn)識(shí)80C51單片機(jī)I/O口認(rèn)識(shí)80C51單片機(jī)I/O口80C51 CPU的內(nèi)部結(jié)構(gòu)與功能運(yùn)算器用以進(jìn)行算術(shù)和邏輯運(yùn)算B8位寄存器可作為通用寄存器用,但在乘法或除法指令中必須用到該寄存器PSW程序狀態(tài)字用來(lái)存放當(dāng)前有關(guān)指令執(zhí)行結(jié)果的狀態(tài)標(biāo)志由此可以了解CPU的當(dāng)前狀態(tài),并作出
30、相應(yīng)的處理。數(shù)據(jù)指針DPTR由兩個(gè)8位的寄存器DPH和DPL組成的16位的寄存器SP堆棧指針在單片機(jī)中,也可以在RAM中構(gòu)造這樣一個(gè)區(qū)域,用來(lái)存放數(shù)據(jù),這個(gè)區(qū)域存放數(shù)據(jù)的規(guī)則就是“先進(jìn)后出,后進(jìn)先出”,稱之為“堆?!?。80C51中堆棧的位置并不固定,可以由用戶來(lái)指定用戶通過(guò)設(shè)置SP來(lái)設(shè)定堆棧位置單片機(jī)應(yīng)用與接口技術(shù)80C51單片機(jī)的中斷系統(tǒng)80C51單片機(jī)的中斷系統(tǒng)緊急停車控制器在使用單片機(jī)控制的機(jī)器設(shè)備中,經(jīng)常會(huì)有這樣的要求,即一旦有緊急事故發(fā)生,立即停止機(jī)器的運(yùn)行,中斷的概念所謂中斷,是指正常的工作過(guò)程被其它事件打斷,使得這一事件可以得到及時(shí)的處理,處理完后可以繼續(xù)做原來(lái)的工作。引起中斷的
31、事件可以引起中斷的事件稱之為中斷源80C51單片機(jī)中一共有5個(gè)可以引起中斷的事件:兩個(gè)外部中斷,兩個(gè)定時(shí)/計(jì)數(shù)器中斷,一個(gè)串行口中斷中斷的嵌套與優(yōu)先級(jí)處理單片機(jī)工作中有優(yōu)先級(jí)的問(wèn)題。兩個(gè)中斷同時(shí)發(fā)生發(fā)何響應(yīng)?一個(gè)中斷發(fā)生時(shí)另一個(gè)中斷又產(chǎn)生又如何響應(yīng)?中斷的響應(yīng)過(guò)程中斷產(chǎn)生后必須按一定順序依次處理80C51單片機(jī)的中斷系統(tǒng)緊急停車控制器題目:由P1.0引腳驅(qū)動(dòng)的電機(jī)旋轉(zhuǎn),當(dāng) P3.2引腳上出現(xiàn)故障信號(hào)時(shí),立即停止電機(jī)的旋轉(zhuǎn)。故障信號(hào)使用按鍵來(lái)模擬,無(wú)故障時(shí),P3.2引腳為高電平,當(dāng)按下按鍵后,P3.2引腳為低電平,模擬有故障信號(hào)輸入。80C51單片機(jī)的中斷系統(tǒng)80C51的中斷結(jié)構(gòu)5個(gè)中斷源總中斷
32、允許EA每個(gè)中斷各自允許位中斷優(yōu)先級(jí)分為高、低優(yōu)選級(jí)內(nèi)部自然優(yōu)先級(jí)中斷入口地址0003 外中斷0000B 定時(shí)器T00013 外中斷1001B 定時(shí)器T10023 串行口80C51單片機(jī)的中斷系統(tǒng)通過(guò)外部信號(hào)來(lái)改變風(fēng)火輪的轉(zhuǎn)速通過(guò)一個(gè)外部信號(hào)來(lái)控制風(fēng)火輪的轉(zhuǎn)速,只要改變外部信號(hào)的頻率,即可直觀地觀察風(fēng)火輪在各種轉(zhuǎn)速下的運(yùn)行效果,從而為完善和改進(jìn)這一玩具提供參考任務(wù)分析要使用外部信號(hào)來(lái)改變風(fēng)火輪的轉(zhuǎn)速,就要提供一個(gè)適當(dāng)?shù)耐獠啃盘?hào),這種信號(hào)應(yīng)該是一個(gè)頻率可變的矩形波。找一個(gè)機(jī)械鼠標(biāo),拆開后可見有內(nèi)置的光柵,將其置于紅外發(fā)射和接收管之間,旋轉(zhuǎn)光柵,能產(chǎn)生一系列脈沖信號(hào)。80C51單片機(jī)的中斷系統(tǒng)通過(guò)
33、外部信號(hào)來(lái)改變風(fēng)火輪的轉(zhuǎn)速用Proteus仿真來(lái)實(shí)現(xiàn)89C51為CPU加入信號(hào)發(fā)生器產(chǎn)生方波8個(gè)發(fā)光二極管環(huán)狀排列80C51單片機(jī)的中斷系統(tǒng)中斷響應(yīng)分析中斷響應(yīng)的條件單片機(jī)“感知”中斷的方法是不斷地檢測(cè)引腳或標(biāo)志位,當(dāng)這些引腳或標(biāo)志位變?yōu)楦唠娖交虻碗娖剑ú煌闹袛嘣从胁煌囊螅r(shí),就認(rèn)為是有中斷產(chǎn)生。80C51單片機(jī)的CPU在每個(gè)機(jī)器周期采樣各個(gè)中斷源的中斷請(qǐng)求信號(hào),并將它們鎖存到寄存器TCON或SCON中的相應(yīng)位。在出現(xiàn)以下三種情況之一時(shí),CPU將封鎖對(duì)中斷的響應(yīng):CPU正在處理同一級(jí)或高一級(jí)的中斷?,F(xiàn)行的機(jī)器周期不是當(dāng)前正在執(zhí)行指令的最后一個(gè)機(jī)器周期當(dāng)前正在執(zhí)行的指令是返回(RETI)或
34、訪問(wèn)IE、IP寄存器的指令(在此情況下,CPU至少再執(zhí)行完一條指令后才響應(yīng)中斷)。80C51單片機(jī)的中斷系統(tǒng)中斷響應(yīng)分析中斷響應(yīng)過(guò)程80C51一旦響應(yīng)中斷,首先置位相應(yīng)的優(yōu)先級(jí)中斷觸發(fā)器,再由硬件執(zhí)行一條調(diào)用指令,將當(dāng)前PC值送入堆棧,保護(hù)斷點(diǎn),然后將對(duì)應(yīng)中斷的入口地址裝入PC,使程序轉(zhuǎn)向該中斷的服務(wù)程序入口地址單元,執(zhí)行相應(yīng)的中斷服務(wù)程序在執(zhí)行到中斷服務(wù)程序最后一條返回指令(RETI)時(shí),清除在中斷響應(yīng)時(shí)置位的優(yōu)先有效觸發(fā)器,然后將保存在堆棧中的斷點(diǎn)地址返回給PC,從而返回主程序中斷的響應(yīng)時(shí)間在系統(tǒng)中只有1個(gè)中斷源申請(qǐng)中斷時(shí),中斷響應(yīng)的時(shí)間為38個(gè)周期如果有其它的中斷存在,響應(yīng)的時(shí)間就不能確
35、定了中斷控制通過(guò)對(duì)IE、IP寄存器的數(shù)據(jù)來(lái)控制中斷允許、優(yōu)選級(jí)等單片機(jī)應(yīng)用與接口技術(shù)80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器包裝流水線中的計(jì)數(shù)器定時(shí)/計(jì)數(shù)的基本知識(shí)計(jì)數(shù)一般是指對(duì)事件的統(tǒng)計(jì),通常以“1”為單位進(jìn)行累加。計(jì)數(shù)器的容量計(jì)數(shù)用的容器(計(jì)數(shù)器)總有一定的容量,如車輛的里程表其位數(shù)是有限的計(jì)數(shù)器的溢出當(dāng)計(jì)數(shù)量超過(guò)計(jì)數(shù)器的容量以后,就會(huì)產(chǎn)生溢出任意設(shè)定計(jì)數(shù)個(gè)數(shù)的方法預(yù)置計(jì)數(shù)常數(shù)定時(shí)當(dāng)計(jì)數(shù)脈沖的時(shí)間間隔一定時(shí),脈沖的個(gè)數(shù)就代表了流逝的時(shí)間任意設(shè)定定時(shí)間的方法預(yù)置定時(shí)常數(shù)80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器包裝流水線中的計(jì)數(shù)器用Proteus仿真來(lái)實(shí)現(xiàn)89C51為CPU加入
36、TimerCounter部件單擊K2以清除COUNT元件中的計(jì)數(shù)值,使其顯示為0。單擊K1按鍵以產(chǎn)生計(jì)數(shù)脈沖每單擊12次按鍵后,LED元件將很快地閃爍一次,即輸出一個(gè)低電平80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器單片機(jī)中的定時(shí)器/計(jì)數(shù)器80C51定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)定時(shí)器T0和T1分別由TH0、TL0和TH1、TL1各兩個(gè)8位計(jì)數(shù)器構(gòu)成的16位計(jì)數(shù)器,這兩個(gè)16位計(jì)數(shù)器都是16位的加1計(jì)數(shù)器T0和T1定時(shí)器/計(jì)數(shù)器都可由軟件設(shè)置為定時(shí)或計(jì)數(shù)工作方式,其中T1還可作為串行口的波特率發(fā)生器定時(shí)器/計(jì)數(shù)器的控制字T0和T1有兩個(gè)8位控制寄存器TMOD和TCON,它們分別被用來(lái)設(shè)置各個(gè)定時(shí)器/計(jì)數(shù)器的工作方式
37、,選擇定時(shí)或計(jì)數(shù)功能,控制啟動(dòng)運(yùn)行以及作為運(yùn)行狀態(tài)的標(biāo)志等80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器單片機(jī)中的定時(shí)器/計(jì)數(shù)器定時(shí)器/計(jì)數(shù)器的四種工作方式定時(shí)器/計(jì)數(shù)器工作方式0為13位計(jì)數(shù)器工作方式定時(shí)器/計(jì)數(shù)器工作方式1是16位計(jì)數(shù)器方式,分別由TH0TL0、TH1/TL1共同構(gòu)成16位計(jì)數(shù)器定時(shí)/計(jì)數(shù)器的工作方式2是自動(dòng)再裝入時(shí)間常數(shù)的8位計(jì)數(shù)器方式。定時(shí)器/計(jì)數(shù)器工作方式3是兩個(gè)獨(dú)立的8位計(jì)數(shù)器且僅對(duì)T0起作用,如果把T1置為工作方式3,T1將處于關(guān)閉狀態(tài)計(jì)數(shù)器的計(jì)數(shù)初值計(jì)算工作方式0裝入的初值是:8192-待計(jì)數(shù)的值工作方式1裝入的初值是:65536-待計(jì)數(shù)的值工作方式2裝入的初值是:256-待
38、計(jì)數(shù)的值工作方式3裝入的初值是:256-待計(jì)數(shù)的值80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器用單片機(jī)來(lái)唱歌如果在程序中預(yù)置好各種不同音調(diào)的聲音,那么就能按一定的曲調(diào)唱出歌來(lái)歌譜與歌曲的基本知識(shí)一首歌的歌譜記錄了音符,還記錄了該音符持續(xù)的時(shí)間。音符持續(xù)的時(shí)間在歌譜中以“節(jié)拍”為單位來(lái)設(shè)定,樂(lè)譜中每個(gè)音符持續(xù)的時(shí)間可以是1/4節(jié)拍、2/4節(jié)拍、3/4節(jié)拍、1拍等多種節(jié)拍。要唱出一首歌來(lái),首先要根據(jù)歌譜的音符標(biāo)記確定送出的信號(hào)的頻率值,然后根據(jù)節(jié)拍標(biāo)記確定該頻率的信號(hào)持續(xù)的時(shí)間。從上面的描述可以看到,要唱出一首完整的歌曲出來(lái),需要用到兩個(gè)時(shí)間關(guān)系,其中一個(gè)用于確定發(fā)聲頻率,另一個(gè)用以確定延遲時(shí)間。80C51單
39、片機(jī)的定時(shí)器/計(jì)數(shù)器用單片機(jī)來(lái)唱歌用定時(shí)中斷來(lái)產(chǎn)生不同頻率的信號(hào)如果在定時(shí)中斷程序中對(duì)Sound引腳取反,那么,當(dāng)定時(shí)中斷不斷發(fā)生時(shí),Sound引腳不斷取反,即實(shí)現(xiàn)一定頻率的方波輸出,其頻率取決于定時(shí)中斷的時(shí)間如果所用晶振為12M,選用定時(shí)器0,工作于方式1,則計(jì)數(shù)初值就應(yīng)當(dāng)是:65536-5000=60536。將60536轉(zhuǎn)換為十六進(jìn)制即EC78H,把ECH送入TH0,78H送入TL0,即可完成5ms的定時(shí)。80C51單片機(jī)的定時(shí)器/計(jì)數(shù)器用單片機(jī)來(lái)唱歌單片機(jī)唱歌的實(shí)現(xiàn)程序使用了定時(shí)器T0和T1,其中T0用于產(chǎn)生音調(diào)。定時(shí)器T1中斷服務(wù)程序中用到了兩個(gè)表,第一個(gè)是音符表MUSIC1,即根據(jù)歌
40、譜按順序?qū)懗龅囊舴斜?;第二個(gè)是時(shí)長(zhǎng)表MUSIC2,即每個(gè)音符持續(xù)的時(shí)間。定時(shí)器T1每10ms中斷一次,時(shí)長(zhǎng)表中的數(shù)值是軟件計(jì)數(shù)器值。取出音符表中的下一個(gè)音符,并將其送入寄存器R0中暫存,以便定時(shí)器T0根據(jù)這個(gè)音符來(lái)產(chǎn)生定時(shí)中斷,發(fā)出該音符所表示的頻率的聲音單片機(jī)應(yīng)用與接口技術(shù)80C51的串行接口與串行通信80C51的串行接口與串行通信80C51單片機(jī)的串行接口80C51單片機(jī)內(nèi)部集成有全雙工串行通信口2個(gè)相互獨(dú)立的接收、發(fā)送緩沖器可以同時(shí)接收和發(fā)送數(shù)據(jù)。串行口控制器串行控制寄存器SCON波特率選擇特殊功能寄存器PCON80C51串行口可以有4種工作方式。方式0方式3方式0:用作輸出時(shí),向發(fā)送
41、緩沖器SBUF寫入一個(gè)字節(jié)的數(shù)據(jù),串行口將此8位數(shù)據(jù)以時(shí)鐘頻率的1/12速度從RXD依次送入外部芯片,同時(shí)由TXD引腳提供移位脈沖信號(hào)。用作輸入時(shí),TXD引腳提供移位脈沖,同時(shí)RXD接收數(shù)據(jù)送入接收SBUF80C51的串行接口與串行通信80C51內(nèi)部具有一個(gè)全雙工的串行接口,這一接口可以被用于擴(kuò)展輸入/輸出,也可以用于串行通信。使用串行口擴(kuò)展并行接口80C51單片機(jī)共有4個(gè)8位的并行接口,在某些應(yīng)用場(chǎng)合需要應(yīng)用更多的并行接口,這可以使用串行接口加上一些接口芯片來(lái)進(jìn)行擴(kuò)展。使用串行口擴(kuò)展并行輸出接口CD4094:串入并出芯片用PROTEUS來(lái)仿真AT89C51為CPUCD4094擴(kuò)展80C51的
42、串行接口與串行通信使用串行口擴(kuò)展并行接口用串行口擴(kuò)展并行輸入要實(shí)現(xiàn)串行口擴(kuò)展并行輸入,需要用到并行輸入串行輸出功能芯片。這一類芯片也有多種,如常用的74HC165芯片74HC165的工作過(guò)程可以分為2個(gè)過(guò)程,即從D0D7讀取并行輸入狀態(tài)過(guò)程和將讀取到的數(shù)據(jù)從串行輸出端送出的過(guò)程。用Proteus來(lái)仿真89C51為CPU74HC165為輸入LED為輸出80C51的串行接口與串行通信單片機(jī)與PC機(jī)通信串行通信的基本知識(shí)同步通信的基本特征是發(fā)送與接收保持嚴(yán)格的同步。異步通信方式規(guī)定了傳輸格式,每個(gè)數(shù)據(jù)均以相同的幀格式傳送。在異步通信中,接收與發(fā)送之間必須有兩項(xiàng)規(guī)定:幀格式的設(shè)定波特率的設(shè)定串行通信中
43、數(shù)據(jù)的傳輸方向單工方式:數(shù)據(jù)只允許按照一個(gè)固定的方向傳送半雙工方式:數(shù)據(jù)可以從A發(fā)送到B,也可以由B發(fā)給A,但是不能同時(shí)在這兩個(gè)方向中進(jìn)行傳送全雙工方式:兩臺(tái)設(shè)備之間的接收與發(fā)送可以同時(shí)進(jìn)行,互不相關(guān)80C51的串行接口與串行通信單片機(jī)與PC機(jī)通信串行通信中的奇偶校驗(yàn)串行通信的關(guān)鍵不僅是能夠傳輸數(shù)據(jù),更重要的是要能正確地傳輸如果可以在接收端發(fā)現(xiàn)接收到的數(shù)據(jù)是錯(cuò)誤的,那么,就可以讓接收端發(fā)送一個(gè)信息到發(fā)送端,要求將剛才發(fā)送過(guò)來(lái)的數(shù)據(jù)重新發(fā)送一遍在傳送數(shù)據(jù)的同時(shí)再傳送一些其它內(nèi)容,或者對(duì)數(shù)據(jù)進(jìn)行一些變換,使一批數(shù)據(jù)具有一定的規(guī)律,這樣才有可能發(fā)現(xiàn)數(shù)據(jù)傳輸中出現(xiàn)的差錯(cuò)。串行通信中的電平接口TTL接口
44、RS232接口80C51的串行接口與串行通信單片機(jī)與PC機(jī)通信使用Proteus的虛擬串口實(shí)現(xiàn)AT89C51為CPU加入虛擬端口80C51的串行接口與串行通信單片機(jī)與PC機(jī)通信串行口工作方式與波特率設(shè)置串行通信口的工作方式1用于串行數(shù)據(jù)的發(fā)送和接收,為10位通用異步方式。串行口的工作方式2是9位異步通信方式,每幀信息為11位:1位起始位,8位數(shù)據(jù)位(低位在前,高位在后),1位可編程的第9位和1位停止位。串行口被定義成方式3時(shí),為波特率可變的9位異步通迅方式。在方式3中,除波特率外,均與方式2相同。波特率的設(shè)計(jì):在串行通信中,收、發(fā)雙方對(duì)接收和發(fā)送數(shù)據(jù)都有一定的約定,其中重要的一點(diǎn)就是波特率必須
45、相同。工作方式2:波特率=2SMOD/64工作方式1和3:波特率=2SMOD/32fosc/12/(28-x)其中x是定時(shí)器的計(jì)數(shù)初值單片機(jī)應(yīng)用與接口技術(shù)80C51單片機(jī)的指令系統(tǒng)80C51單片機(jī)的指令系統(tǒng)指令的概念有關(guān)指令與程序的基本概念指令是規(guī)定計(jì)算機(jī)進(jìn)行某種操作的命令。程序是指人們按照自己的思維邏輯,使計(jì)算機(jī)按照一定的規(guī)律進(jìn)行各種操作,以實(shí)現(xiàn)某種特定的控制功能而編制的有關(guān)指令的集合。程序設(shè)計(jì)語(yǔ)言是實(shí)現(xiàn)人機(jī)相互交換信息(對(duì)話)的基本工具機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言匯編語(yǔ)言格式標(biāo)號(hào):操作碼助記符 操作數(shù)1 ,操作數(shù)2 ,操作數(shù)3 ;注釋80C51單片機(jī)的指令系統(tǒng)指令的尋址方式尋址的概念尋址方式立
46、即尋址(立即數(shù)尋址)直接尋址寄存器尋址寄存器間接尋址變址尋址(基址寄存器變址寄存器間接尋址)相對(duì)尋址位尋址指令中的操作數(shù)標(biāo)記Rn 、Ri、#data、#data16、direct、bit、/、80C51單片機(jī)的指令系統(tǒng)數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令以A為目的地址的指令MOVA,Rn;(A)(Rn)MOVA,direct;(A)(direct)MOVA,Ri;(A)(Ri)MOVA,#data;(A)data以直接地址為目的地址的指令MOVdirect,A;(direct)(A)MOVdirect,Rn;(direct)(Rn)MOVdirect,Ri;(direct)((Ri))MOVdirec
47、t,#data;(direct)dataMOVdirect1,direct2;(direct1)(direct2)80C51單片機(jī)的指令系統(tǒng)數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令以Rn為目的地址的指令MOVRn,A;RnAMOVRn,#data;RndataMOVRn,direct;Rn(direct)以間接地址為目的地址的指令MOVRi,A;(Ri)AMOVRi,#data;(Ri)AMOVRi,direct;(Ri)A十六位數(shù)傳送(以DPTR為目的地址)指令。MOVDPTR,#data16;(DPTR)data1680C51單片機(jī)的指令系統(tǒng)數(shù)據(jù)傳送類指令用仿真軟件進(jìn)行指令練習(xí)掌握指令的最好的辦法是多
48、做編程練習(xí),而練習(xí)是要有反饋的,可以通過(guò)模擬仿真的方法來(lái)了解學(xué)習(xí)的效果??梢允褂肒eil軟件作為指令練習(xí)的工具。80C51單片機(jī)的指令系統(tǒng)數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令累加器A與片外RAM之間傳遞數(shù)據(jù)指令MOVX(4條)MOVXA,Ri;A(Ri)(片外RAM)MOVXA,DPTR;A(DPTR)(片外RAM)MOVXRi,A;(片外RAM)(Ri)AMOVXDPTR,A;(片外RAM)(DPTR)A程序存儲(chǔ)器向累加器A傳送指令MOVC(2條)MOVCA,A+PCMOVCA,A+DPTR堆棧操作數(shù)據(jù)交換指令(4條)用仿真軟件進(jìn)行指令練習(xí)掌握指令的最好的辦法是多做編程練習(xí),而練習(xí)是要有反饋的,可以
49、通過(guò)模擬仿真的方法來(lái)了解學(xué)習(xí)的效果??梢允褂肒eil軟件作為指令練習(xí)的工具。80C51單片機(jī)的指令系統(tǒng)數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令累加器A與片外RAM之間傳遞數(shù)據(jù)指令MOVX(4條)MOVXA,Ri;A(Ri)(片外RAM)MOVXA,DPTR;A(DPTR)(片外RAM)MOVXRi,A;(片外RAM)(Ri)AMOVXDPTR,A;(片外RAM)(DPTR)A程序存儲(chǔ)器向累加器A傳送指令MOVC(2條)MOVCA,A+PCMOVCA,A+DPTR堆棧操作進(jìn)棧指令:PUSHdirect;(SP)(direct)出棧指令:POPdirect;(direct)(SP)數(shù)據(jù)交換指令(4條)80C5
50、1單片機(jī)的指令系統(tǒng)數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令字節(jié)交換XCHA,Rn;(A)(Rn) (Rn)(A)XCHA,direct;(A)(direct) (direct)(A)XCHA,Ri;(A)(Ri) (Ri) (A半字節(jié)交換XCHDA,Ri;(A3A0)(Ri3Ri0)80C51單片機(jī)的指令系統(tǒng)算術(shù)運(yùn)算指令1加法指令(8條)不帶進(jìn)位位的加法指令A(yù)DDA,Rn;(A)(A)+(Rn)ADDA,direct;(A)(A)+(direct)ADDA,Ri;(A)(A)+(Ri)ADDA,#data;(A)(A)+ data不帶進(jìn)位位的加法指令A(yù)DDCA,Rn;(A)(A)+(Rn)+(CY)ADD
51、CA,direct;(A)(A)+(direct)+(CY)ADDCA,Ri;(A)(A)+(Ri)+(CY)ADDCA,#data;(A)(A)+ data +(CY)2帶借位的減法指令(4條)SUBBA,Rn;(A)(A)-(Rn)-(CY)SUBBA,direct;(A)(A)-(direct)-(CY)SUBBA,Ri;(A)(A)-(Ri)-(CY)SUBBA,#data;(A)(A)- data -(CY)80C51單片機(jī)的指令系統(tǒng)算術(shù)運(yùn)算指令3乘法運(yùn)算指令(1條)MULAB4除法運(yùn)算指令(1條)DIVAB5加1指令(5條)INCA;(A)(A)+1INCRn;(Rn)(Rn)+1
52、INCdirect;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCDPTR;(DPTR)(DPTR)+16減1指令DECA;(A)(A)-1DECRn;(Rn)(Rn)-1DECdirect;(direct)(direct)-1DECRi;(Ri)(Ri)-17二十進(jìn)制調(diào)整指令DAA;二十進(jìn)制調(diào)整80C51單片機(jī)的指令系統(tǒng)邏輯運(yùn)算類指令1累加器A的邏輯操作CLRA;A0CPLA;AARLA;循環(huán)左移RLCA;帶進(jìn)位位的循環(huán)左移RRA;循環(huán)右移RRCA;帶進(jìn)位位的循環(huán)右移SWAPA;A高、低4位交換2邏輯“與”指令A(yù)NLA,Rn;A與Rn中的值按位“與”ANLA,di
53、rect;A和直接地址中的數(shù)據(jù)按位“與”ANLA,Ri;A和間接尋址得到的數(shù)據(jù)按位“與”ANLA,#data;A和立即數(shù)按位“與”ANLdirect,A;直接地址中的數(shù)據(jù)與A中的值相“與”,并送到該地址單元中ANLdirect,#data;直接地址中的數(shù)據(jù)與立即數(shù)相“與”,并送到該地址單元中80C51單片機(jī)的指令系統(tǒng)邏輯運(yùn)算類指令3邏輯“或”指令ORLA,Rn;A與Rn中的值按位“或”O(jiān)RLA,direct;A和直接地址中的數(shù)據(jù)按位“或”O(jiān)RLA,Ri;A和間接尋址得到的數(shù)據(jù)按位“或”O(jiān)RLA,#data;A和立即數(shù)按位“或”O(jiān)RLdirect,A ;直接地址中的數(shù)據(jù)與A中的值相“或”,并送到
54、該地址單元中ORLdirect,#data;直接地址中的數(shù)據(jù)與立即數(shù)相“或”,并送到該地址單元中4邏輯“異或”指令XRLA,Rn;A與Rn中的值按位“異或”XRLA,direct;A和直接地址中的數(shù)據(jù)按位“異或”XRLA,Ri;A和間接尋址得到的數(shù)據(jù)按位“異或”XRLA,#data;A和立即數(shù)按位“異或”XRLdirect,A ;直接地址中的數(shù)據(jù)與A中的值“異或”,并送到該地址單元中XRLdirect,#data;直接地址中的數(shù)據(jù)與立即數(shù)“異或”,并送到該地址單元中80C51單片機(jī)的指令系統(tǒng)控制轉(zhuǎn)移類指令無(wú)條件轉(zhuǎn)移指令短轉(zhuǎn)移指令:AJMPaddr11長(zhǎng)轉(zhuǎn)移指令:LJMPaddr16相對(duì)轉(zhuǎn)移指令
55、:SJMPrel間接轉(zhuǎn)移指令:JMPA+DPTR條件轉(zhuǎn)移指令判A內(nèi)容是否為0轉(zhuǎn)移指令JZ rel;如果A中的值是0則轉(zhuǎn)移,否則順序執(zhí)行JNZ rel;如果A中的值不是0則轉(zhuǎn)移,否則順序執(zhí)行比較轉(zhuǎn)移指令CJNE A,#data,rel;(A)和data比較,如果A=data,順序執(zhí)行,否則轉(zhuǎn)移CJNE A,direct,rel;(A)和(direct)比較,如果(A)=(direct),順序執(zhí)行,否則轉(zhuǎn)移CJNE Rn,#data,rel;(Rn)與data比較,如果(Rn)=data,順序執(zhí)行否則轉(zhuǎn)移CJNE Ri,#data,rel;(Ri)與data比較,如果(Ri)=data,順序執(zhí)行否
56、則轉(zhuǎn)移循環(huán)轉(zhuǎn)移指令DJNZ Rn,relDJNZ direct,rel80C51單片機(jī)的指令系統(tǒng)控制轉(zhuǎn)移類指令調(diào)用與返回指令短調(diào)用指令:ACALLaddr11長(zhǎng)調(diào)用指令:LCALLaddr16返回指令:RET中斷返回指令:RETI空操作指令NOP位操作類指令位傳送指令位傳送指令MOVC,bit;(C)(bit)MOVbit,C;(bit)(C)80C51單片機(jī)的指令系統(tǒng)位操作類指令位修正指令位清0指令CLRC;(C)(0)CLRbit;(bit)(0)位置1指令SETBC;(C)(1)SETBbit;(bit)(1)位取反指令CPLC;(C)()CPLbit;(bit)()80C51單片機(jī)的指
57、令系統(tǒng)位操作類指令位邏輯運(yùn)算指令位與指令A(yù)NLC,bit;(C)(C&bit)ANLC,/bit;(C)(C&)位或指令ORLC,bit;(C)(CVbit)ORLC,/bit;(C)(CV)位條件轉(zhuǎn)移指令判CY轉(zhuǎn)移指令JCrel;如果C=1,則轉(zhuǎn)移,否則順序執(zhí)行JNCrel;如果C=0,則轉(zhuǎn)移,否則順序執(zhí)行判位變量轉(zhuǎn)移指令JBbit,rel ;如果bit=1,則轉(zhuǎn)移,否則順序執(zhí)行JNBbit,rel ;如果bit=0,則轉(zhuǎn)移,否則順序執(zhí)行判位變量且清0轉(zhuǎn)移指令JBCbit,rel;如果bit=1,則轉(zhuǎn)移,同時(shí)將bit清0,否則順序執(zhí)行單片機(jī)應(yīng)用與接口技術(shù)程序設(shè)計(jì)初步程序設(shè)計(jì)初步數(shù)制轉(zhuǎn)換程序在
58、單片機(jī)的內(nèi)部進(jìn)行數(shù)據(jù)處理時(shí),一般用二進(jìn)制,但是在進(jìn)行數(shù)據(jù)的輸入或數(shù)據(jù)的輸出時(shí),要轉(zhuǎn)換成十進(jìn)制,這樣才符合人們的習(xí)慣。把十進(jìn)制數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制假設(shè)我們用FIFO0和FIFO1代表鍵盤的緩沖區(qū),程序設(shè)計(jì)為每按下一次數(shù)字鍵,先把FIFO1單元中的數(shù)據(jù)送到FIFO0中去,然后把這個(gè)數(shù)字送到FIFO1,這樣,就用了兩個(gè)字節(jié)的鍵盤緩沖區(qū)?,F(xiàn)假設(shè)按下了“3”,然后再按下“5”,那么FIFO0中的值是3,F(xiàn)IFO1中的值就是5,即十進(jìn)制的35,調(diào)用下面的這段程序,可以把放在兩個(gè)字節(jié)中的數(shù)字合并成一個(gè)二進(jìn)制數(shù),這樣才能進(jìn)行計(jì)算和進(jìn)一步的處理,否則3和5放在兩個(gè)單元中又怎么能代表35并參加運(yùn)算呢?這里所要做的工作
59、是把放在兩個(gè)RAM單元中的數(shù)據(jù)合成到一個(gè)RAM單元中去,這個(gè)單元最終的結(jié)果應(yīng)當(dāng)是35(23H)。程序設(shè)計(jì)初步數(shù)制轉(zhuǎn)換程序【例8-1】雙字節(jié)十進(jìn)制轉(zhuǎn)化為單字節(jié)二進(jìn)制。如果用于存儲(chǔ)十進(jìn)制的字節(jié)數(shù)只有2個(gè),那么它們能夠表達(dá)的數(shù)據(jù)最大就是99,所以只要用一個(gè)字節(jié)就可以存放了。;雙字節(jié)十進(jìn)制轉(zhuǎn)化為單字節(jié)二進(jìn)制(以子程序的形式出現(xiàn));程序入口:BCD碼的低位在BCD1單元中,高位在BCD0單元中;程序出口:二進(jìn)制數(shù)在BIN0單元中;資源占用:A,B BCD0EQU40HBCD1EQU41HBIN0EQU50HBCD2BIN:MOVA,BCD0;將十位數(shù)送到A中MOVB,#10;乘以10MULABADDA,
60、BCD1;加上個(gè)位數(shù),由于最大為99,所以不會(huì)有溢出MOVBIN0,A;送入輸出單元(BIN0)中RET;返回程序設(shè)計(jì)初步二進(jìn)制碼向BCD碼轉(zhuǎn)化將運(yùn)算的結(jié)果顯示之前,需要先把結(jié)果由二進(jìn)制轉(zhuǎn)化為BCD碼,然后再顯示,這樣才符合人們的閱讀習(xí)慣。設(shè)計(jì)一臺(tái)儀器,用于顯示測(cè)量所得的溫度,其范圍是099;進(jìn)行硬件設(shè)計(jì)時(shí),可以用2位顯示器來(lái)顯示這個(gè)溫度;軟件設(shè)計(jì)時(shí),要在內(nèi)部RAM中開辟2個(gè)字節(jié)的顯示緩沖區(qū),分別用來(lái)存放待顯示的2位數(shù)字。設(shè)某次測(cè)得的溫度為45,這是以二進(jìn)制形式保存在計(jì)算機(jī)內(nèi)部的某個(gè)RAM單元中的,比如存于TMP單元中,該單元中的值是2DH,在顯示之前,必須先把2DH變成4和5,并將4和5分別
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科研指導(dǎo)工作計(jì)劃表
- 2023年濟(jì)南市康復(fù)大學(xué)招聘教輔人員和輔導(dǎo)員招聘筆試真題
- 2024年井口及采油樹專用件合作協(xié)議書
- 醫(yī)療保健數(shù)據(jù)管理協(xié)議
- 2024年微循環(huán)測(cè)試系統(tǒng)合作協(xié)議書
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案集錦
- 合同范本在哪里可以
- 2024年便攜式振動(dòng)分析儀項(xiàng)目合作計(jì)劃書
- 批發(fā)分銷合同范本
- 圍擋簡(jiǎn)易合同范本
- 2024年房地產(chǎn)開發(fā)建筑承包合同
- 酒店客房清潔衛(wèi)生培訓(xùn)制度
- 選修課-足球教案
- 充電樁運(yùn)維合同(2篇)
- 美團(tuán) 課程設(shè)計(jì)
- 骨質(zhì)疏松的分級(jí)診療及醫(yī)聯(lián)體的建設(shè)方案
- 2024年貴州黔東南州直事業(yè)單位遴選工作人員42人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2024年后勤保障管理制度范本(三篇)
- 公務(wù)員2022年國(guó)考《申論》真題(副省級(jí))及參考答案
- 走進(jìn)《格林童話》讀書交流課
- 2024年武漢城投集團(tuán)公開招聘【151人】高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論