0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機程序如何編寫

姚小熊27 ? 來源:電工之家 ? 作者:電工之家 ? 2020-02-12 14:38 ? 次閱讀

設(shè)計編寫單片機程序是一個漸進(jìn)的過程不可一蹴而就,畢竟單片機程序是與硬件有密切關(guān)系的,我們一般稱為單片機程序叫底層硬件驅(qū)動程序。編寫程序不但要對軟件要熟悉而且對硬件也要熟悉才行,所以對于我們從事單片機技術(shù)的人員來說能夠編寫出沒有“bug”的優(yōu)秀程序需要具有“軟硬兼施”的本領(lǐng),否則編寫的程序就會出現(xiàn)問題。下面根據(jù)我學(xué)習(xí)單片機來談?wù)勎覍@個問題的體會。

設(shè)計不出來單片機程序的原因

我認(rèn)為初學(xué)者感覺設(shè)計不出真正的單片機程序是一個普遍的問題。我先說說剛學(xué)單片機的朋友為什么設(shè)計不出單片機程序,首先是對軟件知識和硬件知識有“短板”。因為程序的設(shè)計少不了使用程序語言,現(xiàn)在比較流行的單片機編程語言是C語言,如果在編程語言方面有欠缺的話編程會受到影響這是其一,其二是硬件方面,我們要知道單片機的外設(shè)硬件方面的一些工作原理,比如按鍵、顯示器件、各種驅(qū)動芯片等,這些都與數(shù)字電路模擬電路知識有關(guān),如果這方面有欠缺應(yīng)及時加強。

其次是對單片機程序與硬件的內(nèi)在聯(lián)系不清楚。我們編寫的程序是與單片機外設(shè)的硬件緊密相聯(lián)系的,如果不知道用編程語言的哪種處理方法或技巧去控制硬件工作,那么就無法編寫出控制程序。比如編寫一個測溫度的程序,如何能采集到溫度、如何編寫把溫度數(shù)據(jù)轉(zhuǎn)換成數(shù)碼管或者液晶能夠顯示的程序并分理處小數(shù)點等等都有一定的處理方法和技巧。

再次是缺乏設(shè)計編寫程序的經(jīng)驗。有句話叫“萬事開頭難”,我們在做許多事情時剛開始都會感覺到無所適從,我認(rèn)為這是很正常的現(xiàn)象,我建議剛開始學(xué)習(xí)時我建議從最簡單的開始,比如從控制LED小燈開始再到各種花樣的“跑馬燈”小程序、模擬交通燈程序、具有數(shù)碼管倒計時的模擬交通燈程序等,通過這樣的循序漸進(jìn),由簡入難地訓(xùn)練經(jīng)過一段時間就會見到成效;最后一點我認(rèn)為是缺乏整體布局的能力。因為一個完整的程序除了需要主程序外,還要有許多子程序。要完成整個控制流程就要對各個程序之間的不斷調(diào)用來實現(xiàn),這就要在程序的編排上要考慮周全。所以設(shè)計編寫也就是對整個控制流程有整體的把控才行。

單片機程序如何編寫

如何能編寫出合格的單片機程序

其實設(shè)計單片機并不是很難能,那么如何才能設(shè)計編寫出合格的單片機程序呢?我認(rèn)為要從以下幾個方面。一方面除了把我們自己感覺有“短板”的地方補齊外,另一方面我感覺還要做到以下幾點:

單片機程序如何編寫

第一點就是在設(shè)計程序時先要對控制的對象做全面的分析,也就是要把解決的問題的條件、初始化的數(shù)據(jù)、輸入與輸出的信息以及要達(dá)到的控制目的都要知道,雖然達(dá)不到“庖丁解?!钡哪欠N嫻熟的程度,最起碼要做到心中有數(shù)。

第二點是在設(shè)計程序時要確定程序的“算法”,這個詞聽起來有點高大上,其實我們在設(shè)計程序時要知道根據(jù)控制的要求和我們所有的條件來確定我們所用的計算方法。我在學(xué)C語言時經(jīng)常聽老師說:算法是程序的靈魂這一句話,當(dāng)時剛接觸對這句話并不理解,現(xiàn)在回頭看來這句話是很有道理的。這就像我們炒菜一樣,如果我們能按菜譜去做就非常好吃,若是隨心所欲去做菜那肯定難以下咽,我認(rèn)為在這方面兩者有“異工同曲”之處。

單片機程序如何編寫

第三點是要善于繪制流程圖,這一點在我們剛學(xué)習(xí)設(shè)計程序時我感覺很有必要。繪制流程圖可以直觀地體現(xiàn)我們編寫程序的思路,它也是我們設(shè)計程序時的依據(jù)。從一定程度上說能繪制完一個控制流程圖也就離設(shè)計出程序不遠(yuǎn)了。

第四點就是要抱著“他山之石,可以攻玉”的心態(tài)去多看別人的程序,學(xué)習(xí)別人的設(shè)計編寫程序的技巧。我們知道C語言的可移植性很好,看到有非常好的子程序只要略微修改一下就可以為我所用,這樣有時會節(jié)省很多時間。

