單片機c語言模塊化編程
在C語言里,主函數,也就是main函數,是C標準的一個組成部分(參考C90/C99標准協議文檔)。雖然它也被稱作函數。但是,它對於C編譯器來講,它並不是一個真正意義上的函數。或者說,它不屬於你代碼中的任何一個模塊。
由於歷史原因,丹尼斯里奇和肯湯普森在完成對Basic的升級之後(也就是最初的C),對於整個語言寫成的代碼的主入口作出了一個定義,也即,使用一個名為main的,被定義為函數形式的段表示整個C程序(在OS中運行的某個進程)的進入點(Entrance)。
但對於用戶的代碼而言,用戶使用C語言編寫的所有模塊中的函數都是經過設計和實現的;而不具有main的通用性。也許你應該知道,一個C程序的執行必然是從main開始的。
關於模塊化編程,我不知道提問者是否清楚其具體。如果不甚明白的話,請參考(C語言模塊化編程(我見過最好的).pdf),來源於網路文庫。
❷ C語言的模塊化編程還是不太理解,還請各位大神指點!
C語言是面向過程的語言。
把一件事情分多步驟,細分,這樣更有條理。比如今天你要最晚餐。
第一種方法:你要考慮:去買菜;,去哪裡買,買什麼,坐什麼交通工具去買,怎麼回來,煮飯做飯,用什麼廚具,蒸的?煮的?炒的?做哪種家裡人覺得好吃,以及洗碗,打掃衛生等等
這沒有覺得這種方法很亂。第二種方法就是先分塊:
首先我要考慮的問題(1)買菜(2)做飯(3)洗碗 就6個字,3大塊,不用考慮過多,先把整件事情的步驟列出。然後再在每一塊細分。(1)買菜;(1.1)去哪裡買(1.2)買什麼。這樣第一大塊(買菜)裡面又有兩塊(1.1 和 1.2),當然還可以細分,對於(1.1)去哪裡買 再細分 (1.1.1)交通工具 等等。
是不是覺得做個晚餐 還要弄得這么惡心, 一步一步的來? 一開始我也是這樣想的,但是你用C語言編程,這樣就會很方便,很清晰的。
❸ 單片機c語言模塊化編程,如何定義全局變數。
1.使用關鍵字extern修飾申明。
例如:
主文件中定義 int g_ival = 0;
別的文件裡面用 extern int g_ival;申明一下就可以用了。
2.模塊化編程是指將一個龐大的程序劃分為若干個功能獨立的模塊,對各個模塊進行獨立開發,然後再將這些模塊統一合並為一個完整的程序。這是C語言面向過程的編程方法,可以縮短開發周期,提高程序的可讀性和可維護性。
3.在單片機程序里,程序比較小或者功能比較簡單的時候,我們不需要採用模塊化編程,但是,當程序功能復雜、涉及的資源較多的時候,模塊化編程就能體現它的優越性了。如前面我們寫過的HT1380驅動程序、獨立按鍵掃描程序和12864程序,每一個程序都是只用一個源文件編寫就能完成,但是,當您製作一個12864液晶日歷的時候,需要用到HT1380驅動程序、獨立按鍵掃描程序和12864顯示程序,如果把這三個程序全部集中在一個源文件里,將導致主體程序臃腫且雜亂,這樣做並非不可取,只是降低了程序可讀性、可維護性和代碼的重用率。如果把這三個程序當做三個獨立的模塊放到你的主體工程進行模塊化編程,效果就不一樣了。實際上,模塊化編程就是模塊合並的過程,就是建立每個模塊的頭文件和源文件並將其加入到主體程序的過程。主體程序調用模塊的函數是通過包含模塊的頭文件來實現,模塊的頭文件和源文件是模塊密不可分的兩個部分,缺一不可。所以,模塊化編程必須提供每個模塊的頭文件和源文件。
❹ 請你簡單闡述用C語言編寫一個模塊化程序的基本過程
模塊化程序設計即模塊化設計,簡單地說就是程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟體的主要結構和流程描述出來,並定義和調試好各個框架之間的輸入、輸出鏈接關系。逐步求精的結果是得到一系列以功能塊為單位的演算法描述。以功能塊為單位進行程序設計,實現其求解演算法的方法稱為模塊化。模塊化的目的是為了降低程序復雜度,使程序設計、調試和維護等操作簡單化。
簡單的說就是用函數封裝一個完成某個特定功能的程序塊,主函數通過調用這些函數使得編程的整體框架清晰,整個程序的代碼量看上去應該像一個三角形,最頂上的是主函數,代碼量比大部分調用函數都要少。模塊化編程的另一個好處就是功能的復用,比如你的程序里反復需要用到求數組里所有元素的和的操作,就可以建立一個數組求和的函數來反復調用此函數求和。
❺ 單片機編程用匯編好還是C語言好
單片機編程,C語言編程但很好。
大致分成三類:機器語言、匯編語言、高級語言。機器語言由於繁瑣容易出錯,大部分用戶已經不再便用。
1.單片機匯編語言
匯編語言是一種符號語言,它使用文字助記符來表示機器指令。它是最接近機器代碼的語言。它的主要優點是佔用資源少,程序執行效率高。由於每條指令對應於一個機器碼,所以每一步的執行都非常清楚。
並且程序的大小和棧調用都易於控制,調試也更加方便。但是不同類型的單片機,其匯編語言可能會有一點不同,所以移植起來並不容易,因為它們的指令系統是不同的。但掌握匯編語言可以幫助我們理解影響四川語學習效率的特殊規律。
例如,了解匯編語言指令可以讓您使用晶元內ram作為變數,因為晶元外變數需要多個指令來設置訪問的累加器和數據指針。
類似地,只有匯編編程經驗才能防止在需要浮點數和啟用函數時創建大型、低效的程序,這在沒有匯編語言的情況下是無法做到的。
2.單片機的C語言
MCUC語言是一種經過編譯的程序設計語言,它兼顧了多種高級語言的特點,具有匯編語言的功能。C語言具有豐富的庫函數,計算速度快,編譯效率高,可移植性好,並能實現對系統硬體的直接控制。
此外C語言程序具有完整的程序模塊結構,為軟體開發中的模塊化編程方法提供了強有力的保證。與組裝相比,具有以下優點:
MCU的指令系統不需要知道,只需要對51的內存結構有一個初步的了解,對於寄存器的分配,不同的內存定址和數據類型等細節都由編譯器來管理。程序有一個正式的結構,可以分為不同的功能。這使得程序可以結構化,結合變數選擇和特殊操作,並提高程序的可讀性。
大大減少了編程和調試時間,從而提高了效率。所提供的庫包含許多具有強大數據處理能力的標准子常式,由於其方便的模塊化編程技術,可以很容易地將這些子常式編程到新程序中。
功能強大靈活,庫中包含了很多標準的子程序,具有較強的數據處理能力,可以方便地編程植入新的程序,因為它具有方便的模塊化編程技術。
MCUC語言作為一種非常方便的語言而得到了廣泛的支持,(語言程序本身不依賴於機器硬體系統,基本上不根據單片機的修改就可以將U的不同之處快速移植過來。)
利用單片機c語言進行編程,已經成為單片機軟體開發的主流,作為一門綜合性的技術和參與開發的大型軟體系統,單片機開發人員最好能夠掌握基本的c語言編程。
(5)單片機c語言模塊化編程擴展閱讀:
SCM語言
MCU支持三種高級語言,即PL/M、C和BASIC。C語言是一種通用的編程語言,其碼率高,數據類型和運算符豐富,並具有良好的程序結構,適用於各種應用程序的設計,是一種廣泛應用的單片機編程語言。
單片機的C語言採用C51編譯器(簡稱C51)。C51生成的目標代碼短小、快速、存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,可與A51匯編語言或PL/M51語言目標代碼混合使用