<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 沒有仿真器開發(fā)單片機程序

          沒有仿真器開發(fā)單片機程序

          作者: 時間:2011-12-29 來源:網(wǎng)絡(luò) 收藏

          我大大小小斷斷續(xù)續(xù)也算開發(fā)了幾年P(guān)IC了.除了一開始用了ICD開發(fā)了一個之外,后來再也沒有用過硬件仿真.說來有些慚愧,到現(xiàn)在我自己掏腰包買的ICD2還沒啟用,硬件仿真器更是連見都沒見到過.這都是因為LB酸的緣故,這就不說了.

          先說到現(xiàn)在的單位開發(fā)的第一個東東.用的是12C508A,OTP的.先用MPLAB軟仿真,軟仿真的基本通過了,再"硬仿真",其實就是拿芯片燒了試.誰讓LB不肯買N千的仿真器呢?好在當時倉庫里有N萬片,燒!不過后來我自己有些肉痛,想想一個程序才100多句,燒一次還有300多字空的,怪可惜的,又想了一個一片燒幾次的辦法,先在這里簡單介紹一下.

          關(guān)鍵是寫程序的時候要當心一點.比如一個芯片打算寫3次就這樣寫:
          1.第一次編程的時候在第一句寫上ORG0x03,然后寫GOTOSTART1
          2.在后面的程序中緊跟著寫程序,每個子程的標號為LABLE1_X
          3.燒寫....
          4.測試...
          5.第二次編程,在第一次的GOTOSTART1前面一句寫ORG0x02,然后寫GOTOSTART2
          6.緊跟在第一次的程序后面去掉END寫第二次程序,每個子程序的標號為LABLE2_X.
          7.燒第二次...校驗OK...
          8.測試...
          大家明白了嗎?還可以舉一反三,想想有中斷時怎么多次燒寫...
          余容后述......

          后來漸漸開發(fā)的程序大了,光靠看波形看不出什么名堂,要看內(nèi)存,怎么辦?只有把那些數(shù)值讀出來,可又沒其它的硬件...好在現(xiàn)在都有FLASH芯片,程序大一點,多燒幾次沒關(guān)系...有什么用?!先別急,電腦肯定有,再到網(wǎng)上當一個串口調(diào)試軟件,再編一個串口通訊程序,使可以和電腦通訊...明白了嗎?

          隔一段時間把關(guān)鍵的寄存器值送到電腦上...16進制看不懂?有BIN2BCD的子程序,還看不明白?有BCD2ASCII的子程序...

          我就這樣收啊收,什么地方有問題,就調(diào)用一下串口通訊的發(fā)哪個寄存器的值...只要你高興,增加一個CALL而已...

          端口不夠?指示燈總有一個吧?數(shù)字輸入腳總有一個吧?暫時借來復用一下...
          況且,ICD也要占用兩個口,幾個寄存器,一段程序空間,總比買一個ICD簡單吧?況且實時/實地仿真,再好也沒有了?



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();