|
我是一個(gè)初學(xué)者,和很多人一樣,一直在www.torrancerestoration.com論壇里尋找著對(duì)自己來(lái)說(shuō)有價(jià)值的東西。學(xué)習(xí)proteus也有一段時(shí)間了。我想我的收獲很大。在此,我想把我學(xué)習(xí)的一些心得,包括在學(xué)習(xí)的過(guò)程中遇到的問(wèn)題和大家一起來(lái)分享,希望我們大家可以在這個(gè)很好的平臺(tái)上一起學(xué)習(xí)進(jìn)步。
1.有一點(diǎn)很不明白 為什么 asm文件名如果是兩個(gè)單詞組成,比如說(shuō) External Interrupt .asm ,那這個(gè)文件在編譯的就會(huì)發(fā)生錯(cuò)誤,而當(dāng)把文件名改成由一個(gè)單詞組成時(shí),如External.asm ,那這個(gè)文件就沒(méi)有錯(cuò)誤。 但是 這個(gè) External Interrupt .asm 在我原先時(shí)是可以用的,好象移到這里就不行了 ?
最新發(fā)現(xiàn):好象還有是路徑的問(wèn)題。
請(qǐng)問(wèn)老師:是不是一模一樣的程序放在不同的地方去構(gòu)建,效果是不一樣的?(比如說(shuō)原來(lái)這個(gè)程序在D盤(pán)中是對(duì)的,但把它放到E盤(pán)就有錯(cuò)了)為什么一模一樣的程序,原來(lái)是可以運(yùn)行的,但是后來(lái)就不行了?而且出現(xiàn)了很多錯(cuò)誤。 就比如說(shuō)老師給我們的程序計(jì)數(shù)器實(shí)驗(yàn)(其源程序是Timer Application 和 Timer ,編譯Timer Application 時(shí)說(shuō)什么 older 什么的,不明白怎么回事。在編譯Timer 時(shí),出現(xiàn)了很多錯(cuò)誤。 有待解決。
2. 首先,cjne P0,#0FFH,LOOP1 這個(gè)語(yǔ)句是非法的。P0處應(yīng)該用寄存器 a ,應(yīng)該改為兩個(gè)語(yǔ)句:mov a,#0EFh ;cjne a,#FFH,LOOP;這樣才是正確的。其次,什么時(shí)候該用a, 而什么時(shí)候該用ACC 都是有講究的 ,還需要進(jìn)一步完善這部分的區(qū)別。
3. 1仿真軟件的管腳(這里指單片機(jī),其他的心片還不清楚)默認(rèn)時(shí)是低電平。而且,管腳處的顏色也可以判斷:藍(lán)色的表示低電平,紅色的表示高電平。
4. 1.如何比較快的把一個(gè)現(xiàn)成的程序畫(huà)出它的流程圖,存在一定的問(wèn)題,問(wèn):這是否有技巧?
2.在中斷中,是否可以又一些對(duì)主程序跳轉(zhuǎn)的語(yǔ)句,若有,則它的執(zhí)行過(guò)程是怎么樣的?
就比如說(shuō)以下這個(gè)中斷子程序:
INTERRUPT:
push psw
cpl a
cjne a,#0ffh,led
led:{
大括號(hào)內(nèi)表示
sjmp loop1 ; loop1是主程序中的
}
sjmp loop ;這個(gè)loop是在主程序中
pop psw
redi
end
換句話說(shuō)就是在執(zhí)行中斷的過(guò)程中是否可以跳到外面去執(zhí)行一個(gè)子程序,然后又跳回來(lái)?
5. 在myself3 這個(gè)實(shí)驗(yàn)的過(guò)程,可以發(fā)現(xiàn),我們可以在中斷中去執(zhí)行一些比較復(fù)雜的語(yǔ)句,比如各種循環(huán)語(yǔ)句等(能否在中斷中調(diào)用子程序本人還未試,需要用一個(gè)實(shí)驗(yàn)去驗(yàn)證才知道)。
6.在myself4這個(gè)實(shí)驗(yàn)中有一點(diǎn)小疑問(wèn)????(已經(jīng)在程序中標(biāo)明),這個(gè)問(wèn)題的存在,說(shuō)明這個(gè)知識(shí)點(diǎn)還未搞透。
7.今天在上機(jī)時(shí)候發(fā)現(xiàn)一個(gè)很奇怪的問(wèn)題 ,就是在 在“系統(tǒng)文件與源程序”這個(gè)文件夾中,好象對(duì)文件名的設(shè)定有一定的要求,比如 把文件名 “源程序2” 改成 “源程序(。。)”
在仿真軟件中去加載這個(gè)文件名下的源程序就會(huì)發(fā)生錯(cuò)誤。 而把帶括號(hào)的那部分去掉,例如改成“源程序2”或“源程序3”等等只要不帶括號(hào)的就沒(méi)有了錯(cuò)誤。
從而得出的結(jié)論就是:建立新的文件夾時(shí)文件名不可以帶有括號(hào)。 (但是不知道其產(chǎn)生這個(gè)問(wèn)題的真正的原因,需要請(qǐng)教有關(guān)人士???????)
8. 今天上機(jī)后發(fā)現(xiàn)一個(gè)現(xiàn)象,就是 加載設(shè)計(jì)時(shí),系統(tǒng)默認(rèn)的路徑總是和 單片機(jī)仿真軟件bin里面的內(nèi)容的的存放的位置有關(guān),比如說(shuō)當(dāng)你把那文件里的所有子文件放到一個(gè)新建的文件夾里時(shí),那你加載設(shè)計(jì)后它的默認(rèn)文件就是你剛剛建立的新文件夾的內(nèi)容。所以為了在加載時(shí)可以默認(rèn)的顯示你所要的文件夾,你就應(yīng)該把那些子文件放在你所要顯示的文件夾的外面。比如在我的這臺(tái)機(jī)子中,我想要它顯示的默認(rèn)的文件是 源程序1 源程序2 和 電路原理圖 ,那我就把那些子文件都放在了這三個(gè)文件夾的外面,又為了美觀,我把這些子文件隱 藏了。
9.昨天一直在搞那個(gè) keil 軟件 和 proteus 軟件 ,想把他們完美的結(jié)合起來(lái)(據(jù)說(shuō)是在keil 里可以單步操作,而在proteus 里可以看到硬件的運(yùn)行情況)但是搞了很久,還是沒(méi)有搞定。
現(xiàn)在也不太清楚這樣的結(jié)合有多少大的意義(希望各位高手或者老師可以給我答案???)
同時(shí)也發(fā)現(xiàn),keil 軟件 在識(shí)別錯(cuò)誤的能力上好象不強(qiáng)(可能是我沒(méi)有發(fā)現(xiàn),需要請(qǐng)教他人),也就是當(dāng)載入的程序有錯(cuò)誤時(shí),發(fā)現(xiàn)不了是第幾行錯(cuò),修改起來(lái)比較的不方便。所以我現(xiàn)在的做法是還是到 proteus 這個(gè)軟件上先運(yùn)行程序,看哪幾行錯(cuò)誤(僅僅是語(yǔ)法錯(cuò)誤),再去修改好。然后再載到 keil 軟件中。
現(xiàn)在我的總結(jié)就是:好象 keil這個(gè)軟件也沒(méi)有多少大的實(shí)際意義(因?yàn)橛X(jué)的單步操作沒(méi)有多大用了,因?yàn)橐浅绦虮旧碛绣e(cuò)就不能在keil里運(yùn)行,換句話說(shuō),它根本就不能幫你發(fā)現(xiàn)錯(cuò)誤),好象除了 與proteus 來(lái)聯(lián)機(jī)單步操作看硬件的執(zhí)行比較有用外,沒(méi)有多少其他的用途了。
我想這個(gè)認(rèn)識(shí)一定我對(duì)這個(gè)軟件的認(rèn)識(shí)還不夠(對(duì)它的認(rèn)識(shí),可能我根本遠(yuǎn)遠(yuǎn)不夠??)需要老師的開(kāi)導(dǎo)。
10.今天搞定了聯(lián)調(diào),但是遠(yuǎn)程聯(lián)機(jī)還不會(huì)
11.(6月6號(hào)晚1點(diǎn)) 今天發(fā)現(xiàn)了一個(gè)經(jīng)驗(yàn):就是說(shuō) 在建源程序的文件名的時(shí)候,如果是用中文,則不能超過(guò)4個(gè)字。否則會(huì)出現(xiàn)錯(cuò)誤。這個(gè)錯(cuò)誤找了很久都沒(méi)有發(fā)現(xiàn),也是無(wú)意中發(fā)現(xiàn)的。出現(xiàn)這個(gè)問(wèn)題的原因目前也不清楚。例如:你建的文件名是“課程設(shè)計(jì)溫度控制”,則編譯時(shí)就會(huì)出錯(cuò)。而改為“溫度控制”或者少于4個(gè)字就不會(huì)錯(cuò)。
12.TLC549 搞定.原來(lái)是用串行口發(fā)送來(lái)做的,發(fā)現(xiàn)不行。后來(lái)網(wǎng)上找了一個(gè),它是嚴(yán)格的按照時(shí)序來(lái)做的,經(jīng)過(guò)驗(yàn)證,是可行的。
13. 今天發(fā)現(xiàn)一個(gè)問(wèn)題,就是在PROTUES 里面,其所有的元器件必需用不同的名字命名。否則會(huì)出錯(cuò)。我就是把一個(gè)電路圖直接復(fù)制到另一個(gè)圖中,而且同樣的電路復(fù)制了多個(gè),結(jié)果運(yùn)行的時(shí)候?qū)е洛e(cuò)誤。開(kāi)始沒(méi)有發(fā)現(xiàn)問(wèn)題處在哪里,后來(lái)通過(guò)自己的改動(dòng)發(fā)現(xiàn)問(wèn)題出在了對(duì)相同元器件的命名上。這又是本人發(fā)現(xiàn)的一個(gè)細(xì)節(jié)的地方。 |
|