我認(rèn)為只要通過以上幾點堅持下去,我們編寫出沒有“bug”的合格程序應(yīng)該是水到渠成的事情了!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635295
  • 單片機程序
    +關(guān)注

    關(guān)注

    1

    文章

    12

    瀏覽量

    9554
收藏 人收藏

    評論

    相關(guān)推薦

    單片機編程語言有哪些選擇

    單片機(Microcontroller Unit,MCU)編程是指為單片機編寫程序的過程,這些程序控制單片機的行為和功能。單片機廣泛應(yīng)用于嵌
    的頭像 發(fā)表于 11-01 14:13 ?551次閱讀

    單片機怎么寫入程序

    程序通常涉及以下幾個步驟: 選擇單片機和開發(fā)環(huán)境 : 確定項目需求,選擇合適的單片機型號。 安裝相應(yīng)的開發(fā)環(huán)境,如Keil、IAR、MPLAB等。 硬件連接 : 將單片機連接到開發(fā)板或
    的頭像 發(fā)表于 10-21 11:21 ?468次閱讀

    keil可以讀出單片機程序

    表述存在一定的誤解,因為Keil主要是用于編寫、編譯和調(diào)試單片機程序的工具,而不是直接從單片機中讀取已編程代碼的工具。 一、Keil的主要功能 編程開發(fā) :Keil允許用戶使用C語言或
    的頭像 發(fā)表于 09-02 10:32 ?957次閱讀

    單片機燒錄程序用什么軟件

    單片機燒錄程序單片機開發(fā)過程中的一個重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機的R
    的頭像 發(fā)表于 09-02 10:05 ?1234次閱讀

    單片機燒錄程序可以重新燒嗎

    單片機(Microcontroller Unit, MCU)是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等集成在一塊芯片上,用于控制各種電子設(shè)備。單片機燒錄程序是指將編寫
    的頭像 發(fā)表于 09-02 10:04 ?1239次閱讀

    單片機燒錄程序的線比單片機上的少還能燒錄嗎

    單片機燒錄原理 單片機燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機的存儲器中,使其能夠按照程序
    的頭像 發(fā)表于 09-02 09:54 ?501次閱讀

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序單片機開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機
    的頭像 發(fā)表于 09-02 09:47 ?1053次閱讀

    藍(lán)牙模塊如何實現(xiàn)單片機和手機端數(shù)據(jù)互傳

    ZX-D30、ZX-D37、ZX-D32等。 藍(lán)牙模塊設(shè)置 : 將藍(lán)牙模塊與單片機連接。通常,藍(lán)牙模塊通過串口(UART)與單片機通信。 設(shè)置藍(lán)牙模塊的工作模式和參數(shù),例如波特率、名稱、停止位、數(shù)據(jù)位等。這通常通過發(fā)送特定的AT命令來完成。
    的頭像 發(fā)表于 07-24 17:59 ?2490次閱讀
    藍(lán)牙模塊如何實現(xiàn)<b class='flag-5'>單片機</b>和手機端數(shù)據(jù)互傳

    基于51單片機數(shù)字時鐘鬧鐘設(shè)計

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機數(shù)字時鐘鬧鐘設(shè)計包含了PDF版本電路圖、C語言程序源代碼(keil軟件打開)、proteus仿真。本資源適合人群:? ? ? 單片機愛好者、電子
    發(fā)表于 06-25 10:17 ?0次下載

    基于51單片機分立器件超聲波測距電路圖及程序元件清單

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機分立器件超聲波測距電路圖及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發(fā)表于 06-20 16:17 ?0次下載

    基于51單片機8路搶答器電路圖proteus仿真及程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機8路搶答器電路圖proteus仿真及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開
    發(fā)表于 06-19 14:15 ?1次下載

    基于51單片機16路搶答器電路圖及程序元件清單

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機16路搶答器電路圖及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單(excel表格
    發(fā)表于 06-19 11:38 ?2次下載

    數(shù)字電路仿真軟件單片機怎么用

    數(shù)字電路仿真軟件是一種用于模擬和測試數(shù)字電路設(shè)計的工具。其中,單片機仿真軟件是一種專門針對單片機進(jìn)行仿真的工具。這種軟件能夠提供一個類似真實硬件環(huán)境的仿真平臺,讓用戶在計算機上進(jìn)行單片機程序
    的頭像 發(fā)表于 04-21 10:28 ?1071次閱讀

    單片機編程實例介紹

    是指使用特定的編程語言編寫控制單片機工作的程序。 在本文中,將為您提供一些常見的單片機編程實例,包括基礎(chǔ)應(yīng)用、傳感器應(yīng)用、通信應(yīng)用等方面的案例。 一、基礎(chǔ)應(yīng)用 LED流水燈 流水燈是最
    的頭像 發(fā)表于 01-16 09:37 ?2628次閱讀

    單片機代碼自動生成器程序

    和輸入/輸出設(shè)備的芯片。它通常用于嵌入式系統(tǒng)中,能夠完成一系列特定的任務(wù)。開發(fā)人員編寫單片機代碼負(fù)責(zé)指導(dǎo)單片機執(zhí)行相應(yīng)的任務(wù)。然而,編寫單片機
    的頭像 發(fā)表于 01-08 14:12 ?3222次閱讀