吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機硬件仿真與燒寫程序結果同的原因分析

GReq_mcu168 ? 來源:未知 ? 作者:工程師曾玲 ? 2018-10-02 11:45 ? 次閱讀

一.配置問題:

實際燒片時單片機的配置字與仿真的時候是不是一樣?燒寫時是否配置正確?

二.資源問題:

單片機的ROMRAM大小與仿真器的ROM、RAM大小是不一樣的!

三.驅動能力問題:

通常仿真器的驅動能力比單片機要強;可以分兩步檢查,一是分別用仿真器與單片機時對應IO口波形進行對比,二是當仿真器與外設連接與不連接時波形的對比;

要進行基本要素分析:單片機供電正常?起振沒有?復位電路正常?芯片損壞?

單片機上電不運行情況的分析

1.單片機是沒有運行,還是運行不正確?

2.如果是沒有運行,檢測單片機的基本參數是否已經滿足<工作電壓要在芯片的引腳處測量><復位引腳的復位曲線如何><晶振是否已經起振><芯片損壞,或者部分功能損壞>。

3.如果是運行不正確,檢測<用了看門狗,沒有處理好,芯片上電后處于不停的復位狀態,看起來就象沒有沒有工作起來><是否進入了ISP狀態><對單片機寫入對所有的IO口以1秒取反一次的程序進行測試>

單片機調試辦法

LED進行狀態指示,用串口進行數據指示,比用其它外設指示更可靠;

加入斷點,燒寫時是在不同的語句后面加入WHILE(1);

分模塊調試,把每個小功能先調試通過,再進行組合。

Keil C本身就是編譯與仿真一體的,當不要外部數據時很方便,當要外部輸入時(比如用定時器作計數器用)它提供幾個調試輸入用的窗口可用它們來摸擬輸入,同時Keil C本身提供一種調試函數用來配置摸擬外部輸入的功能,這我在學習時看的一本書上講過如用定時器作外部事件計數,調試函數由自己根據需要按特定的格式來編輯再按KEIL C的要求調入即可。學習時可用這種方法,做產品時最好是用仿真器調試。下面我給出我以前試過的用定時器作外部事件計數時摸擬外部輸入的調試函數,并寫出Keil C調用的步驟如下:

1、編寫如下信號函數:

single void t0_singal(void)

{

while(1)

{

PORT3|=0x10;//pull INT0(P3.4) high again

PORT3&=~0x10;//pull INT0(P3.4) low and generate interruptPORT3|=0x10;//pull INT0(P3.4) high again

twatch(CLOCK);//wait for 1 second

}

}

2、在DEBUG狀態下單擊DEBUG菜單在下拉菜單中單擊“Function Editor(Open Ini File)... "選項, 彈出新屏幕后,將“打開”窗口關閉,這時屏上有Function Edito窗;

3、在Function Editor窗中輸入上面的函數;

4、保存(注意:擴展名為.ini),編譯該程序,成功后關閉Function Editor窗口;

5、執行用戶程序(必須連續執行);

6、在屏幕左下腳的命令窗口中,鍵入t0_singl()后(必須回車)媽可向P3.4源源不斷地提供脈沖信號。

Keil C調試某系統時積累的一些經驗1、由于Keil C對中文支持不太好,因而會出現顯示的光標與光標實際所在不一致的現象,這會對修改中文注釋造成影響。在Windows2000下面,我們可以把字體設置為Courier,這樣就可以顯示正常。

2、當使用有片外內存的MCU(如W77E58,它有1K片外內存)的時候,肯定要設置標志位,并且編譯方式要選擇大模式,否則會出錯。

3、當使用Keil C跟蹤程序運行狀態的時候,要把引起Warning的語句屏蔽,否則有可能跟蹤語句的時候會出錯。

4、在調用數組的時候,Keil C是首先把數組Load進內存。如果要在C中使用長數組的時候,我們可以使用code關鍵字,這樣就實現了匯編的DB的功能,Keil C是不會把標志code的數組Load入內存的,它會直接讀取Rom。

5、當編程涉及到有關通信,時序是很重要的。拉高管腳的執行速度遠遠比檢查管腳電平的要快。

6、在等待管腳電平變化的時候,我們需要設置好超時處理,否則程序就會因為一個沒有預計的錯誤而死鎖。

7、能用C語言實現的地方,盡量不要用匯編,尤其在算法的實現,用匯編是晦澀難懂。

8、程序的幾個參數數組所占篇幅很大,其中液晶背景數組最長,有四千個Byte,因而把那些初始化數組都放在另外一個C文件,在主文件使用使用關鍵字extern定義,這樣就不會對主文件的編寫造成干擾。

9、所有函數之間的相關性越低越有利于以后功能的擴展。

10、6.20版在編譯帶code關鍵字的數組時,編譯通過但是單片機運行結果是錯誤的,改用6.14版后正常。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44622

    瀏覽量

    638524
  • 仿真
    +關注

    關注

    50

    文章

    4124

    瀏覽量

    133991

