我們在開發單片機程式的時候,經常會碰到編譯沒有錯誤,程式代碼反復的檢查,但就是找不到問題所在,不知道問題到底出現在哪里了?
這個時候的心情就會特別煩躁,單片機程式代碼就是字母加數字,有點抽象,所以很多的程式代碼我們都在在芯片原廠提供技術資料上開發的,
如果單片機程式一旦出現一些比較抽象的問題,又找不出問題,那是一件非常苦惱的事情,
碰到這些問題,我們該怎么去處理,
①通過LED的閃爍效果來鎖定問題,懷疑那里有問題就在哪里實作LED的效果
②通過串口列印來查找問題,這個是我在51單片機程式開發程序中使用最多的除錯方法
③通過單片機硬體仿真來處理
雖然找問題有很多種辦法,但我們不得不認可,單片機硬體仿真是效率最高的,而且使用起來是非常方便的,
一.單片機仿真器是什么?
單片機仿真器就是一個幫助電子工程師,在產品開發程序中分析程式代碼運行的邏輯,查找問題的工具,

單片機仿真器和電腦仿真軟體配套使用,
仿真器的電腦仿真軟體可以對單片機程式進行單步跟蹤除錯,也可以設定斷點,全速運行等除錯手段來觀察程式代碼中各種變數,RAM以及暫存器的事實運行資料,跟蹤程式的執行情況,同時對硬體電路,軟體程式邏輯進行實時的除錯,
單片機仿真器可以迅速的幫助我們查找程式種的錯誤和問題,大大提高我們處理程式代碼運行例外的效率,
尤其是對于單片機程式開發經驗不豐富的初學者,如果程式運行中出現問題,無法通過肉眼觀察程式運行的現象找到程式代碼的問題,特別是一些比較隱秘的問題,更是難以解決,
二.51仿真器有必要買嗎?
51單片機專案我已經做過很多,但到目前為止,我還沒有用過仿真器,我們在某寶上搜索51仿真器,出來的都是ARM仿真器,半天也沒有找到一個51單片機仿真器的商品,
這是因為51單片機專案開發中,使用仿真器的軟體工程師很少,基本上沒有什么市場,而STM32單片機的開發,仿真似乎是必不可少的工具,
另一個就是傳統的51單片機是不支持仿真的,如果需要仿真功能,就需要購買專用的仿真芯片,這種操作感覺比較麻煩,
51單片機的程式代碼量相對比較小,如果有什么問題,我們基本上可以協助LED燈閃爍來查找到問題,也可以通過串口列印的方式來除錯,
但是如果大家基礎比較差的話,大家可以選擇購買支持仿真的51單片機芯片來學習,
STC單片機的仿真功能介紹:
習最常用的51單片機就是STC品牌的51單片機,STC的51單片機很很多型號,也分很多系列,
打開STC官方提供干的STC-ISP軟體,選擇Keil仿真設定,如下圖所示:

我們在Keil仿真配置中,可以參看STC支持仿真的所有單片機的型號,
STC單片機的仿真操作:

STC單片機仿真使用方法:
1、首先必須安裝仿真驅動,可通過點擊此頁面中的”添加MCU型號到Keil中”按鈕進行安裝
2、準備1片支持仿真的STC單片機芯片,并在Keil仿真設定界面,單片機型號種選擇對應的單片機型號
3、將其設定為仿真目標芯片
4、按照上圖將芯片與電腦進行連接
5、打開目標CPU的電源
6、在Keil軟體中打開專案,并進行相關設定(參考STC Monitor51仿真器使用指南)
7、設定完成即可開始除錯
8、仿真監控程式占用P3.0/P3.1口,但不占用串口1,
用戶可以將串口1切換到P3.6/P3.7或者P1.6/P1.7再使用
9.仿真監控程式占用內部擴展RAM(XDATA)的最后768位元組
51單片機學習程序中,我們是不需要購買仿真器的,因為壓根就沒有51單片機仿真器,
如果想實作51單片機的仿真功能,大家選擇支持仿真功能芯片的開發板即可,
三.51單片機和52單片機的區別是什么?
51單片機和52單片機都屬于8位單片機,但52單片機的資源更豐富,是51單片機的升級優化版本,

52單片機是在51單片機的基礎上做了很多的改進,增加了很多51單片機不具備的功能,擁有靈巧的8位CPU和系統可編程Flash等,
主要區別:
①51單片機的RAM是128個位元組,52單片機是256個位元組
②52單片機是51單片機的增強型,52單片機和51單片機相比,定時器多一個T2,RAM多128B,ROM多4K,中斷多2個,多一個看門狗,在掉電、資料指標等方面還有一些改進,
③52單片機支持低功耗功能,
④52單片機的最高外接晶振可以達到33MHz,51單片機只有24MHz,部分型號支持內部時鐘,
在實際開發程序中,51單片機和52單片機是相互兼容的,沒有太大的區別,只要單片機的外設資源可以滿足需求就沒有問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297653.html
標籤:其他
上一篇:基于51單片機的車速控制系統
下一篇:IoT邊緣,你究竟是何方神圣?
