• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    易禮智

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

    1.硬件組成

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

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

    2.軟件編程

    2.1.直接賦值

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

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

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

    2.3.數(shù)組

    這段代碼定義了一個一維數(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.指針

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

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

    2.5.定時計數(shù)器

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

    2.6.定時+中斷

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

    3.結(jié)束

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

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

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

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

    猜你喜歡
    數(shù)組計數(shù)器賦值
    關(guān)于1 1/2 … 1/n的一類初等對稱函數(shù)的2-adic賦值
    L-代數(shù)上的賦值
    JAVA稀疏矩陣算法
    電腦報(2022年13期)2022-04-12 00:32:38
    煤氣與熱力(2022年2期)2022-03-09 06:29:30
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    電腦報(2020年24期)2020-07-15 06:12:41
    強賦值幺半群上的加權(quán)Mealy機與加權(quán)Moore機的關(guān)系*
    利用賦值法解決抽象函數(shù)相關(guān)問題オ
    計數(shù)器競爭冒險及其處理的仿真分析
    尋找勾股數(shù)組的歷程
    任意N進制計數(shù)器的設(shè)計方法
    河南科技(2014年10期)2014-02-27 14:09:30
    虎林市| 虎林市| 宝兴县| 邻水| 长顺县| 孝义市| 兰西县| 汉寿县| 翁源县| 德化县| 基隆市| 高陵县| 保靖县| 大邑县| 嘉峪关市| 齐齐哈尔市| 西和县| 琼中| 九龙城区| 辉县市| 宁国市| 凌云县| 蓝山县| 涟水县| 南充市| 隆子县| 历史| 丘北县| 册亨县| 平武县| 耒阳市| 陈巴尔虎旗| 固镇县| 离岛区| 武城县| 康乐县| 双牌县| 新化县| 仪征市| 万荣县| 望江县|