徐世亮
摘 要:單片機是單片微型計算機的簡稱,是一種集成電路芯片。目前,單片機已經在各個行業(yè)和領域得到應用,很難找到哪一個領域沒有應用單片機。單片機在工業(yè)控制領域的應用最為廣泛,如今已步入生活領域,如:家用電器、汽車電子等。單片機的應用如此廣泛,在人類的生活和生產中發(fā)揮的作用越來越大,對于單片機的重視和研究力度也非常大,迄今為止,單片機已經經歷了三大階段,并且還在不斷得到發(fā)展和優(yōu)化。本文將主要是探討單片機的應用編程的技巧分析。
關鍵詞:單片機 應用編程 技巧分析
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2014)01(c)-0025-02
單片機也被稱為單片微控制器,它不是完全意義上的完成某邏輯功能的芯片,而是把計算機系統(tǒng)集成到芯片上。它具有體積小、重量輕、價格便宜等優(yōu)點,給人們的生產和生活帶來了很大的便利。單片機的應用系統(tǒng)是由軟件和硬件組成的,單片機之所以能夠發(fā)揮這么大的作用,主要是因為單片機的軟件系統(tǒng)中有著由多種指令構成的應用程序,工作時能夠按照這種應用程序進行工作。單片機的應用程序的編寫主要是采用匯編語言和高級語言。匯編語言雖然是一種低級語言,但是語言直觀,便于理解和記憶。單片機的應用編程常會用到匯編語言程序,一個好的匯編程序應當是執(zhí)行時間較短、占用的儲存空間少。
1 單片機的應用程序分析和設計
1.1 流程圖的設計
解決問題的算法不同,會導致編出的程序不盡相同,程序運行的時間和效率也大不一樣。解決這個問題的關鍵是要設計好的流程圖,在選擇的時候要選擇占用內存少、執(zhí)行時間快的算法,算法選定后,要根據算法繪制一個流程圖,這是應用程序設計的重要內容。下面將以具體的實例來說明。
例如:我們平時所用的空調機在制冷的時候,如果排出空氣的溫度比吸入的空氣溫度低6度,那么這種情況下就被認為是空調機的正常工作,否則就會被認為是空調機存在一定的故障,影響了空調機的工作效能。因此,我們可以將XRZ設定為吸入空氣的溫度值的地址,把吸入空氣的溫度值存于這個地址內;將PCZ設定為排出空氣的溫度值的地址,把排出空氣的溫度值存于此處;設定KZ為空調狀態(tài)地址,空調機工作狀態(tài)放KZ單元??照{機工作正常時,KZ等于0,否則等于FFH??照{工作溫度控制流程圖如圖1所示。
1.2 復雜程序的設計
在復雜程序的設計過程中,循環(huán)程序和子程序都是復雜的應用程序的組成部分。在應用程序中使用循環(huán)結構和子程序,能夠有效減少程序的長度,減少程序所占用的內存空間,使得應用程序的邏輯結構得以簡化,應用程序便于調試。雖然,依此程序設計的機器周期數量并不會減少,但是確實提高了程序的編制效率。
循環(huán)結構的程序多用在機器的同一組操作需要重復執(zhí)行的時候;子程序的應用主要是在某一程序需要多次使用的時候,例如:數制的轉換、函數的計算等。如果這兩種情況均不使用循環(huán)結構的程序和子程序,那就需要重復書寫同一個指令,這樣不僅會大量增加程序的工作量,還會因為書寫同一個指令而占用和浪費大量的存儲空間。
2 應用程序的時間和空間的優(yōu)化
同一個匯編程序有多種實現方法,不同的應用程序所占用的時間和空間也不盡相同。在編寫應用程序時,應當充分考慮到應用程序對時間和空間的要求。對于一般的控制系統(tǒng)來說,以考慮空間為主,以確保應用程序能夠安裝下;而對于一些實時控制系統(tǒng),以考慮時間為主,確保應用程序的執(zhí)行時間越短越好。不同的應用系統(tǒng)對時間和空間的要求不盡相同,所以,要求應用程序的編寫時要對應用程序的時間和空間進行優(yōu)化,以滿足應用系統(tǒng)的要求。
(1)時間的優(yōu)化。
應用編程的時間優(yōu)化主要有三種方法,第一種也是最基本的方法是編寫周期較短的指令,比如:在編寫乘除運算時,可以運用移位的方法來實現;第二種是利用寄存器尋址,因為寄存器尋址的指令具有周期少的特點,在執(zhí)行時可以優(yōu)化應用程序的執(zhí)行時間;第三種是“空間換時間”的方法,主要是應用在有很大存儲空間的單片機應用系統(tǒng)中,即可以充分利用閑置的存儲空間,編寫那些執(zhí)行時間較短的應用程序,例如:在一個循環(huán)的程序中,可以把這個循環(huán)程序劃分成幾個單獨的應用程序執(zhí)行,將一些帶參數的子程序設計成可以直接調用的子程序,這樣就可以減少對參數賦值的時間。
(2)空間的優(yōu)化。
應用程序優(yōu)化空間的方法除了采用循環(huán)結構程序和子程序外,還可以采用存儲空間復用的方法,一般說來,一個存儲空間只作一個用途,但是在資源有限的情況下,也可以對一些存儲空間復用。此外,如果碰到應用系統(tǒng)對時間的要求不高時,也可以采取“時間換空間”的方法,壓縮程序大小。例如,可以把一些功能相近的程序合并為一個子程序。
(3)建立子程序庫。
單片機的應用程序現在已普遍采用結構化程序設計法,如果我們能夠建立一個子程序庫,那么在具體編寫應用程序時,就可以直接利用現存的或者是稍加修改,這樣就可以大大提高編程的效率。子程序庫的建立應當具有以下幾個特點:第一,相容性(各子程序的入口和出口條件相容);第二,功能性(子程序應當具有多種功能,避免用戶重復工作);第三,質量問題(優(yōu)化算法,提高運行速度,反饋錯誤信息);第四,透明化(子程序運行完成后,不會破壞用戶現場)。
3 結語
單片機的應用程序的編程要考慮到多方面的因素,不僅要保證應用程序能夠正常使用,而且還能實用,占用的內存空間少,執(zhí)行起來效率高,耗費時間短。因此,在應用程序的設計過程中,應當采取適當辦法來提高單片機的編程的總體執(zhí)行效能。在單片機的應用編程方面的一些小技巧就可以采用,如合理設計流程圖、優(yōu)化應用程序的時間和空間、建立子程序庫等,提高單片機的編程效率。
參考文獻
[1] 孫吳松,王烈準,劉榮富.單片機匯編程序編寫技巧[J].科技向導·職業(yè)教育,2012(155).
[2] 翟曉華,程珩.淺談單片機匯編語言編程技巧[J].機械工程與自動化,2007(143).
[3] 符紅霞.C語言和匯編語言混合編程電子設備中的應用研究[J].工業(yè)控制計算機,2011(14).
[4] 魯杰爽.匯編程序開發(fā)中的“隱含錯誤”分析[J].濮陽職業(yè)技術學院學報,2010(155).
[5] 包敬海,韋美蘭.匯編和C混合編程的研究[J].電腦與電信,2011(155).endprint
摘 要:單片機是單片微型計算機的簡稱,是一種集成電路芯片。目前,單片機已經在各個行業(yè)和領域得到應用,很難找到哪一個領域沒有應用單片機。單片機在工業(yè)控制領域的應用最為廣泛,如今已步入生活領域,如:家用電器、汽車電子等。單片機的應用如此廣泛,在人類的生活和生產中發(fā)揮的作用越來越大,對于單片機的重視和研究力度也非常大,迄今為止,單片機已經經歷了三大階段,并且還在不斷得到發(fā)展和優(yōu)化。本文將主要是探討單片機的應用編程的技巧分析。
關鍵詞:單片機 應用編程 技巧分析
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2014)01(c)-0025-02
單片機也被稱為單片微控制器,它不是完全意義上的完成某邏輯功能的芯片,而是把計算機系統(tǒng)集成到芯片上。它具有體積小、重量輕、價格便宜等優(yōu)點,給人們的生產和生活帶來了很大的便利。單片機的應用系統(tǒng)是由軟件和硬件組成的,單片機之所以能夠發(fā)揮這么大的作用,主要是因為單片機的軟件系統(tǒng)中有著由多種指令構成的應用程序,工作時能夠按照這種應用程序進行工作。單片機的應用程序的編寫主要是采用匯編語言和高級語言。匯編語言雖然是一種低級語言,但是語言直觀,便于理解和記憶。單片機的應用編程常會用到匯編語言程序,一個好的匯編程序應當是執(zhí)行時間較短、占用的儲存空間少。
1 單片機的應用程序分析和設計
1.1 流程圖的設計
解決問題的算法不同,會導致編出的程序不盡相同,程序運行的時間和效率也大不一樣。解決這個問題的關鍵是要設計好的流程圖,在選擇的時候要選擇占用內存少、執(zhí)行時間快的算法,算法選定后,要根據算法繪制一個流程圖,這是應用程序設計的重要內容。下面將以具體的實例來說明。
例如:我們平時所用的空調機在制冷的時候,如果排出空氣的溫度比吸入的空氣溫度低6度,那么這種情況下就被認為是空調機的正常工作,否則就會被認為是空調機存在一定的故障,影響了空調機的工作效能。因此,我們可以將XRZ設定為吸入空氣的溫度值的地址,把吸入空氣的溫度值存于這個地址內;將PCZ設定為排出空氣的溫度值的地址,把排出空氣的溫度值存于此處;設定KZ為空調狀態(tài)地址,空調機工作狀態(tài)放KZ單元??照{機工作正常時,KZ等于0,否則等于FFH??照{工作溫度控制流程圖如圖1所示。
1.2 復雜程序的設計
在復雜程序的設計過程中,循環(huán)程序和子程序都是復雜的應用程序的組成部分。在應用程序中使用循環(huán)結構和子程序,能夠有效減少程序的長度,減少程序所占用的內存空間,使得應用程序的邏輯結構得以簡化,應用程序便于調試。雖然,依此程序設計的機器周期數量并不會減少,但是確實提高了程序的編制效率。
循環(huán)結構的程序多用在機器的同一組操作需要重復執(zhí)行的時候;子程序的應用主要是在某一程序需要多次使用的時候,例如:數制的轉換、函數的計算等。如果這兩種情況均不使用循環(huán)結構的程序和子程序,那就需要重復書寫同一個指令,這樣不僅會大量增加程序的工作量,還會因為書寫同一個指令而占用和浪費大量的存儲空間。
2 應用程序的時間和空間的優(yōu)化
同一個匯編程序有多種實現方法,不同的應用程序所占用的時間和空間也不盡相同。在編寫應用程序時,應當充分考慮到應用程序對時間和空間的要求。對于一般的控制系統(tǒng)來說,以考慮空間為主,以確保應用程序能夠安裝下;而對于一些實時控制系統(tǒng),以考慮時間為主,確保應用程序的執(zhí)行時間越短越好。不同的應用系統(tǒng)對時間和空間的要求不盡相同,所以,要求應用程序的編寫時要對應用程序的時間和空間進行優(yōu)化,以滿足應用系統(tǒng)的要求。
(1)時間的優(yōu)化。
應用編程的時間優(yōu)化主要有三種方法,第一種也是最基本的方法是編寫周期較短的指令,比如:在編寫乘除運算時,可以運用移位的方法來實現;第二種是利用寄存器尋址,因為寄存器尋址的指令具有周期少的特點,在執(zhí)行時可以優(yōu)化應用程序的執(zhí)行時間;第三種是“空間換時間”的方法,主要是應用在有很大存儲空間的單片機應用系統(tǒng)中,即可以充分利用閑置的存儲空間,編寫那些執(zhí)行時間較短的應用程序,例如:在一個循環(huán)的程序中,可以把這個循環(huán)程序劃分成幾個單獨的應用程序執(zhí)行,將一些帶參數的子程序設計成可以直接調用的子程序,這樣就可以減少對參數賦值的時間。
(2)空間的優(yōu)化。
應用程序優(yōu)化空間的方法除了采用循環(huán)結構程序和子程序外,還可以采用存儲空間復用的方法,一般說來,一個存儲空間只作一個用途,但是在資源有限的情況下,也可以對一些存儲空間復用。此外,如果碰到應用系統(tǒng)對時間的要求不高時,也可以采取“時間換空間”的方法,壓縮程序大小。例如,可以把一些功能相近的程序合并為一個子程序。
(3)建立子程序庫。
單片機的應用程序現在已普遍采用結構化程序設計法,如果我們能夠建立一個子程序庫,那么在具體編寫應用程序時,就可以直接利用現存的或者是稍加修改,這樣就可以大大提高編程的效率。子程序庫的建立應當具有以下幾個特點:第一,相容性(各子程序的入口和出口條件相容);第二,功能性(子程序應當具有多種功能,避免用戶重復工作);第三,質量問題(優(yōu)化算法,提高運行速度,反饋錯誤信息);第四,透明化(子程序運行完成后,不會破壞用戶現場)。
3 結語
單片機的應用程序的編程要考慮到多方面的因素,不僅要保證應用程序能夠正常使用,而且還能實用,占用的內存空間少,執(zhí)行起來效率高,耗費時間短。因此,在應用程序的設計過程中,應當采取適當辦法來提高單片機的編程的總體執(zhí)行效能。在單片機的應用編程方面的一些小技巧就可以采用,如合理設計流程圖、優(yōu)化應用程序的時間和空間、建立子程序庫等,提高單片機的編程效率。
參考文獻
[1] 孫吳松,王烈準,劉榮富.單片機匯編程序編寫技巧[J].科技向導·職業(yè)教育,2012(155).
[2] 翟曉華,程珩.淺談單片機匯編語言編程技巧[J].機械工程與自動化,2007(143).
[3] 符紅霞.C語言和匯編語言混合編程電子設備中的應用研究[J].工業(yè)控制計算機,2011(14).
[4] 魯杰爽.匯編程序開發(fā)中的“隱含錯誤”分析[J].濮陽職業(yè)技術學院學報,2010(155).
[5] 包敬海,韋美蘭.匯編和C混合編程的研究[J].電腦與電信,2011(155).endprint
摘 要:單片機是單片微型計算機的簡稱,是一種集成電路芯片。目前,單片機已經在各個行業(yè)和領域得到應用,很難找到哪一個領域沒有應用單片機。單片機在工業(yè)控制領域的應用最為廣泛,如今已步入生活領域,如:家用電器、汽車電子等。單片機的應用如此廣泛,在人類的生活和生產中發(fā)揮的作用越來越大,對于單片機的重視和研究力度也非常大,迄今為止,單片機已經經歷了三大階段,并且還在不斷得到發(fā)展和優(yōu)化。本文將主要是探討單片機的應用編程的技巧分析。
關鍵詞:單片機 應用編程 技巧分析
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2014)01(c)-0025-02
單片機也被稱為單片微控制器,它不是完全意義上的完成某邏輯功能的芯片,而是把計算機系統(tǒng)集成到芯片上。它具有體積小、重量輕、價格便宜等優(yōu)點,給人們的生產和生活帶來了很大的便利。單片機的應用系統(tǒng)是由軟件和硬件組成的,單片機之所以能夠發(fā)揮這么大的作用,主要是因為單片機的軟件系統(tǒng)中有著由多種指令構成的應用程序,工作時能夠按照這種應用程序進行工作。單片機的應用程序的編寫主要是采用匯編語言和高級語言。匯編語言雖然是一種低級語言,但是語言直觀,便于理解和記憶。單片機的應用編程常會用到匯編語言程序,一個好的匯編程序應當是執(zhí)行時間較短、占用的儲存空間少。
1 單片機的應用程序分析和設計
1.1 流程圖的設計
解決問題的算法不同,會導致編出的程序不盡相同,程序運行的時間和效率也大不一樣。解決這個問題的關鍵是要設計好的流程圖,在選擇的時候要選擇占用內存少、執(zhí)行時間快的算法,算法選定后,要根據算法繪制一個流程圖,這是應用程序設計的重要內容。下面將以具體的實例來說明。
例如:我們平時所用的空調機在制冷的時候,如果排出空氣的溫度比吸入的空氣溫度低6度,那么這種情況下就被認為是空調機的正常工作,否則就會被認為是空調機存在一定的故障,影響了空調機的工作效能。因此,我們可以將XRZ設定為吸入空氣的溫度值的地址,把吸入空氣的溫度值存于這個地址內;將PCZ設定為排出空氣的溫度值的地址,把排出空氣的溫度值存于此處;設定KZ為空調狀態(tài)地址,空調機工作狀態(tài)放KZ單元??照{機工作正常時,KZ等于0,否則等于FFH??照{工作溫度控制流程圖如圖1所示。
1.2 復雜程序的設計
在復雜程序的設計過程中,循環(huán)程序和子程序都是復雜的應用程序的組成部分。在應用程序中使用循環(huán)結構和子程序,能夠有效減少程序的長度,減少程序所占用的內存空間,使得應用程序的邏輯結構得以簡化,應用程序便于調試。雖然,依此程序設計的機器周期數量并不會減少,但是確實提高了程序的編制效率。
循環(huán)結構的程序多用在機器的同一組操作需要重復執(zhí)行的時候;子程序的應用主要是在某一程序需要多次使用的時候,例如:數制的轉換、函數的計算等。如果這兩種情況均不使用循環(huán)結構的程序和子程序,那就需要重復書寫同一個指令,這樣不僅會大量增加程序的工作量,還會因為書寫同一個指令而占用和浪費大量的存儲空間。
2 應用程序的時間和空間的優(yōu)化
同一個匯編程序有多種實現方法,不同的應用程序所占用的時間和空間也不盡相同。在編寫應用程序時,應當充分考慮到應用程序對時間和空間的要求。對于一般的控制系統(tǒng)來說,以考慮空間為主,以確保應用程序能夠安裝下;而對于一些實時控制系統(tǒng),以考慮時間為主,確保應用程序的執(zhí)行時間越短越好。不同的應用系統(tǒng)對時間和空間的要求不盡相同,所以,要求應用程序的編寫時要對應用程序的時間和空間進行優(yōu)化,以滿足應用系統(tǒng)的要求。
(1)時間的優(yōu)化。
應用編程的時間優(yōu)化主要有三種方法,第一種也是最基本的方法是編寫周期較短的指令,比如:在編寫乘除運算時,可以運用移位的方法來實現;第二種是利用寄存器尋址,因為寄存器尋址的指令具有周期少的特點,在執(zhí)行時可以優(yōu)化應用程序的執(zhí)行時間;第三種是“空間換時間”的方法,主要是應用在有很大存儲空間的單片機應用系統(tǒng)中,即可以充分利用閑置的存儲空間,編寫那些執(zhí)行時間較短的應用程序,例如:在一個循環(huán)的程序中,可以把這個循環(huán)程序劃分成幾個單獨的應用程序執(zhí)行,將一些帶參數的子程序設計成可以直接調用的子程序,這樣就可以減少對參數賦值的時間。
(2)空間的優(yōu)化。
應用程序優(yōu)化空間的方法除了采用循環(huán)結構程序和子程序外,還可以采用存儲空間復用的方法,一般說來,一個存儲空間只作一個用途,但是在資源有限的情況下,也可以對一些存儲空間復用。此外,如果碰到應用系統(tǒng)對時間的要求不高時,也可以采取“時間換空間”的方法,壓縮程序大小。例如,可以把一些功能相近的程序合并為一個子程序。
(3)建立子程序庫。
單片機的應用程序現在已普遍采用結構化程序設計法,如果我們能夠建立一個子程序庫,那么在具體編寫應用程序時,就可以直接利用現存的或者是稍加修改,這樣就可以大大提高編程的效率。子程序庫的建立應當具有以下幾個特點:第一,相容性(各子程序的入口和出口條件相容);第二,功能性(子程序應當具有多種功能,避免用戶重復工作);第三,質量問題(優(yōu)化算法,提高運行速度,反饋錯誤信息);第四,透明化(子程序運行完成后,不會破壞用戶現場)。
3 結語
單片機的應用程序的編程要考慮到多方面的因素,不僅要保證應用程序能夠正常使用,而且還能實用,占用的內存空間少,執(zhí)行起來效率高,耗費時間短。因此,在應用程序的設計過程中,應當采取適當辦法來提高單片機的編程的總體執(zhí)行效能。在單片機的應用編程方面的一些小技巧就可以采用,如合理設計流程圖、優(yōu)化應用程序的時間和空間、建立子程序庫等,提高單片機的編程效率。
參考文獻
[1] 孫吳松,王烈準,劉榮富.單片機匯編程序編寫技巧[J].科技向導·職業(yè)教育,2012(155).
[2] 翟曉華,程珩.淺談單片機匯編語言編程技巧[J].機械工程與自動化,2007(143).
[3] 符紅霞.C語言和匯編語言混合編程電子設備中的應用研究[J].工業(yè)控制計算機,2011(14).
[4] 魯杰爽.匯編程序開發(fā)中的“隱含錯誤”分析[J].濮陽職業(yè)技術學院學報,2010(155).
[5] 包敬海,韋美蘭.匯編和C混合編程的研究[J].電腦與電信,2011(155).endprint