C程序設(shè)計(jì)中使用指針可以:使程序簡(jiǎn)潔、緊湊、高效有效地課件_第1頁(yè)
C程序設(shè)計(jì)中使用指針可以:使程序簡(jiǎn)潔、緊湊、高效有效地課件_第2頁(yè)
C程序設(shè)計(jì)中使用指針可以:使程序簡(jiǎn)潔、緊湊、高效有效地課件_第3頁(yè)
C程序設(shè)計(jì)中使用指針可以:使程序簡(jiǎn)潔、緊湊、高效有效地課件_第4頁(yè)
C程序設(shè)計(jì)中使用指針可以:使程序簡(jiǎn)潔、緊湊、高效有效地課件_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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)介

C程序設(shè)計(jì)中使用指針可以: 使程序簡(jiǎn)潔、緊湊、高效有效地表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)分配內(nèi)存得到多于一個(gè)的函數(shù)返回值C語(yǔ)言知識(shí)(161頁(yè)):指針1謝謝觀賞2019-5-9C程序設(shè)計(jì)中使用指針可以: C語(yǔ)言知識(shí)(161頁(yè)):指針11、變量與地址地址內(nèi)存0x00…0x30350x31560x32780x33120x34340x35560x3678…如變量聲明如下(默認(rèn)存儲(chǔ)在內(nèi)存):ijk編譯(對(duì)于全局變量)或函數(shù)調(diào)用(對(duì)于全局變量)時(shí)根據(jù)變量的類型為其分配地址,具體地址,我們不必關(guān)心。首地址就是該變量的地址內(nèi)存中每個(gè)字節(jié)有一個(gè)編號(hào)-----地址首地址就是該變量的地址

就像院長(zhǎng)只知道我院有多少學(xué)生宿舍,但并不關(guān)心哪個(gè)學(xué)生住哪個(gè)宿舍一樣。一個(gè)字符型變量分配一字節(jié)(char)內(nèi)存單元,一個(gè)整型(int)變量分配兩字節(jié)內(nèi)存單元,一個(gè)長(zhǎng)整型變量分配4字節(jié)內(nèi)存單元。2謝謝觀賞2019-5-91、變量與地址地址內(nèi)存0x00…0x30350x31560x地址外存0x0000…0x2000350x2001560x2002780x2003120x2004340x2005560x200678…如變量聲明如下(定義在外存):ijk首地址就是該變量的地址

外存,64K字節(jié)地址:0x0000-0xFFFF編譯(對(duì)于全局變量)或函數(shù)調(diào)用(對(duì)于全局變量)時(shí)根據(jù)變量的類型為其分配地址,具體地址,我們不必關(guān)心。首地址就是該變量的地址3謝謝觀賞2019-5-9地址外存0x0000…0x2000350x2001560x2地址外存0x0000…0x2000350x2001560x2002780x200312…0x3000xx0x3001xx…ijk2、指針通過(guò)變量名獲取變量值,是變量的基本使用方法——直接訪問(wèn)。通過(guò)對(duì)變量地址的訪問(wèn),獲取變量的值——間接訪問(wèn)。要訪問(wèn)變量的地址就涉及到了指針。就本質(zhì)而言,指針就是地址。以定義在外部存儲(chǔ)器變量為對(duì)象,具體說(shuō)明指針的概念例3412間接訪問(wèn),使用于訪問(wèn)數(shù)組、字符串(有序存儲(chǔ)的“一串?dāng)?shù)據(jù)”,“一片存儲(chǔ)區(qū)”)。4謝謝觀賞2019-5-9地址外存0x0000…0x2000350x2001560x2①指針變量②指針變量的定義指針變量是用來(lái)存儲(chǔ)地址值的變量。首先,指針變量本身也是變量,其次,指針變量的值只能是地址(16bit,占2兩個(gè)字節(jié))。類型名*指針變量名;例如:指針(變量)將來(lái)只能指向整型變量,即:指針變量的類型,應(yīng)和它指向的對(duì)象類型匹配一致“*”是指針(變量)的標(biāo)示符,指針(變量)是k,而不是*k!一般不賦初值,無(wú)實(shí)際意義5謝謝觀賞2019-5-9①指針變量②指針變量的定義指針變量是用來(lái)存儲(chǔ)地址值的變量。類③指針變量的指向指針變量賦值,就是獲取指向“某變量地址”的過(guò)程。例如:0x0000…0x2000350x2001560x2002780x200312…0x3000xx0x3001xx…0020041Eij指針變量k0x7812>>2是1E04指針變量k,指向整型變量i,k的值就是i的地址“&”—“取地址”運(yùn)算符“*k”是變量i?!発”是變量i的地址不必關(guān)心k的地址6謝謝觀賞2019-5-9③指針變量的指向例如:0x0000…0x2000350x20第7章AD轉(zhuǎn)換器的控制

