999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

51單片機(jī)中for循環(huán)延時(shí)時(shí)間的分析與仿真驗(yàn)證

2015-07-27 07:38:45薛金水廣東工程職業(yè)技術(shù)學(xué)院廣州510520
山東工業(yè)技術(shù) 2015年19期
關(guān)鍵詞:單片機(jī)

薛金水(廣東工程職業(yè)技術(shù)學(xué)院,廣州 510520)

51單片機(jī)中for循環(huán)延時(shí)時(shí)間的分析與仿真驗(yàn)證

薛金水
(廣東工程職業(yè)技術(shù)學(xué)院,廣州510520)

摘要:在單片機(jī)控制中,延時(shí)控制是最常用的程序之一。本文對(duì)51系列單片機(jī)中各種for循環(huán)程序?qū)?yīng)的匯編代碼進(jìn)行分析,探究延時(shí)時(shí)間長(zhǎng)短的各種決定因素,提出了應(yīng)用for循環(huán)實(shí)現(xiàn)延時(shí)時(shí)間的一般估算方法和注意要素。并通過Proteus軟件仿真,對(duì)延時(shí)控制程序的時(shí)間進(jìn)行驗(yàn)證。

關(guān)鍵詞:?jiǎn)纹瑱C(jī);for循環(huán);延時(shí)控制;匯編代碼;Proteus仿真

1 引言

在單片機(jī)控制中,延時(shí)控制是最常用的程序之一。通過延時(shí),一方面使系統(tǒng)硬件各部分按照步驟設(shè)定,一步一步執(zhí)行下去;另一方面使系統(tǒng)的硬件和軟件能夠協(xié)調(diào)運(yùn)行,完成設(shè)定的傳輸和控制功能。延時(shí)控制既可以用硬件、也可以用軟件來實(shí)現(xiàn)。軟件控制可以用匯編語(yǔ)言或者C語(yǔ)言程序來實(shí)現(xiàn)。雖然匯編語(yǔ)言有指令緊湊、控制時(shí)間精確、占用內(nèi)存少等特點(diǎn),但是它相對(duì)難于掌握。由于C語(yǔ)言具有語(yǔ)言功能齊全、使用靈活方便、開發(fā)效率高,相對(duì)容易掌握等特點(diǎn),被廣泛應(yīng)用于在單片機(jī)系統(tǒng)開發(fā)應(yīng)用中。

在C語(yǔ)言延時(shí)程序設(shè)計(jì)中,常用三種循環(huán)語(yǔ)句(while語(yǔ)句、do while語(yǔ)句和for語(yǔ)句)實(shí)現(xiàn)延時(shí)功能。其中以for循環(huán)延時(shí)最為常見。本文從應(yīng)用需要角度出發(fā),依據(jù)單片機(jī)C語(yǔ)言for循環(huán)的各種不同形式,通過具體實(shí)例,對(duì)照編譯生成的匯編代碼,分析、歸納總結(jié)出C語(yǔ)言for循環(huán)延時(shí)程序的延時(shí)時(shí)間估算方法及,通過Proteus軟件仿真進(jìn)行驗(yàn)證,并提出使用建議。

2 各種for循環(huán)語(yǔ)句程序延時(shí)結(jié)果分析

用C語(yǔ)言編寫的單片機(jī)程序,首先要轉(zhuǎn)換為匯編語(yǔ)言,最后編譯為機(jī)器代碼后才能真正運(yùn)行。因此,對(duì)于用C語(yǔ)言編寫的各種延時(shí)程序,只有通過從其匯編轉(zhuǎn)換代碼上計(jì)算其實(shí)現(xiàn)延時(shí)時(shí)間,才是比較準(zhǔn)確時(shí)間估算的方法。

2.1決定for循環(huán)延時(shí)時(shí)間長(zhǎng)短的因素

從各種for循環(huán)語(yǔ)句程序延時(shí)情況進(jìn)行分析和驗(yàn)證,發(fā)現(xiàn):與延時(shí)結(jié)果有關(guān)的因素有如下三個(gè):循環(huán)變量類型(char或者int類型)、循環(huán)變量變化方式(遞增或者遞減)和循環(huán)次數(shù)(是否超過256)。下表是考慮上述三種因素的不同for循環(huán)延時(shí)程序的匯編代碼與實(shí)際延時(shí)時(shí)間分析和比較。

表1 循環(huán)變量為char類型的for循環(huán)延時(shí)程序

從表1可以看出,以char類型為循環(huán)變量、循環(huán)變量遞減變化時(shí),是使用寄存器R7,以DJNZ語(yǔ)句為循環(huán)體,延時(shí)時(shí)間為1+2x125=251us;以char類型為循環(huán)變量、循環(huán)變量遞增變化時(shí),同樣使用寄存器R7,以加1指令I(lǐng)NC和CJNZ語(yǔ)句為循環(huán)體,延時(shí)時(shí)間為1+(2+1)x126=379us。采用char類型為循環(huán)變量時(shí),循環(huán)變量遞增與遞減變化時(shí),其延時(shí)時(shí)間差別比較大。

