沒有仿真器開發(fā)單片機程序
我大大小小斷斷續(xù)續(xù)也算開發(fā)了幾年PIC了.除了一開始用了ICD開發(fā)了一個之外,后來再也沒有用過硬件仿真.說來有些慚愧,到現(xiàn)在我自己掏腰包買的ICD2還沒啟用,硬件仿真器更是連見都沒見到過.這都是因為LB酸的緣故,這就不說了.
先說到現(xiàn)在的單位開發(fā)的第一個東東.用的是12C508A,OTP的.先用MPLAB軟仿真,軟仿真的基本通過了,再"硬仿真",其實就是拿芯片燒了試.誰讓LB不肯買N千的仿真器呢?好在當時倉庫里有N萬片,燒!不過后來我自己有些肉痛,想想一個程序才100多句,燒一次還有300多字空的,怪可惜的,又想了一個一片燒幾次的辦法,先在這里簡單介紹一下.
關鍵是寫程序的時候要當心一點.比如一個芯片打算寫3次就這樣寫:
1.第一次編程的時候在第一句寫上ORG0x03,然后寫GOTOSTART1
2.在后面的程序中緊跟著寫程序,每個子程的標號為LABLE1_X
3.燒寫....
4.測試...
5.第二次編程,在第一次的GOTOSTART1前面一句寫ORG0x02,然后寫GOTOSTART2
6.緊跟在第一次的程序后面去掉END寫第二次程序,每個子程序的標號為LABLE2_X.
7.燒第二次...校驗OK...
8.測試...
大家明白了嗎?還可以舉一反三,想想有中斷時怎么多次燒寫...
余容后述......
后來漸漸開發(fā)的程序大了,光靠看波形看不出什么名堂,要看內存,怎么辦?只有把那些數(shù)值讀出來,可又沒其它的硬件...好在現(xiàn)在都有FLASH芯片,程序大一點,多燒幾次沒關系...有什么用?!先別急,電腦肯定有,再到網(wǎng)上當一個串口調試軟件,再編一個串口通訊程序,使單片機可以和電腦通訊...明白了嗎?
隔一段時間把關鍵的寄存器值送到電腦上...16進制看不懂?有BIN2BCD的子程序,還看不明白?有BCD2ASCII的子程序...
我就這樣收啊收,什么地方有問題,就調用一下串口通訊的發(fā)哪個寄存器的值...只要你高興,增加一個CALL而已...
端口不夠?指示燈總有一個吧?數(shù)字輸入腳總有一個吧?暫時借來復用一下...
況且,ICD也要占用兩個口,幾個寄存器,一段程序空間,總比買一個ICD簡單吧?況且實時/實地仿真,再好也沒有了?
評論