7.1.1AD轉(zhuǎn)換器7.1概述AD轉(zhuǎn)換器即ADC(AnalogtoDigitalConverter),是能將模擬量轉(zhuǎn)換為數(shù)字量的器件。7.1.2AD轉(zhuǎn)換分辨率(分解度)常用轉(zhuǎn)換結(jié)果的二進(jìn)制數(shù)的位數(shù)來(lái)表示。位數(shù)越大,分辨率越高。例:模擬量的變化范圍:0V-5V,AD轉(zhuǎn)換器分辨率是8位。5V/28=5V/256≈0.02V=20mV經(jīng)8位AD轉(zhuǎn)換器,能區(qū)別的最小輸入電壓(也就是數(shù)字量1對(duì)應(yīng)的電壓)為:經(jīng)12位AD轉(zhuǎn)換器,能區(qū)別的最小輸入電壓為:5V/212=5V/4069≈0.0012V=1.2mV7謝謝觀賞2019-5-9第7章AD轉(zhuǎn)換器的控制7.1.1AD轉(zhuǎn)換器7.17.2.3AD轉(zhuǎn)換時(shí)間

即完成一次AD轉(zhuǎn)換所用的時(shí)間輸出的數(shù)字量為:N—A/D轉(zhuǎn)換器的位數(shù)參考電壓模擬輸入電壓8謝謝觀賞2019-5-97.2.3AD轉(zhuǎn)換時(shí)間即完成一次AD轉(zhuǎn)換所用的時(shí)間輸出的7.2ADC08097.2.1ADC0809介紹

8路模擬通道輸入8位,8路通道,轉(zhuǎn)換時(shí)間100μs參考電壓輸入8位數(shù)字量輸出模擬通道地址輸入轉(zhuǎn)換結(jié)束輸出端轉(zhuǎn)換啟動(dòng)信號(hào)輸入時(shí)鐘輸入端地址鎖存輸入輸出允許輸入9謝謝觀賞2019-5-97.2ADC08097.2.1ADC0809介紹8地址穩(wěn)定的模擬量ADDALEAINSTARTEOCOE數(shù)字量DOUTADC0809時(shí)序完成一次A/D,最多需要10個(gè)時(shí)鐘(8位逐次漸進(jìn)A/D)不必關(guān)心!先準(zhǔn)備好地址,再鎖存地址啟動(dòng)轉(zhuǎn)換之前及轉(zhuǎn)換期間,模擬量必須穩(wěn)定啟動(dòng)轉(zhuǎn)換后,EOC=0,表示正在轉(zhuǎn)換EOC=1,表示轉(zhuǎn)換結(jié)束ENABLE=0,數(shù)據(jù)線為“高阻”單片機(jī)“發(fā)現(xiàn)”EOC=1后,置ENABLE=1,數(shù)據(jù)線輸出數(shù)字量ENABLE=0,數(shù)據(jù)線為“高阻”10謝謝觀賞2019-5-9地址穩(wěn)定的模擬量ADDALEAINSTARTEOCOE數(shù)字量功能要求:用ADC0809實(shí)現(xiàn)一路A/D數(shù)模轉(zhuǎn)換,并用LCD顯示。7.2.2ADC0809應(yīng)用實(shí)例1(查詢)

1、硬件連接(電路)地址穩(wěn)定的模擬量ADDALEAINSTART從時(shí)序圖可以看到,ALE上升沿鎖存地址,START下降沿啟動(dòng)A/D必須先鎖存地址,再啟動(dòng)A/D,因而這兩個(gè)信號(hào)可以“合并”。11謝謝觀賞2019-5-9功能要求:用ADC0809實(shí)現(xiàn)一路A/D數(shù)模轉(zhuǎn)換,并用LCD晶振12M、復(fù)位電路未畫(huà)出顯示電路未畫(huà)出要求較高時(shí)要用專用基準(zhǔn)源,價(jià)格較高4分頻降低頻率,以滿足ADC0809的要求晶振12M輸出2M的脈沖500K時(shí)鐘脈沖只用通道0ENABLE和START共用上拉電阻12謝謝觀賞2019-5-9晶振12M、復(fù)位電路未畫(huà)出顯示電路未畫(huà)出要求較高時(shí)要用專用基2.軟件

I/O口定義

13謝謝觀賞2019-5-92.軟件I/O口定義13謝謝觀賞2019-5-9地址穩(wěn)定的模擬量ADDALEAINSTARTEOCOE數(shù)字量DOUT編程:就是實(shí)現(xiàn)時(shí)序圖