原文標題:總結硬件仿真與燒寫程序結果不一樣的原因

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    51單片機程序的方法

    STC89C51是應用廣泛的51單片機,很多人都是通過該單片機入門學習的,單片機的學習需要勤動手。單片機需要
    的頭像 發表于 09-11 10:10 ?5754次閱讀
    51<b class='flag-5'>單片機</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>程序</b>的方法

    單片機軟件

    單片機軟件,單片機軟件,單片機
    發表于 12-09 18:40 ?16次下載

    AVR單片機程序progisp172

    AVR單片機程序progisp172,感興趣的可以看看。
    發表于 03-23 17:46 ?111次下載

    單片機程序軟件

    單片機程序軟件
    發表于 01-07 21:01 ?17次下載

    51單片機怎么用usb程序

    ,用來進行通信下載程序和數據;;對自己搭建的電路板來說,仍會有MAX232芯片和RS232串口用來實現程序,實現對單片機寫入數據和
    發表于 11-16 11:18 ?5.9w次閱讀
    51<b class='flag-5'>單片機</b>怎么用usb<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>程序</b>

    對于單片機晶振不起振,不能程序原因分析和解決方法

    ; 3、懷疑單片機復位腳,用示波器測量發現復位腳為低,終于找到問題點; 4、復位腳為低,原因硬件復位狗打開了,而剛開始下載的程序沒有使能復位狗,故失效; 5、將復位
    的頭像 發表于 01-18 16:46 ?2.6w次閱讀
    對于<b class='flag-5'>單片機</b>晶振不起振,不能<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>程序</b>的<b class='flag-5'>原因</b><b class='flag-5'>分析</b>和解決方法

    什么是單片機軟件?如何

    什么是單片機軟件? 什么是單片機軟件? 簡單點說,就是把你寫好代碼(C或者是匯編)專程的
    發表于 04-14 11:04 ?3.5w次閱讀

    單片機方法總結

    單片機學習、使用非常重要的一個步驟就是把寫好的程序寫到單片機里,好多初學者,好不容易才寫好一個程序,馬上想讓他跑起來,但是如何
    發表于 07-07 09:55 ?1.1w次閱讀

    51單片機程序的方法

    STC89C51是應用廣泛的51單片機,很多人都是通過該單片機入門學習的,單片機的學習需要勤動手。單片機需要
    的頭像 發表于 04-04 15:54 ?2.4w次閱讀

    STC單片機問題原因分析

    大家可能開始學單片機都是學的STC的單片機,因為它不需要用什么編程器就可以直接,但我看到還是有人在
    發表于 07-15 15:11 ?3989次閱讀

    51單片機(二)—— 如何51單片機程序

    學習單片機很重要的一步就是為單片機程序
    發表于 11-12 10:06 ?14次下載
    51<b class='flag-5'>單片機</b>(二)—— 如何<b class='flag-5'>燒</b><b class='flag-5'>寫</b>51<b class='flag-5'>單片機</b><b class='flag-5'>程序</b>

    PIC OTP 單片機程序方法

    作者最近需要對PIC品牌的8位OPT 單片機進行程序;作者第一次使用這種OTP單片機,按照慣性遇到的問題一一記錄一下;MCU最小系統與
    發表于 11-16 12:51 ?12次下載
    PIC OTP <b class='flag-5'>單片機</b><b class='flag-5'>程序</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b>方法

    單片機的四種方式

    JTAG/SWD/ISP/SWIM詳解單片機的四種方式單片機是一種可編程控制器,搭好硬件電路后,可以利用
    發表于 11-24 18:21 ?7次下載
    <b class='flag-5'>單片機</b>的四種<b class='flag-5'>燒</b><b class='flag-5'>寫</b>方式

    串口 單片機 文件_單片機入門教程之程序方法

    單片機入門教程主要講的51單片機,和其他的單片機編程所涉及的軟件會有出入,51單片機是最基
    發表于 12-03 19:36 ?27次下載
    串口 <b class='flag-5'>單片機</b>  文件_<b class='flag-5'>單片機</b>入門教程之<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>程序</b>方法

    單片機仿真器和器的區別

    程序需要驗證的時候都得一次芯片,然后接到板子上,再上電運行,而且不支持多種調試方式。仿真器是通過硬件和相應的軟件對單片機進行
    發表于 12-29 19:49 ?13次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>仿真</b>器和<b class='flag-5'>燒</b><b class='flag-5'>寫</b>器的區別
    百家乐官网官| 澳门百家乐必赢技巧| 大发888游戏下载官网免费| 大东方百家乐官网游戏| 下三元八运24山详解| 模拟百家乐下| TT娱乐城开户,| 哪个百家乐官网网站最大| 澳门百家乐威尼斯| bet365信誉好吗| 搓牌百家乐官网技巧| 凱旋门百家乐的玩法技巧和规则 | 免费百家乐分析工具| 赙彩百家乐官网游戏规则| 澳门百家乐规则| 永利高平台| 百家乐官网怎样出千| 百家乐专打方法| 百家乐官网平注常赢打法| 百家乐筹码币套装| 百家乐官网园百利宫娱乐城信誉好...| 金沙百家乐的玩法技巧和规则 | 罗盘24层| 女神国际娱乐城| 百家乐游戏群号| 新皇冠娱乐城| 24山吉凶八卦图| 淘金盈娱乐城| 百家乐视频游戏网站| 小金县| 百家乐保证赢| 网上百家乐官网真的假的| 高尔夫百家乐的玩法技巧和规则| 百家乐官网游戏程序出售| 名人百家乐的玩法技巧和规则| 最大的百家乐官网网站| 全讯网六| 英皇百家乐官网的玩法技巧和规则| 88娱乐城址| 百家乐怎么玩能赢钱| 百家乐官网怎样概率大|