單片機程序設計總結
經(jīng)過(guò)多年的單片機領(lǐng)域研究,總結一下幾點(diǎn)的程序設計的經(jīng)驗
要想設計程序就必須了解單片機一些基礎知識
1 指令是指計算機執行某種操作的命令,僅僅是簡(jiǎn)單完一件細小工
作命令。如 MOVLW 06H 或 I=0X06;
就是將06H的立即數 移動(dòng)給 單片機內的工作寄存器。
或 O6H的立即數賦予I......
1,程序是指眾多的單片機指令構成有一定規模及次序,具有特定功
能、能完成特定任務(wù)的指令集合。
只要了解這些你就可以知道,程序是什么了,就是我們日常生活中的
一些做事流程,用指令書(shū)寫(xiě)的方式記下來(lái)。就這么簡(jiǎn)單。
接下來(lái)就是變量,他是為指令運行的提供操作對象空間,沒(méi)有的變量
,指令與程序就是神馬浮云。什么都不是。
空間是什么,說(shuō)白就是可以放東西的地方,單片機的空間就是他的內
存是可以用來(lái)存放數據了-----單片機定義為寄存器。
那數據是什么呢,說(shuō)白了就是個(gè)數----二進(jìn)制的數,為什么用二進(jìn)制
呢,就是因為計算機很傻了,他就走兩個(gè)極端,要么沒(méi)有電,要么有
電,沒(méi)有中間態(tài),所以就用二進(jìn)制配他了。
現在知道的變量的作用就好辦,
既然是個(gè)空間--變量,就要有存放與取出、清空的功能,變量的數據
處理有輸入、輸出、清零,而且單片機中的變量不是一個(gè)哦,是很多
數以百計千記的變量,且變量都有獨立的房間與名字。
因此單片機在運行時(shí),其實(shí)就是在指令控制下,完成變量與變量間
的數據交換與處理,而這些交換處理目的就是為完成程序特定的功能
而運行了。
說(shuō)到這里就要提一下變量的性別與生命期,有點(diǎn)神哦,有生命的東
西。
變量的類(lèi)別:
全局靜態(tài)變量: 全局靜態(tài)變量是用來(lái)保存程序運行中必須的全部
區域內不動(dòng)產(chǎn)---數據不能變化了,編輯后,就固定了,他是用來(lái)保
存如顯示需要的字符碼,圖像碼,聲音碼及子程序(模塊)內特殊用
途的一些特殊數據,且這種變量是不能被修改,永恒固定
生命期:活到整個(gè)程序的結束,且每個(gè)程序段--子程序都可以讀
取他(但不能寫(xiě))
局部靜態(tài)變量: 局部靜態(tài)變量是用來(lái)保存程序運行中必須的局部
區域的不動(dòng)產(chǎn)---數據不能變化了,編輯后,就固定了,保存的如按
鍵時(shí)間,聲音時(shí)間,及子程序(模塊)內特殊用途等一些特殊數據,
且這種變量是不能被修改,永恒固定
生命期:活到整個(gè)程序的結束,且只能在規定的子程序內可以讀
取他(但不能寫(xiě)) 超出不能使用。
局部動(dòng)態(tài)變量: 局部動(dòng)態(tài)變量是用來(lái)保存程序運行中必須的局部
區域的變化數據,他是用來(lái)保存如按鍵計數器,聲音時(shí)間計數器,及
子程序(模塊)內特殊用途等一些特殊數據,且這種變量是可以被修
改
生命期:活到整個(gè)程序的結束,且只能在規定的子程序內可以讀
寫(xiě)與使用。
全局動(dòng)態(tài)變量:
全局動(dòng)態(tài)變量是用來(lái)保存程序運行中必須的全部區域內的變化數
據,他是用來(lái)保存如按鍵值,聲音值,顯示處理值,及子程序(模塊
)內特殊用途等一些特殊數據,且這種變量是可以被修改
生命期:活到整個(gè)程序的結束,在整個(gè)程序內都可以讀
寫(xiě)與使用。
隨機動(dòng)態(tài)變量
隨機動(dòng)態(tài)變量是用來(lái)保存程序運行中必須的全部區域內的變化臨時(shí)
數據如,按鍵識別值,顯示運算值,四則運算的臨時(shí)空間及子程序(
模塊)內特殊用途等一些臨時(shí)特殊數據。這種變量是可以讀寫(xiě)
生命期:使用他的程序段開(kāi)始到結束,只有在改程序段內有效,
程序段結束,他的生命也沒(méi)有了。
隨機動(dòng)態(tài)變量在程序中是用的最多的變量,因為他沒(méi)有特定功能,
就是供所有的程序使用,誰(shuí)要用就出生,不用時(shí)就結束,繼續等待下
個(gè)被使用。這就是他的使命,暈感覺(jué)像讓萬(wàn)人隨意糟蹋的樣子。
說(shuō)完變量,現在說(shuō)程序的靈魂------算法,很神秘吧,其實(shí)他媽
就是實(shí)現的方法,因為單片機是*運算與處理數據了來(lái)實(shí)現功能了
所以叫他---算法。
這是書(shū)上描述了
“ 算法可以理解為有基本運算及規定的運算順序所構成的完整的解
題步驟?;蛘呖闯砂凑找笤O計好的有限的確切的計算序列,并且這
樣的步驟和序列可以解決一類(lèi)問(wèn)題
一個(gè)算法應該具有以下五個(gè)重要的特征: 算法可以使用自然語(yǔ)
言、偽代碼、流程圖等多種不同的方法來(lái)描述。
1、有窮性(Finiteness)
算法的有窮性是指算法必須能在執行有限個(gè)步驟之后終止
2、確切性(Difiniteness)
算法的每一步驟必須有確切的定義;
3、輸入項(Input)
一個(gè)算法有0個(gè)或多個(gè)輸入,以刻畫(huà)運算對象的初始情況,所謂0
個(gè)輸入是指算法本身定出了初始條件;
4、輸出項(Output)
一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對輸入數據加工后的結果。
沒(méi)有輸出的算法是毫無(wú)意義的;
5、可行性(Effectiveness)
算法中執行的任何計算步都是可以被分解為基本的可執行的操作
步,即每個(gè)計算步都可以在有限時(shí)間內完成。(也稱(chēng)之為有效性)
。”
我的理解就是算法:為實(shí)現你想要做到的特定事情或解決某個(gè)問(wèn)題
而采取的方法或策略就是算法
說(shuō)到算法就要說(shuō)架構了,他們兩個(gè)一個(gè)骨 一個(gè)是肉,說(shuō)也說(shuō)不清
什么是架構,架構就是為完整該事情或任務(wù)而設計的程序結構,
就像一個(gè)剛蓋大樓的骨架,有的他,才可以隔間變?yōu)榉块g再用算法
來(lái)裝修他。
一個(gè)好的算法與架構可以讓程序高效、高速、穩定的運行,且不占
用太多的空間-----這也是每個(gè)工程師、程序員必身追求著(zhù)夢(mèng)想。
評論