国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于51 單片機(jī)實(shí)現(xiàn)流水燈的若干種編程方法

2012-10-25 01:52:06易禮智
銅仁學(xué)院學(xué)報(bào) 2012年6期
關(guān)鍵詞:數(shù)組計(jì)數(shù)器賦值

易禮智

( 湖南工程職業(yè)技術(shù)學(xué)院 信息工程系,湖南 長沙 410151 )

1.硬件組成

本流水燈控制系統(tǒng)由電阻、發(fā)光二極管、單片機(jī)最小系統(tǒng)(proteus 仿真時(shí)省略電源、晶振、復(fù)位等電路)和必要的軟件。其具體硬件組成如圖1 所示。

從硬件中可發(fā)現(xiàn),從p1.0 輸出低電平時(shí)D1 亮,p1.0輸出高電平時(shí)D1 熄;同理,接在p1.1~p1.7 口的其他7 個(gè)LED 的點(diǎn)亮和熄滅的方法同D1。因此,將D1~D8 依次點(diǎn)亮、熄滅,8 個(gè)LED 將一亮一熄實(shí)現(xiàn)流水燈。

2.軟件編程

2.1.直接賦值

該代碼包含了main()和msec()兩個(gè)函數(shù)[1],main()為主程序,msec()為1s 延時(shí)子程序。feH 根據(jù)C51單片機(jī)硬件連接進(jìn)行確定,表示給P1 口的p1.0 賦了一個(gè)低電平,其他的為高電平。賦值后調(diào)用子程序msec(),調(diào)用中將實(shí)參1000 傳遞給被調(diào)用函數(shù)msec的形參x。

2.2.數(shù)據(jù)移位

該代碼的主函數(shù)main()中,for 語句的表達(dá)式用來描述循環(huán)的次數(shù)即小燈的個(gè)數(shù)。在硬件電路中C51 單片機(jī)的引腳輸出低電平時(shí),燈亮;反之,燈熄。D1~D8 循環(huán)亮的過程通過a=0xfe 和p1=~(a<

2.3.數(shù)組

這段代碼定義了一個(gè)一維數(shù)組{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},數(shù)組中的元素根據(jù)流水燈的工作過程來確定。語句 p1=a[i]表示將數(shù)組中元素的內(nèi)容依次送給P1 口。

用二維數(shù)組描述代碼:語句uint a[2][4]={{0xfe,0xfd,0xfb,0xf7},{0xef,0xdf,0xbf,0x7f}}描述數(shù)組元素;在循環(huán)嵌套中采用語句p1=a[i][s]將數(shù)組中元素的內(nèi)容依次送給P1 口。

2.4.指針

在這個(gè)代碼中通過指針直接賦值來實(shí)現(xiàn)流水燈。在主函數(shù)main()中,語句p=&a 表示把a(bǔ) 的地址送給p,經(jīng)過賦值后指針變量p 就指向了變量a。語句p1=*p 表示把變量a 里面的內(nèi)容送給p1 口。

用一維數(shù)組指針描述代碼:用語句 uint a[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}描述依次送給P1 口的各個(gè)數(shù)據(jù),在函數(shù)main()中,采用語句uint *p=a 表示指針變量p 指向數(shù)組a 的起始地址,語句p1=*(p+i)表示將數(shù)組a 中的數(shù)據(jù)依次送給P1。

用二維數(shù)組指針描述代碼,uint a[2][4]={{0xfe,0xfd,0xfb,0xf7},{0xef,0xdf,0xbf,0x7f}}描述依次送給P1 口的各個(gè)數(shù)據(jù);在主函數(shù)main()中,語句uint (*p)[4]表示指針變量p 指向一個(gè)包含4 個(gè)元素的一維數(shù)組;語句p=a 表示指針變量p 指向二維數(shù)組的第0 行的首地址,也就是 a[0][0]的起始地址;語句p1=*(*(p+i)+s)描述將二維數(shù)組中 a[i][s]的內(nèi)容傳送給P1。

2.5.定時(shí)計(jì)數(shù)器

在這個(gè)代碼中:傳送數(shù)據(jù)的方式采用數(shù)組的形式(給 P1 賦值也可采用本文中的其他方式),通過使用C51 單片機(jī)的定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)流水燈工作中的延時(shí)。在晶振為11.0592MHZ 時(shí),C51 單片機(jī)的機(jī)器周期[2]為 1us。本段代碼通過查詢 TF0 是否為“1”對重復(fù)20 次計(jì)數(shù)5000us 是否完成進(jìn)行判斷。

2.6.定時(shí)+中斷

在這段代碼中,傳送數(shù)據(jù)的方式采用數(shù)組[3]的形式(給 P1 賦值也可采用本文中的其他方式)。通過同時(shí)使用C51 單片機(jī)的定時(shí)/計(jì)數(shù)器與中斷系統(tǒng)來實(shí)現(xiàn)流水燈工作中的延時(shí)。定時(shí)/計(jì)數(shù)器定時(shí)50000us后,提出中斷請求;在中斷服務(wù)函數(shù)timer0()中,語句if(++i==20)中的i 對中斷的次數(shù)進(jìn)行計(jì)數(shù)。

3.結(jié)束

針對51 單片機(jī)實(shí)現(xiàn)流水燈的控制,上述編程方法從不同的角度提供了關(guān)鍵的代碼;在實(shí)際應(yīng)用中,需將代碼完善為完整程序。在實(shí)際應(yīng)用中,“定時(shí)+中斷”方式可與“直接賦值”、“數(shù)據(jù)移位”、“數(shù)組”、“指針”、“定時(shí)計(jì)數(shù)器”五種方式中的某一種進(jìn)行組合。通過對一個(gè)對象進(jìn)行多種編程描述,能有效提高電子、編程愛好者的學(xué)習(xí)興趣,提高動(dòng)手能力和解決實(shí)際問題的能力。

[1] 譚浩強(qiáng).C 程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1991.

[2] 胡漢才.單片機(jī)原理及接口[M].北京:清華大學(xué)出版社,2004.

[3] 馬忠梅,籍順心,張凱,馬巖.單片機(jī)的 C 語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.

猜你喜歡
數(shù)組計(jì)數(shù)器賦值
關(guān)于1 1/2 … 1/n的一類初等對稱函數(shù)的2-adic賦值
L-代數(shù)上的賦值
JAVA稀疏矩陣算法
煤氣與熱力(2022年2期)2022-03-09 06:29:30
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
強(qiáng)賦值幺半群上的加權(quán)Mealy機(jī)與加權(quán)Moore機(jī)的關(guān)系*
利用賦值法解決抽象函數(shù)相關(guān)問題オ
計(jì)數(shù)器競爭冒險(xiǎn)及其處理的仿真分析
尋找勾股數(shù)組的歷程
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
浮山县| 土默特右旗| 东至县| 金溪县| 张家港市| 大连市| 凤翔县| 抚顺县| 乐陵市| 亚东县| 三江| 绥化市| 开封县| 育儿| 平罗县| 翁牛特旗| 淮阳县| 平乐县| 蓬溪县| 施秉县| 乡城县| 长丰县| 平遥县| 平武县| 舒城县| 青龙| 天峨县| 杭锦后旗| 大化| 松滋市| 娱乐| 广昌县| 布拖县| 阜城县| 红河县| 开鲁县| 文成县| 洞口县| 五华县| 赤壁市| 鹿邑县|