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