freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)c語(yǔ)言應(yīng)用與開(kāi)發(fā)第6章(已修改)

2025-05-28 11:36 本頁(yè)面
 

【正文】 51單片機(jī) C語(yǔ)言 應(yīng)用與開(kāi)發(fā) 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 本章主要介紹利用 ELITEIII開(kāi)發(fā)板的現(xiàn)有資源進(jìn)行簡(jiǎn)單單片機(jī)控制系統(tǒng)開(kāi)發(fā)的幾個(gè)實(shí)例 ? 本章重點(diǎn) ? 流水燈控制系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) ? 數(shù)碼管和鍵盤(pán)接口的軟硬件設(shè)計(jì) ? 點(diǎn)陣顯示系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) ? 步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) ? 單片機(jī)串行通信接口的應(yīng)用及軟件設(shè)計(jì) ? 特殊串行總線的應(yīng)用及軟件設(shè)計(jì) ? LCD顯示系統(tǒng)的控制及軟件設(shè)計(jì) 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 本章難點(diǎn) ? 中斷函數(shù)的定義及設(shè)計(jì)方法 ? 矩陣鍵盤(pán)的設(shè)計(jì)及鍵盤(pán)識(shí)別 ? 點(diǎn)陣顯示系統(tǒng)的工作原理及軟件設(shè)計(jì) ? 步進(jìn)電機(jī)的驅(qū)動(dòng)及時(shí)序設(shè)計(jì) ? A/D轉(zhuǎn)換的原理及軟件驅(qū)動(dòng) ? 串行通信的中斷程序設(shè)計(jì) ? 特殊總線串行通信接口芯片的工作原理及其寄存器的應(yīng)用 ? LCD顯示模塊的工作原理及編程控制 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 本章各章節(jié)安排 ? 流水燈控制系統(tǒng)設(shè)計(jì) ? I/O 口的高級(jí)應(yīng)用 ? 點(diǎn)陣顯示設(shè)計(jì) ? 步進(jìn)電機(jī)控制 ? A/D 轉(zhuǎn)換設(shè)計(jì) ? 單片機(jī)串行通信 ? I2C總線技術(shù) ? 特殊總線串行通信 ? LCD顯示設(shè)計(jì) 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 流水燈控制系統(tǒng)設(shè)計(jì) 流水燈是指若干個(gè)燈泡(或 LED發(fā)光二極管)按一定順序依次點(diǎn)亮的一種裝置,有時(shí)也稱跑馬燈,可用在夜間建筑物的裝飾等方面。流水燈控制系統(tǒng)是單片機(jī)最簡(jiǎn)單的控制系統(tǒng)之一,具有電路簡(jiǎn)單、設(shè)計(jì)靈活、控制方便等特點(diǎn),是單片機(jī)入門(mén)開(kāi)發(fā)的首選,幾乎所有的單片機(jī)開(kāi)發(fā)板都提供流水燈控制系統(tǒng)。本節(jié)以 ELITEIII開(kāi)發(fā)板為例,介紹流水燈控制系統(tǒng)的設(shè)計(jì) 。 ? 流水燈的硬件電路 ? 1. 發(fā)光二極管與單片機(jī)的接口 ? ⑴ 發(fā)光二極管 ? 發(fā)光二極管簡(jiǎn)稱為 LED,是一種特殊的二極管,也具有單向?qū)щ娦?,其正向?qū)妷阂话銥?。發(fā)光二極管通常由鎵( Ga)與砷( AS)、磷( P)的化合物制成,可以把電能轉(zhuǎn)化成光能,在電子儀器及其他電器設(shè)備中作為指示燈,或者組成文字或數(shù)字顯示。磷砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā) 黃光。發(fā)光二極管的電路符號(hào)如圖 61所示。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? (2)發(fā)光二極管與單片機(jī)的接口 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? LED發(fā)光二極管與單片機(jī)的接口一般可以分為直接式、掃描式與多路復(fù)用式三種,其接口電路如圖 72所示。 ? 直接式: LED發(fā)光二極管的一端(一般是陰極)直接連到對(duì)應(yīng)單片機(jī)的一個(gè)輸出引腳,另一端通過(guò)限流電阻接到電源 VCC,如圖 62( a)。使用這種連接方式時(shí),單片機(jī)的一個(gè) I/O端口( P0、 P1或 P2)最多只能控制 8個(gè) LED發(fā)光二極管。當(dāng)單片機(jī)的對(duì)應(yīng)管腳輸出低電平時(shí),電流從 VCC經(jīng)限流電阻、發(fā)光二極管后流入單片機(jī),發(fā)光二極管開(kāi)始發(fā)光,其發(fā)光亮度可由串聯(lián)的限流電阻控制;當(dāng)對(duì)應(yīng)管腳輸出高電平時(shí),沒(méi)有電流通過(guò) LED發(fā)光二極管,發(fā)光二極管熄滅。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 掃描式: LED發(fā)光二極管被設(shè)計(jì)成行列形式的矩陣,其中,各行各列分別接到對(duì)應(yīng)單片機(jī)的一個(gè)唯一輸出引腳,如圖 62( b)。當(dāng)單片機(jī)對(duì)應(yīng)行、列的管腳分別輸出高和低電平時(shí),電流從單片機(jī)輸出高電平的管腳經(jīng)限流電阻和 LED流入到另一個(gè)引腳, LED發(fā)光二極管開(kāi)始發(fā)光。在掃描式連接時(shí),為了讓LED發(fā)光二極管顯示一個(gè)固定的狀態(tài),必須有相應(yīng)的軟件掃描程序維持輸出的信號(hào)。在此種方式下,單片機(jī)的一個(gè)端口最多可控制 16個(gè) LED發(fā)光二極管。如果兩個(gè)端口結(jié)合使用,一個(gè)端口控制行信號(hào),另一個(gè)端口控制列信號(hào),則可以控制 64個(gè) LED的狀態(tài)。 ? 復(fù)用式: 多路復(fù)用式與掃描式類似,也是將 LED發(fā)光二極管組織成行列形式的矩陣,但是矩陣的行、列信號(hào)是由單片機(jī)外置的多路解碼及鎖存芯片進(jìn)行控制,因此實(shí)現(xiàn)了多于單片機(jī)輸出端口數(shù)目的 LED發(fā)光二極管陣列,本質(zhì)上就是掃描式的擴(kuò)充,如圖 62( c)所示。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 2. 流水燈硬件電路 ? 單片機(jī)控制的流水燈系統(tǒng)如圖 63所示。圖中,單片機(jī)的 P1口接 8個(gè)發(fā)光二極管( LD1~ LD8)的陰極,控制發(fā)光二極管的亮滅。電源 VCC經(jīng)開(kāi)關(guān) JP1后,通過(guò) 8個(gè)限流電阻( R57~ R64)接到發(fā)光二極管的陽(yáng)極。開(kāi)關(guān) JP1接通時(shí),發(fā)光二極管可以發(fā)光,顯示流水燈的工作狀態(tài);斷開(kāi)時(shí),發(fā)光二極管不能發(fā)光。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 流水燈軟件設(shè)計(jì) 本節(jié)的流水燈由 8個(gè) LED發(fā)光二極管組成,通過(guò)單片機(jī)的 P1口進(jìn)行驅(qū)動(dòng),電路如圖 63所示。當(dāng) 8個(gè)發(fā)光二極管按一定順序依次點(diǎn)亮?xí)r,顯示流水燈的工作狀態(tài)。在流水燈控制系統(tǒng)中,每個(gè)發(fā)光二極管亮的狀態(tài)都需要持續(xù)一段時(shí)間,這段持續(xù)時(shí)間在單片機(jī)控制系統(tǒng)中一般有兩種方法實(shí)現(xiàn):定時(shí)器中斷延時(shí)或軟件延時(shí)。由于 51系列單片的定時(shí)器資源有限( 8051只有的 2個(gè)定時(shí)器, 8052也只有 3個(gè)),所以在流水燈這種系統(tǒng)任務(wù)不多且對(duì)定時(shí)時(shí)間要求不是十分嚴(yán)格的情況下,一般采用軟件延時(shí)。 ? 1. 軟件延時(shí)程序 ? 軟件延時(shí)一般通過(guò)重復(fù)運(yùn)行一段程序(循環(huán)程序)來(lái)實(shí)現(xiàn),以下程序可實(shí)現(xiàn)軟件延時(shí)功能: void delay() { unsigned int j。 for(j = 0。j 20210。j++)。 } 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 改變變量 j的取值范圍,可以改變延時(shí)時(shí)間。如果延時(shí)時(shí)間不夠,可以通過(guò)兩層或多層循環(huán)來(lái)增加延時(shí)時(shí)間。 ? 延時(shí)時(shí)間是原來(lái)單層循環(huán)的 20倍。 ? 2. 流水燈的軟件實(shí)現(xiàn) ? 由于圖 63的 8個(gè)發(fā)光二極管陽(yáng)極通過(guò)限流電阻接電源 VCC,陰極則分別連接到單片機(jī) P1口的 8根口線。因此,要使某個(gè)發(fā)光二極管亮,只須在對(duì)應(yīng)口線輸出低電平即可;反之,如果要讓某個(gè)發(fā)光二極不亮,則只須在對(duì)應(yīng)口線輸出高電平。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 在 C51程序設(shè)計(jì)語(yǔ)言中,單片機(jī)的 4個(gè)并行 I/O口作為特殊功能寄存器使用,以變量的形式在庫(kù)函數(shù)(或 )中進(jìn)行定義(各并行口的口線,可以以位變量的形式使用)。因此,要使某個(gè)并行 I/O口各位輸出指定的電平,只須對(duì)該口所對(duì)應(yīng)的變量賦值即可。例如:要讓 P1口輸出二進(jìn)制數(shù)10100110對(duì)應(yīng)的電平,則只須在 C51程序中執(zhí)行下列語(yǔ)句即可: ? 對(duì)于圖 73的硬件電路,如果要使 8個(gè)發(fā)光二極管以流水燈的效果按順序點(diǎn)亮,則只須對(duì) P1口的各位從最低位開(kāi)始依次賦“ 0”(其他各位賦值為“ 1”)。完成這一操作,可在一循環(huán)中用左移 1位再加“ 1”的算法實(shí)現(xiàn)。假定用變量 disp為 P1進(jìn)行賦值,且 disp初始值為 0xFE。 P1 = 0x0A6。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 3. 花樣流水燈 ? 對(duì)上述程序稍加修改,可以顯示花樣流水燈的效果,如亮燈左移、亮燈右移、亮燈從兩邊向中間移再?gòu)闹虚g向兩邊移等。以下為亮燈從兩邊向中間移動(dòng)再由中間向兩邊移動(dòng)的花樣流水燈程序程序,程序中實(shí)現(xiàn)流水燈效果的算法采用兩個(gè)變量移位相加再取反的算法,變量的初值分別為 0x01和 0x80(若采用上述程序的方法,則可用兩個(gè)變量分別移位加 1,再相與的算法,變量初值分別為 0xFE和 0x7F)。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 4. 蛇形花樣 ? 所謂蛇形花樣是指流水燈顯示的花樣像蛇一樣不停地游走,與前述流水燈不同的是:蛇形花樣需要多個(gè)連續(xù)的發(fā)光二極管同時(shí)亮并流動(dòng)。一段 4位長(zhǎng)的蛇形花樣流水燈隨時(shí)間變化的示意圖如圖 64所示。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 利用定時(shí)器中斷產(chǎn)生延時(shí) ? 定時(shí)器中斷延時(shí)屬硬件延時(shí),是利用單片機(jī)自帶(或外接)的定時(shí) /計(jì)數(shù)器每隔一定時(shí)間產(chǎn)生一個(gè)中斷,當(dāng)中斷產(chǎn)生時(shí),才做相應(yīng)工作來(lái)完成延時(shí)任務(wù)的。利用定時(shí)器中斷產(chǎn)生延時(shí),不會(huì)使程序停留在某一個(gè)地方等待延時(shí)時(shí)間到, CPU可以繼續(xù)做其他的工作,提高了 CPU的工作效率。在單片機(jī)系統(tǒng)比較復(fù)雜、 CPU任務(wù)比較繁重或者系統(tǒng)要求的延時(shí)時(shí)間比較精確時(shí),常使用定時(shí)器中斷來(lái)實(shí)現(xiàn)延時(shí)功能。 ? 定時(shí)器中斷延時(shí)產(chǎn)生的延時(shí)時(shí)間,其長(zhǎng)短主要由系統(tǒng)時(shí)鐘頻率和定時(shí)器的計(jì)數(shù)初值決定。在系統(tǒng)要求的延時(shí)時(shí)間較短時(shí),可直接在中斷服務(wù)程序中執(zhí)行有延時(shí)要求的任務(wù);當(dāng)要求的延時(shí)時(shí)間較長(zhǎng)、需產(chǎn)生多次定時(shí)器中斷才能到達(dá)延時(shí)時(shí)間時(shí),不能在中斷服務(wù)程序中執(zhí)行有延時(shí)要求的任務(wù)。此時(shí)一般用1個(gè)(或多個(gè))變量來(lái)記錄中斷的次數(shù),當(dāng)中斷次數(shù)與 1次中斷產(chǎn)生的延時(shí)時(shí)間相乘達(dá)到延時(shí)時(shí)間要求時(shí),再在主程序中執(zhí)行有延時(shí)要求的任務(wù)。 ? 對(duì)于前述基本流水燈控制程序,若采用定時(shí)器 0中斷產(chǎn)生延時(shí),假定系統(tǒng)時(shí)鐘頻率為 ,每個(gè)燈亮的延時(shí)時(shí)間為 ,則可求得計(jì)數(shù)次數(shù) X為: 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ?當(dāng)定時(shí)器 0工作于方式 1時(shí),最大計(jì)數(shù)次數(shù)為 65536,顯然需要多次中斷才能達(dá)到系統(tǒng)規(guī)定的延時(shí)時(shí)間。為簡(jiǎn)便起見(jiàn),可設(shè)中斷次數(shù) number=10,則定時(shí)器的計(jì)數(shù)初值 x為: ?根據(jù)以上計(jì)算和說(shuō)明,可寫(xiě)出利用定時(shí)器中斷實(shí)現(xiàn)延時(shí)的基本流水燈程序?yàn)椋? 46080012 6 ?????? 延時(shí)時(shí)間時(shí)鐘頻率X第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? I/O口的高級(jí)應(yīng)用 ? 數(shù)碼管顯示器 在單片機(jī)系統(tǒng)中,常用 LED數(shù)碼管作為顯示輸出設(shè)備來(lái)顯示單片機(jī)控制系統(tǒng)的工作狀態(tài)、運(yùn)算結(jié)果等相關(guān)信息。雖然 LED數(shù)碼管顯示器顯示的信息簡(jiǎn)單,但它具有顯示清晰、亮度高、使用電壓低、壽命長(zhǎng)、與單片機(jī)接口方便等特點(diǎn),是單片機(jī)控制系統(tǒng)進(jìn)行人機(jī)對(duì)話的重要輸出設(shè)備。 ? 1. LED數(shù)碼管 ? ⑴ LED數(shù)碼管的構(gòu)造及特點(diǎn) 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? LED數(shù)碼管的內(nèi)部實(shí)際上由 8個(gè)發(fā)光二極管構(gòu)成,其中 7個(gè)發(fā)光二極管為線段形(叫做字段),排列成的字符“ 8”的形狀,另一個(gè)發(fā)光二極管為圓點(diǎn)形狀,安放在顯示器的右下角作為小數(shù)點(diǎn)用。通過(guò)發(fā)光二極管亮暗的不同組合,可以顯示 0~ 9的數(shù)字符號(hào)或其它能由這些字形線段構(gòu)成的各種字符。 LED數(shù)碼管的字形結(jié)構(gòu)如圖 65所示。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 從內(nèi)部結(jié)構(gòu)上看, LED數(shù)碼管中的發(fā)光二極管有兩種連接方式:一種是共陽(yáng)極連接,數(shù)碼管內(nèi)部 8個(gè)發(fā)光二極管的陽(yáng)極(正極)全部連接在一起組成公共端,陰極則各自獨(dú)立引出,其內(nèi)部電路如圖 66所示。使用時(shí)一般將公共端(陽(yáng)極)接電源 VCC,陰極通過(guò)限流電阻接至驅(qū)動(dòng)電路的輸出端 (或單片機(jī)的 I/O口 )。單片機(jī)的口線輸出低電平時(shí),對(duì)應(yīng)的發(fā)光二極管點(diǎn)亮,輸出高電平時(shí)則不亮;另一種是共陰極連接方式,數(shù)碼管內(nèi)部 8個(gè)發(fā)光二極管的陰極(負(fù)極)連接在一起組成公共端,陽(yáng)極則各自獨(dú)立引出,其內(nèi)部電路如圖 67所示。使用時(shí)公共端(陰極)接地,陽(yáng)極通過(guò)限流電阻接至驅(qū)動(dòng)電路的輸出端 (或單片機(jī)的 I/O口 ),單片機(jī)的口線輸出高電平時(shí),對(duì)應(yīng)的發(fā)光二極管亮,輸出低電平時(shí)則不亮 ? 驅(qū)動(dòng)電路中限流電阻 R的值通常根據(jù) LED的工作電流計(jì)算得到,即 R=( VCCVLED) /ILED。式中,VCC為電源電壓( +5V), VLED為 LED的正向壓降(約 ), ILED為數(shù)碼管中單片 LED的工作電流( 1~ 20mA)。因此,限流電阻一般取幾百歐姆。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? ⑵ LED數(shù)碼管的字形編碼 ? 為了讓 LED數(shù)碼管顯示數(shù)字或符號(hào),需要為數(shù)碼管提供相應(yīng)的顯示代碼,由于這些代碼是為了顯示字形的,所以也稱為字形碼或字段碼。 ? 七段發(fā)光二極管,加上一個(gè)小數(shù)點(diǎn)位,共 8位代碼,由一個(gè)字節(jié)的二進(jìn)字?jǐn)?shù)組成。這個(gè)字節(jié)的各數(shù)據(jù)位與數(shù)碼管各字段的對(duì)應(yīng)關(guān)系如表 61所示。 ? 與 16進(jìn)制數(shù)對(duì)應(yīng)的 LED數(shù)碼管顯示器的 7段字形(段)二進(jìn)制編碼如表 62所示。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 需要指出的是:上表的字段碼并不是絕對(duì)的,字段碼其實(shí)由各字段在字節(jié)中的位置決定。如果字段碼按格式“ gfedcba”形成,則對(duì)于字符“ 0”,其字段碼為 0x3F(共陰);而如果字段碼按格式“ abcdefg”而定,則字符“ 0”的字段碼將變成 0x7E(共陰)。也就是說(shuō),字符的字段碼可由設(shè)計(jì)者自行設(shè)計(jì),不必拘泥于表 61和表 62。 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 第 6章 ELITEIII開(kāi)發(fā)應(yīng)用實(shí)例 ? 2. 數(shù)碼管的靜態(tài)顯示 ? 在實(shí)際應(yīng)用中, LED數(shù)碼管顯示器的顯
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1