表2 循環(huán)變量為int類型的for循環(huán)延時(shí)程序

從表2可以看出,以int類型為循環(huán)變量時(shí),只要循環(huán)次數(shù)不超過256次,則循環(huán)變量無論是遞減還是遞增變化,匯編語(yǔ)言都是使用寄存器R6和R7,以INC、CJNE或DJNZ語(yǔ)句為循環(huán)體,在循環(huán)次數(shù)相同時(shí)延時(shí)時(shí)間近似相等,循環(huán)次數(shù)增加時(shí)延時(shí)時(shí)間按照比例增加(見函數(shù)5、6、7、8);當(dāng)循環(huán)次數(shù)超過256次,延時(shí)時(shí)間不再成比例增加,例如:采用(unsigned)int;for(i=500;i>=1;i--);的延時(shí)時(shí)間約為4000us;采用(unsigned)int;for(i=1;i<=500;i++);的延時(shí)時(shí)間約為3000us。讀者可自行驗(yàn)證。

2.2for循環(huán)延時(shí)程序的應(yīng)用

從以上分析可以看出:采用char類型為循環(huán)變量類型時(shí),循環(huán)變量按照遞加或者遞減變化時(shí),延時(shí)時(shí)間會(huì)差別較大;采用int類型為循環(huán)變量類型時(shí),在循環(huán)次數(shù)不超過256次時(shí),按照遞加或者遞減變化時(shí),延時(shí)時(shí)間差別很小;而當(dāng)循環(huán)次數(shù)超過256次時(shí),其延時(shí)時(shí)間不能夠?qū)崿F(xiàn)等比例增加。

所以,從應(yīng)用角度出發(fā),采用定義i為整型時(shí),以for(i=125;

i>=1;i--);或者for(i=1;i<=125;i++);語(yǔ)句來作為1ms基本延時(shí)函數(shù),不用考慮循環(huán)變量是遞加還是遞減,比較簡(jiǎn)單易掌握。需要較長(zhǎng)的延時(shí)時(shí)間采用二重循環(huán)的方式。采用二重循環(huán)的方式,最長(zhǎng)可以延長(zhǎng)255ms,能夠滿足一般的延時(shí)需求。如果需要更長(zhǎng)時(shí)間延時(shí),則可以用三重甚至多重循環(huán)方式,但是循環(huán)次數(shù)一般不能超過256次。

例如:要實(shí)現(xiàn)延時(shí)10ms,則可以用如下循環(huán)

3 C語(yǔ)言程序軟件延時(shí)功能的Proteus仿真軟件

C語(yǔ)言延時(shí)功能實(shí)現(xiàn)過程中,為了驗(yàn)證其延時(shí)的正確性,一方面可以利用示波器來測(cè)定延時(shí)程序執(zhí)行時(shí)間,即設(shè)計(jì)一個(gè)基本單片機(jī)硬件電路,將包含實(shí)現(xiàn)延時(shí)函數(shù)的程序下載到單片機(jī)硬件電路,在程序中運(yùn)行該延時(shí)函數(shù),通過測(cè)量示波器相關(guān)輸出引腳上的高、低電平時(shí)間,即可確定延時(shí)函數(shù)執(zhí)行時(shí)間;也可以采用反匯編方法,即利用Proteus軟件將用C51編寫的延時(shí)函數(shù)轉(zhuǎn)換為匯編語(yǔ)言程序,通過計(jì)算匯編語(yǔ)言程序的運(yùn)行時(shí)間得到該延時(shí)函數(shù)的運(yùn)行時(shí)間;或者利用KeilC51編譯器中的斷點(diǎn)調(diào)試功能來模擬執(zhí)行延時(shí)代碼所需的時(shí)間,即在延時(shí)函數(shù)前、后設(shè)置斷點(diǎn),通過比較兩個(gè)斷點(diǎn)的時(shí)間變化來確定延時(shí)程序?qū)嶋H執(zhí)行時(shí)間。

這里介紹一種與單片機(jī)教學(xué)緊密結(jié)合,又比較容易實(shí)現(xiàn)的方法,即是利用Proteus軟件仿真功能來搭建一個(gè)硬件電路,然后將目標(biāo)程序經(jīng)編譯后生成HEX文件,寫入C51單片機(jī)中,利用Proteus中的虛擬示波器觀察設(shè)置輸出引腳(如P1.0)波形的變化周期來判斷是否實(shí)現(xiàn)預(yù)定延時(shí)功能。