14謝謝觀賞2019-5-9地址穩(wěn)定的模擬量ADDALEAINSTARTEOCOE數(shù)字量功能要求:ADC0809實(shí)現(xiàn)八路A/D數(shù)模轉(zhuǎn)換(數(shù)據(jù)采集)。7.2.3ADC0809應(yīng)用實(shí)例1(總線、中斷、指針)

將ADC0809視為內(nèi)存單元——利用數(shù)據(jù)總線/地址總線交換信息(控制/讀取數(shù)據(jù))電路15謝謝觀賞2019-5-9功能要求:ADC0809實(shí)現(xiàn)八路A/D數(shù)模轉(zhuǎn)換(數(shù)據(jù)采集)。16謝謝觀賞2019-5-916謝謝觀賞2019-5-9A15..A8A7..0ALE/RDP0P2DATAIN時(shí)序是由單片機(jī)執(zhí)行讀外部數(shù)據(jù)存儲(chǔ)器時(shí)“自動(dòng)”完成AT89C51讀外部數(shù)據(jù)存儲(chǔ)器的時(shí)序高阻P0口先輸出存儲(chǔ)器的低8位地址A7..0P2口輸出存儲(chǔ)器的高8位地址A15..8P0口從存儲(chǔ)器讀數(shù)據(jù)將A7..0鎖存在74HC573中讀:通知外存將數(shù)據(jù)送到端口17謝謝觀賞2019-5-9A15..A8A7..0ALE/RDP0P2DATAIN時(shí)A15..A8A7..0ALE/WRP0P2DATAOUTAT89C51寫(xiě)外部數(shù)據(jù)存儲(chǔ)器的時(shí)序高阻P0口先輸出存儲(chǔ)器的低8位地址P2口輸出存儲(chǔ)器的高8位地址寫(xiě):通知外存,存儲(chǔ)數(shù)據(jù)將A7..0鎖存在74HC573中鎖存地址后P0口輸出數(shù)據(jù)時(shí)序是由單片機(jī)執(zhí)行寫(xiě)外部數(shù)據(jù)存儲(chǔ)器時(shí)“自動(dòng)”完成18謝謝觀賞2019-5-9A15..A8A7..0ALE/WRP0P2DATAOUT網(wǎng)絡(luò)標(biāo)號(hào),同一標(biāo)號(hào)是接在一起的時(shí)鐘電路未畫(huà)轉(zhuǎn)換結(jié)束時(shí),產(chǎn)生上升沿實(shí)現(xiàn)反相下降沿觸發(fā)中斷低8位地址鎖存,固定接法!或非門(mén)高8位地址只用了A15(P2.7)執(zhí)行一次寫(xiě)操作,產(chǎn)生一個(gè)正脈沖執(zhí)行一次讀操作,產(chǎn)生一個(gè)正脈沖讀寫(xiě)信號(hào)通常是119謝謝觀賞2019-5-9網(wǎng)絡(luò)標(biāo)號(hào),同一標(biāo)號(hào)是接在一起的時(shí)鐘電路未畫(huà)轉(zhuǎn)換結(jié)束時(shí),產(chǎn)生上地址:0x7ff8-0x7fffP2:01111111P0:11111000-11111111高8位地址只用了A15(P2.7)執(zhí)行一次寫(xiě)操作,產(chǎn)生一個(gè)正脈沖執(zhí)行一次讀操作,產(chǎn)生一個(gè)正脈沖讀寫(xiě)信號(hào)通常是1不使用的“位”統(tǒng)統(tǒng)置1,一是,可以減小功耗;二是不影響這些位做輸入20謝謝觀賞2019-5-9地址:0x7ff8-0x7fff高8位地址只用了A15(P20寫(xiě)操作,只有P2.7(A15)和/WR(寫(xiě))信號(hào)起作用??,目的(1)將已鎖存在74HC573的低三位地址鎖存(上升沿)到ADC0809;(2)啟動(dòng)(下降沿)

ADC080921謝謝觀賞2019-5-90寫(xiě)操作,只有P2.7(A15)和/WR(寫(xiě))信號(hào)起作用??0讀操作,只有P2.7(A15)和/RD(寫(xiě))信號(hào)起作用,只是為ADC0809的/OE提供一個(gè)正脈沖(高電平期間將結(jié)果送到數(shù)據(jù)線上22謝謝觀賞2019-5-90讀操作,只有P2.7(A15)和/RD(寫(xiě))信號(hào)起作用,只程序23謝謝觀賞2019-5-9程序23謝謝觀賞2019-5-924謝謝觀賞2019-5-924謝謝觀賞2019-5-9不必設(shè)置優(yōu)先級(jí)。50mS定時(shí)器0中斷一次,中斷20次

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論