& 和 *
這大雜院傳達(dá)室有個老頭,負(fù)責(zé)送報紙,假如15-99號都有訂報紙,傳達(dá)室老頭負(fù)責(zé)送報紙,每送完一次報紙,就回傳達(dá)室做登記,假如報社去調(diào)查發(fā)放情況,只需要在傳達(dá)室看看,就知道發(fā)放情況,如果登記夠詳細(xì),甚至接收人姓名、年齡,等都可一目了然。其登記內(nèi)容可能是:
房間號-房主姓名-年齡-................-報紙發(fā)放情況
只要看到這個表格就很清楚,從這里可以知道老頭兒下一張報紙該送哪個房間,若數(shù)據(jù)夠詳細(xì)還可了解其他情況。
在程序中:
& 符號是指針賦值,相當(dāng)于登記簿上規(guī)劃好的表格,
* 符號是地址中的內(nèi)容,相當(dāng)于表格中填寫的數(shù)據(jù),發(fā)放情況,更詳細(xì)信息也可簿中相應(yīng)的欄中找到,
在很多程序中更需要類似這樣的處理,比如AIW0/AIW2/AIW4/AIW6..........AIW48,共25個的溫度傳感器即時溫度值,程序要求,把這25個輸入溫度值,直接傳送到.aqw0/aqwq/aqw2.............aqw48來調(diào)節(jié)風(fēng)門。
至少有兩種編程方法:
其一
使用直接語句
movw aiw0,aqw0
movw aiw1,aqw1,
....
movw aiw24,aqw24
需要有25句,如果有1000個數(shù)據(jù),則需要1000句。
其二
使用指針,假設(shè)使用M0.0,進(jìn)行控制數(shù)據(jù)轉(zhuǎn)移,vw100轉(zhuǎn)移到vw1100中,.....vw148轉(zhuǎn)移到vw1148中。
指針初始化:
LD M0.0
EU
MOVD &VB100, VD0
MOVD &VB1100, VD4
MOVW 0, VW8
數(shù)據(jù)處理
LD M0.0
MOVW *VD0, *VD4
指針修正
LD M0.0
+D 2, VD0
INCW VW8
處理結(jié)束
LD M0.0
AW>= VW8, 25
R M0.0, 1
可以看出,如果使用指針,只要經(jīng)過指針初始化,數(shù)據(jù)處理后修正指針,給定結(jié)束條件,則可處理任意數(shù)量,不論是1句還是1000句,都由同一程序完成,修改一下初始化賦值和結(jié)束條件,就可任意傳送。因此需要處理的數(shù)據(jù)量小時,使用直接數(shù)據(jù)較為直觀,數(shù)據(jù)量大時,使用指針編程更方便。
前者在一個掃描周期內(nèi)完成,對掃描周期影響很大
后者一個掃描周期僅傳送一組數(shù)據(jù),多個掃描周期才能完成,完成操作基本不影響掃描周期,不過傳輸速度稍慢。
還真是無聊,沒人理你就得了唄,還弄個老頭兒出來,還......還還看門的。[ 此帖被醉湮邃虞在2010-01-28 09:59重新編輯 ]