找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3343|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)程序調(diào)試之道

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71235 發(fā)表于 2014-12-28 00:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
    單片機(jī)程序調(diào)試和PC程序調(diào)試有很多不同,主要是1.單片機(jī)程序和硬件有直接的聯(lián)系,而PC機(jī)程序一般只是純軟件的調(diào)試。2.單片機(jī)調(diào)試手段很多,可以軟件仿真、硬件仿真、硬件指示電路、測(cè)量?jī)x器等等,大部分都跟外部設(shè)備有關(guān),需要一定的硬件設(shè)備投入,而PC機(jī)基本上是軟件界面的調(diào)試幾算法的調(diào)試,硬件投入基本沒(méi)有。3.單片機(jī)調(diào)試需要經(jīng)歷編程、編譯、燒片、調(diào)試這些階段,而PC調(diào)試只要編譯運(yùn)行就可以。下面以這次的GPS顯示終端的調(diào)試為例介紹本人的一些經(jīng)驗(yàn):

    1、仿真器仿真:GPS接收終端硬件很簡(jiǎn)單,只是51最小系統(tǒng),GPS模塊因?yàn)橹С諸TL電平,因而省去了rs232轉(zhuǎn)換電路,程序分兩塊,一塊是主程序,循環(huán)讀取顯示單元內(nèi)容并送液晶顯示,另一塊是串口中斷,中斷程序負(fù)責(zé)讀取串口數(shù)據(jù),處理后送相應(yīng)的顯示單元。程序編制完成后就是調(diào)試,初期調(diào)試發(fā)現(xiàn)液晶顯示器顯示不穩(wěn)定,部分顯示內(nèi)容與實(shí)際內(nèi)容不符,因?yàn)橹鞒绦蛄鞒滩皇呛軓?fù)雜,因此問(wèn)題可能出在串口中斷程序中,經(jīng)過(guò)不斷的修改程序流程、程序參數(shù),情況沒(méi)有很大的改觀,這時(shí)仿真器到了,經(jīng)仿真器的單步調(diào)試發(fā)現(xiàn)了一個(gè)變量有問(wèn)題,本應(yīng)該在讀取一個(gè)GPS字段后該清零的卻沒(méi)有清零,以至于后面的程序?qū)懭氲娘@示單元地址出現(xiàn)錯(cuò)位,顯示器顯示出的也就成了亂碼。

    2、采用模擬手段:在顯示單元錯(cuò)位這個(gè)問(wèn)題解決后,經(jīng)過(guò)連續(xù)運(yùn)行發(fā)現(xiàn)程序工作10幾分鐘后顯示器顯示就不正常,其中有個(gè)細(xì)節(jié),就是上電復(fù)位后能持續(xù)工作達(dá)1個(gè)小時(shí),而在顯示不正常后用按鈕復(fù)位后只能正常工作10來(lái)分鐘,初步判斷可能是顯示器硬件有問(wèn)題,但是顯示器顯示驅(qū)動(dòng)采用的是比較成熟的程序,出問(wèn)題的可能性不是很大,那么還有就是串口中斷程序還有BUG,該如何判斷呢?首先去掉GPS信號(hào)源,采用PC串口調(diào)試軟件模擬GPS模塊的輸出數(shù)據(jù),因?yàn)槟M方法可以調(diào)節(jié)發(fā)送數(shù)據(jù)的頻率,可以排除51單片機(jī)運(yùn)行速度過(guò)慢造成的問(wèn)題,不幸的是采用這個(gè)方法后還是不正常,然后再次修改了程序,簡(jiǎn)化了部分程序,加快了運(yùn)行處理速度,可問(wèn)題還是存在。

    3、硬件指示電路:接著在P3.7端口接了個(gè)指示燈,中斷程序中加入一個(gè)計(jì)數(shù)變量,當(dāng)程序連續(xù)接收10次GPS協(xié)議頭部時(shí)指示燈就閃一次,大約是2.5秒的周期,在顯示器顯示出錯(cuò)后,觀察指示燈的反應(yīng)很正常,因此顯示器出問(wèn)題的可能性更大了。

    4、輔助顯示:再接著在硬件上接入一個(gè)8段字符顯示器,顯示的是GPS接收到的時(shí)間單元,1小時(shí)后原來(lái)的1602顯示器顯示出錯(cuò)后,8段字符顯示器顯示仍然正常,現(xiàn)在終于可以確認(rèn)是1602顯示器的問(wèn)題了,至于是顯示器硬件本身的問(wèn)題還是程序驅(qū)動(dòng)的問(wèn)題,可以修改驅(qū)動(dòng)程序時(shí)序、更換顯示器來(lái)確認(rèn)了。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表