例如:執(zhí)行上述延時(shí)10ms程序來控制輸出引腳(如P1.0)變化,將其生成的.HEX文件寫入單片機(jī)仿真電路中,利用Proteus中的虛擬示波器生成波形來判斷是否實(shí)現(xiàn)預(yù)定延時(shí)功能。如上述程序的波形圖如圖1。

從波形圖和相關(guān)旋鈕可以看出,該波形的幅度為5格*1V/格=5V,高、電平為2格*5ms/格=10ms,實(shí)現(xiàn)其延時(shí)功能。

圖1

4 結(jié)束語(yǔ)

本文通過分析比較,提出一種比較可靠的1ms基本延時(shí)函數(shù)實(shí)現(xiàn)方法,通過對(duì)該延時(shí)函數(shù)的循環(huán),便可以實(shí)現(xiàn)較長(zhǎng)時(shí)間延時(shí)。通過軟件仿真,對(duì)延時(shí)控制程序的時(shí)間精確度進(jìn)行驗(yàn)證和分析,并且可以根據(jù)實(shí)際延時(shí)輸出情況進(jìn)行調(diào)整。本文介紹單片機(jī)延時(shí)控制的實(shí)現(xiàn)方法比較容易掌握實(shí)現(xiàn),對(duì)延時(shí)精確度要求不是特別高的場(chǎng)合,具有一定的參考和應(yīng)用價(jià)值。

參考文獻(xiàn):

[1]陳宏希.51單片機(jī)中for循環(huán)延時(shí)時(shí)間的估算[J].蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013,13(04):34-36.

[2]戴娟.單片機(jī)技術(shù)與應(yīng)用[M].高等教育出版社,2012(10).

[3]吳挺運(yùn),林成何.KeilC51精確延時(shí)程序設(shè)計(jì)[J].電子科技,2012 (12):103-106.

[4]林立,張俊亮.單片機(jī)原理及應(yīng)用——基于Proteus和Keil C(第3版)[M].電子工業(yè)出版社,2014(08).

作者簡(jiǎn)介:薛金水(1974-),男,廣東興寧人,本科,研究方向:電子信息類專業(yè)教學(xué)和研究。

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個(gè)全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)
主站蜘蛛池模板: 国产成人精品男人的天堂| 最新日韩AV网址在线观看| 一级片免费网站| 亚洲热线99精品视频| 国产成人永久免费视频| 日韩美女福利视频| AV无码一区二区三区四区| 欧美亚洲欧美区| 无码专区第一页| 噜噜噜综合亚洲| 国产不卡一级毛片视频| 欧美成人aⅴ| 黄色网址免费在线| 国产嫩草在线观看| 欧美在线免费| 91免费国产高清观看| 亚洲欧美色中文字幕| 亚洲综合激情另类专区| 日韩欧美色综合| 四虎国产精品永久在线网址| 国产在线麻豆波多野结衣| 国产人人射| 爆操波多野结衣| 91午夜福利在线观看| 亚洲国产中文精品va在线播放 | 亚洲无码高清一区| 午夜无码一区二区三区| 精品国产一区二区三区在线观看| 久久无码av三级| 国产视频资源在线观看| 亚洲欧美日本国产综合在线| 免费a在线观看播放| 国产在线自在拍91精品黑人| 午夜免费小视频| 久操中文在线| 无遮挡国产高潮视频免费观看 | 亚洲国产天堂久久综合226114| AV不卡无码免费一区二区三区| 全免费a级毛片免费看不卡| 国产成人夜色91| 国产91丝袜| 国产在线精彩视频论坛| 国产成人欧美| 亚洲成aⅴ人片在线影院八| 香蕉久久国产超碰青草| 九九九精品成人免费视频7| 亚洲欧美日韩成人在线| 99精品国产高清一区二区| 国产精品99久久久久久董美香| 亚亚洲乱码一二三四区| 1769国产精品视频免费观看| 欧美va亚洲va香蕉在线| 超清人妻系列无码专区| 高清不卡一区二区三区香蕉| 亚洲视频欧美不卡| 日韩欧美国产精品| 日本精品αv中文字幕| 国产网站在线看| 亚洲欧美在线综合图区| 亚洲欧美自拍一区| 亚洲综合激情另类专区| 国产精品分类视频分类一区| 亚洲欧美在线综合一区二区三区| 91色在线观看| 日本手机在线视频| 国产成人综合亚洲欧美在| 亚洲精品在线影院| 91一级片| 国产亚洲成AⅤ人片在线观看| 精品伊人久久久香线蕉| 久久国产免费观看| 国产手机在线小视频免费观看| 久久久久无码国产精品不卡| 国产激情无码一区二区三区免费| 亚洲视频一区| 中国精品自拍| 一级毛片免费观看不卡视频| 国产极品美女在线播放| 久久久久人妻一区精品色奶水| 亚洲中文精品人人永久免费| 91在线高清视频| 国产香蕉97碰碰视频VA碰碰看|