程序結(jié)構(gòu)與思路_第1頁
程序結(jié)構(gòu)與思路_第2頁
程序結(jié)構(gòu)與思路_第3頁
程序結(jié)構(gòu)與思路_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、程序結(jié)構(gòu)與思路程序其實也是一種文學(xué),也分總分結(jié)構(gòu),一段就把所有東西都寫好, 是非常不宜觀的。所以程序需要主程序和子程序。當(dāng)然,非常的簡單 的程序不要子程序也是可以的。但是程序程序一旦復(fù)雜起來,我們就 不能直觀地看出程序的功能,所以出錯率也非常高。而且很多時候有 一段程序是要反復(fù)用的,每次用到就寫一次,這樣非常反感,也不利 于程序成功地編寫。所以我們可以用一個子程序,將反復(fù)要用的內(nèi)容 放到子程序中。以后要用到它,通過調(diào)用子程序就可以了。C語言:下面是一個非常簡單的8盞流水燈程序:#includevoid delay()unsigned char i,j,k;for(i=10;i0;i-)for(

2、j=100;j0;j-)for(k=248;k0;k-);void main()while(1)P2=0X01;delay();P2=0X02;delay();P2=0X04;delay();P2=0X08;delay();P2=0X10;delay();P2=0X20;delay();P2=0X40;delay();P2=0X80;delay();流水燈大家都見過,從一端開始一盞一盞亮到另一端,從一盞燈亮到 另外一盞燈是需要時間,如果不延時就看不到它移動的效果,8盞燈 就需要8次延時,如果不用子程序?qū)懷訒r程序,這樣程序會很長,而 且不宜觀,所以我將延時程序?qū)懺赿elay()里面,所以要用到延

3、時就調(diào) 用delay()就可以了,這樣更明了的反應(yīng)出那一段程序就代表延時。從 程序中我們可以看出P2 口給出的數(shù)據(jù)分別是0 x01,0 x02,0 x04、0 x08、 0 x10、0 x20、0 x40、0 x80,認(rèn)真觀察這一組數(shù)據(jù),會發(fā)現(xiàn)后一數(shù)據(jù)總是 前一數(shù)據(jù)的兩倍,把它轉(zhuǎn)換成二進(jìn)制后,它們的值分別是:00000001,00000010,00000100,00001000,00010000,0010000,01000000,10000000,這樣前一數(shù)據(jù)左移后正好是后一數(shù)據(jù),所以我們可以更簡 單方法寫這個程序,用乘于2或者左移都可以。主程序就可以這樣寫 了void main()while

4、(1) unsigned char x,com=0 x01;for(x=0;x8;x+)P2=com;delay();com=com1;或者將com=com1改成com=com*2;效果一樣,這樣寫就可以大量 減少文字輸入量,節(jié)省編程時間。如果有多種花樣的流水燈,就把各種花樣寫成子程序然后在主程序中 調(diào)用。在編寫時一種功能要寫成一段子程序,既直觀,又方便以后移 植。一般主程序內(nèi)只調(diào)用子程序還有簡單的初始化和判斷語旬。在: 語言中下面的程序只能調(diào)用上面的子程序,所以子程序的位置要控制 好。然而有些程序很長,寫著寫著就不知道放在哪里了,所以如果因 為這種原因出錯時,就在所有程序前面將被調(diào)用的程序定

5、義一遍,如 果子程序名為void delay(),就在所有程序前面完完整整的把程序名 寫上,后面注意加“;”。錯一個字也不能編譯。上面所說的實在一個文件內(nèi)編程,比較適合中小型的程序。但是 模塊多了程序會很長查找程序時要畫很長時間,這樣也不利于編程。 下面介紹一下如何分文件編程。我們在寫程序時都會用到頭文件,比 如#include打開它我們會發(fā)現(xiàn)文件的開頭有兩行英文,即: #ifndef _AT89X51_H_ 和#define _AT89X51_H_ 第一行的作用是, 如果_AT89X51_H_1定義了就編譯下面的程序,第二行就是定義 _AT89X51_H_,文件的最后以#endif結(jié)束。包含這個頭文件后,程 序中可以使用AT89X51.H的所有內(nèi)容了,所以我們也可以自己制作頭 文件,比如說我們的單片機(jī)系統(tǒng)中用到DS1302的時鐘IC,先在工程 的目錄下新建一個文件,然后以D31302.H命名,然后把我們就可以 把DS1302的所有子程序放在DS1302.H的文件中,再在開頭輸入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論