程序設(shè)計(jì)中使用指針可以使程序簡(jiǎn)潔緊湊高效有效地課件_第1頁
程序設(shè)計(jì)中使用指針可以使程序簡(jiǎn)潔緊湊高效有效地課件_第2頁
程序設(shè)計(jì)中使用指針可以使程序簡(jiǎn)潔緊湊高效有效地課件_第3頁
程序設(shè)計(jì)中使用指針可以使程序簡(jiǎn)潔緊湊高效有效地課件_第4頁
程序設(shè)計(jì)中使用指針可以使程序簡(jiǎn)潔緊湊高效有效地課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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語言知識(shí)(161頁):指針1謝謝欣賞2019-7-131、變量與地址地址內(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-7-13地址外存0x0000…0x2000350x2001560x2002780x2003120x2004340x2005560x200678…如變量聲明如下(定義在外存):ijk首地址就是該變量的地址

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

即完成一次AD轉(zhuǎn)換所用的時(shí)間輸出的數(shù)字量為:N—A/D轉(zhuǎn)換器的位數(shù)參考電壓模擬輸入電壓8謝謝欣賞2019-7-137.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-7-13地址穩(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-7-13功能要求:用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-7-13晶振12M、復(fù)位電路未畫出顯示電路未畫出要求較高時(shí)要用專用基準(zhǔn)源,價(jià)格較高4分頻降低頻率,以滿足ADC0809的要求晶振12M輸出2M的脈沖500K時(shí)鐘脈沖只用通道0ENABLE和START共用上拉電阻12謝謝欣賞2019-7-132.軟件

I/O口定義

13謝謝欣賞2019-7-13地址穩(wěn)定的模擬量ADDALEAINSTARTEOCOE數(shù)字量DOUT編程:就是實(shí)現(xiàn)時(shí)序圖

14謝謝欣賞2019-7-13功能要求: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-7-1316謝謝欣賞2019-7-13A15..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-7-13A15..A8A7..0ALE/WRP0P2DATAOUTAT89C51寫外部數(shù)據(jù)存儲(chǔ)器的時(shí)序高阻P0口先輸出存儲(chǔ)器的低8位地址P2口輸出存儲(chǔ)器的高8位地址寫:通知外存,存儲(chǔ)數(shù)據(jù)將A7..0鎖存在74HC573中鎖存地址后P0口輸出數(shù)據(jù)時(shí)序是由單片機(jī)執(zhí)行寫外部數(shù)據(jù)存儲(chǔ)器時(shí)“自動(dòng)”完成18謝謝欣賞2019-7-13網(wǎng)絡(luò)標(biāo)號(hào),同一標(biāo)號(hào)是接在一起的時(shí)鐘電路未畫轉(zhuǎn)換結(jié)束時(shí),產(chǎn)生上升沿實(shí)現(xiàn)反相下降沿觸發(fā)中斷低8位地址鎖存,固定接法!或非門高8位地址只用了A15(P2.7)執(zhí)行一次寫操作,產(chǎn)生一個(gè)正脈沖執(zhí)行一次讀操作,產(chǎn)生一個(gè)正脈沖讀寫信號(hào)通常是119謝謝欣賞2019-7-13地址:0x7ff8-0x7fffP2:01111111P0:11111000-11111111高8位地址只用了A15(P2.7)執(zhí)行一次寫操作,產(chǎn)生一個(gè)正脈沖執(zhí)行一次讀操作,產(chǎn)生一個(gè)正脈沖讀寫信號(hào)通常是1不使用的“位”統(tǒng)統(tǒng)置1,一是,可以減小功耗;二是不影響這些位做輸入20謝謝欣賞2019-7-130寫操作,只有P2.7(A15)和/WR(寫)信號(hào)起作用??,目的(1)將已鎖存在74HC573的低三位地址鎖存(上升沿)到ADC0809;(2)啟動(dòng)(下降沿)

ADC080921謝謝欣賞2019-7-130讀操作,只有P2.7(A15)和/RD(寫)信號(hào)起作用,只是為ADC0809的/OE提供一個(gè)正脈沖(高電平期間將結(jié)果送到數(shù)據(jù)線上22謝謝欣賞2019-7-13程序23謝謝欣賞2019-7-1324謝謝欣賞

溫馨提示

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