專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機程序設(shè)計總結(jié)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2012年04月16日   【字體:

經(jīng)過多年的單片機領(lǐng)域研究,總結(jié)一下幾點的程序設(shè)計的經(jīng)驗
要想設(shè)計程序就必須了解單片機一些基礎(chǔ)知識
1 指令是指計算機執(zhí)行某種操作的命令,僅僅是簡單完一件細小工

作命令。如  MOVLW  06H 或  I=0X06;
        就是將06H的立即數(shù) 移動給 單片機內(nèi)的工作寄存器。
             或 O6H的立即數(shù)賦予I......
1,程序是指眾多的單片機指令構(gòu)成有一定規(guī)模及次序,具有特定功

能、能完成特定任務(wù)的指令集合。


只要了解這些你就可以知道,程序是什么了,就是我們?nèi)粘I钪械?/p>

一些做事流程,用指令書寫的方式記下來。就這么簡單。

接下來就是變量,他是為指令運行的提供操作對象空間,沒有的變量

,指令與程序就是神馬浮云。什么都不是。
空間是什么,說白就是可以放東西的地方,單片機的空間就是他的內(nèi)

存是可以用來存放數(shù)據(jù)了-----單片機定義為寄存器。
那數(shù)據(jù)是什么呢,說白了就是個數(shù)----二進制的數(shù),為什么用二進制

呢,就是因為計算機很傻了,他就走兩個極端,要么沒有電,要么有

電,沒有中間態(tài),所以就用二進制配他了。
  現(xiàn)在知道的變量的作用就好辦,
既然是個空間--變量,就要有存放與取出、清空的功能,變量的數(shù)據(jù)

處理有輸入、輸出、清零,而且單片機中的變量不是一個哦,是很多

數(shù)以百計千記的變量,且變量都有獨立的房間與名字。
 因此單片機在運行時,其實就是在指令控制下,完成變量與變量間

的數(shù)據(jù)交換與處理,而這些交換處理目的就是為完成程序特定的功能

而運行了。
  說到這里就要提一下變量的性別與生命期,有點神哦,有生命的東

西。
   變量的類別:
   全局靜態(tài)變量: 全局靜態(tài)變量是用來保存程序運行中必須的全部

區(qū)域內(nèi)不動產(chǎn)---數(shù)據(jù)不能變化了,編輯后,就固定了,他是用來保

存如顯示需要的字符碼,圖像碼,聲音碼及子程序(模塊)內(nèi)特殊用

途的一些特殊數(shù)據(jù),且這種變量是不能被修改,永恒固定
   生命期:活到整個程序的結(jié)束,且每個程序段--子程序都可以讀

取他(但不能寫)
   
     
   局部靜態(tài)變量: 局部靜態(tài)變量是用來保存程序運行中必須的局部

區(qū)域的不動產(chǎn)---數(shù)據(jù)不能變化了,編輯后,就固定了,保存的如按

鍵時間,聲音時間,及子程序(模塊)內(nèi)特殊用途等一些特殊數(shù)據(jù),

且這種變量是不能被修改,永恒固定
    生命期:活到整個程序的結(jié)束,且只能在規(guī)定的子程序內(nèi)可以讀

           取他(但不能寫) 超出不能使用。          

   局部動態(tài)變量: 局部動態(tài)變量是用來保存程序運行中必須的局部

區(qū)域的變化數(shù)據(jù),他是用來保存如按鍵計數(shù)器,聲音時間計數(shù)器,及

子程序(模塊)內(nèi)特殊用途等一些特殊數(shù)據(jù),且這種變量是可以被修


    生命期:活到整個程序的結(jié)束,且只能在規(guī)定的子程序內(nèi)可以讀

            寫與使用。

全局動態(tài)變量:
   全局動態(tài)變量是用來保存程序運行中必須的全部區(qū)域內(nèi)的變化數(shù)

據(jù),他是用來保存如按鍵值,聲音值,顯示處理值,及子程序(模塊

)內(nèi)特殊用途等一些特殊數(shù)據(jù),且這種變量是可以被修改
    生命期:活到整個程序的結(jié)束,在整個程序內(nèi)都可以讀        

    寫與使用。
  
    隨機動態(tài)變量
 隨機動態(tài)變量是用來保存程序運行中必須的全部區(qū)域內(nèi)的變化臨時

數(shù)據(jù)如,按鍵識別值,顯示運算值,四則運算的臨時空間及子程序(

模塊)內(nèi)特殊用途等一些臨時特殊數(shù)據(jù)。這種變量是可以讀寫
    生命期:使用他的程序段開始到結(jié)束,只有在改程序段內(nèi)有效,

程序段結(jié)束,他的生命也沒有了。
  隨機動態(tài)變量在程序中是用的最多的變量,因為他沒有特定功能,

就是供所有的程序使用,誰要用就出生,不用時就結(jié)束,繼續(xù)等待下

個被使用。這就是他的使命,暈感覺像讓萬人隨意糟蹋的樣子。
    說完變量,現(xiàn)在說程序的靈魂------算法,很神秘吧,其實他媽

就是實現(xiàn)的方法,因為單片機是*運算與處理數(shù)據(jù)了來實現(xiàn)功能了
所以叫他---算法。
 這是書上描述了
 “ 算法可以理解為有基本運算及規(guī)定的運算順序所構(gòu)成的完整的解

題步驟。或者看成按照要求設(shè)計好的有限的確切的計算序列,并且這

樣的步驟和序列可以解決一類問題
一個算法應(yīng)該具有以下五個重要的特征:   算法可以使用自然語

言、偽代碼、流程圖等多種不同的方法來描述。
1、有窮性(Finiteness)
  算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
2、確切性(Difiniteness)
  算法的每一步驟必須有確切的定義;
3、輸入項(Input)
  一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0

個輸入是指算法本身定出了初始條件;
4、輸出項(Output)
  一個算法有一個或多個輸出,以反映對輸入數(shù)據(jù)加工后的結(jié)果。

沒有輸出的算法是毫無意義的;
5、可行性(Effectiveness)
  算法中執(zhí)行的任何計算步都是可以被分解為基本的可執(zhí)行的操作

步,即每個計算步都可以在有限時間內(nèi)完成。(也稱之為有效性)

。”
 我的理解就是算法:為實現(xiàn)你想要做到的特定事情或解決某個問題

而采取的方法或策略就是算法
  說到算法就要說架構(gòu)了,他們兩個一個骨 一個是肉,說也說不清
 什么是架構(gòu),架構(gòu)就是為完整該事情或任務(wù)而設(shè)計的程序結(jié)構(gòu),
  就像一個剛蓋大樓的骨架,有的他,才可以隔間變?yōu)榉块g再用算法

來裝修他。
  一個好的算法與架構(gòu)可以讓程序高效、高速、穩(wěn)定的運行,且不占

用太多的空間-----這也是每個工程師、程序員必身追求著夢想。
寫累待續(xù)

關(guān)閉窗口

相關(guān)文章