版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)一些常用的延時(shí)與中斷問(wèn)題及解決方法延時(shí)與中斷出錯(cuò),是單片機(jī)新手在單片機(jī)幵發(fā)應(yīng)用過(guò)程中,經(jīng)常會(huì)遇到的問(wèn)題,本 文匯總整理了包含了 MCS 51系列單片機(jī)、MSP430單片機(jī)、C51單片機(jī)、8051F 的單片機(jī)、avr單片機(jī)、STC89C52 PC里片機(jī).在內(nèi)的各種單片機(jī)常見(jiàn)的延時(shí)與 中斷問(wèn)題及解決方法,希望對(duì)單片機(jī)新手 們,有所幫助!'、單片機(jī)延時(shí)問(wèn)題20問(wèn)1、單片機(jī)延時(shí)程序的延時(shí)時(shí)間怎么算的 答:如果用循環(huán)語(yǔ)句實(shí)現(xiàn)的循環(huán),沒(méi)法計(jì) 算,但是可以通過(guò)軟件仿真看到具體時(shí) 間,但是一般精精確延時(shí)是沒(méi)法用循環(huán)語(yǔ) 句實(shí)現(xiàn)的。如果想精確延時(shí),一般需要用到定時(shí)器, 延時(shí)時(shí)間與晶振有關(guān)系,單片機(jī)系
2、統(tǒng)一般 常選用 2 MHz、12 MHz或6 MHz晶振。第一種更容易產(chǎn)生各種標(biāo)準(zhǔn)的波特率,后,s兩種的一個(gè)機(jī)器周期分別為1卩和2便于精確延時(shí)。本程序中假設(shè)使用頻率為12 MHz 的晶振。最長(zhǎng)的延時(shí)時(shí)間可達(dá) 216=65 536卩。若定時(shí)器工作在方式 2, 則可實(shí)現(xiàn)極短時(shí)間的精確延時(shí);如使用其 他定時(shí)方式,則要考慮重裝定時(shí)初值的時(shí) 間(重裝定時(shí)器初值占用 2 個(gè)機(jī)器周期)2、求個(gè)單片機(jī) 89S51 12M 晶振 用定時(shí)器 延時(shí) 10 分鐘,控制 1 個(gè)燈就可以 答:可以設(shè) 50ms 中斷一次,定時(shí)初值,TH0=0x3c TL0=0xb0b 中斷 20 次為 1S, 10 分鐘的話(huà),需中斷 12
3、000 次。計(jì) 12000 次后,給一 IO 口一個(gè)低電平(如功率不夠,再加擴(kuò)展),就可控制燈了。同種7c 的話(huà),由樣,不會(huì)太準(zhǔn),而且還要看你用什么語(yǔ)言計(jì)算了,匯編延 時(shí)準(zhǔn)確,知道單片機(jī)工作周期和循環(huán)次數(shù) 即可算出,但不具有可移植性,在不 類(lèi)單片機(jī)中,匯編不通用。用 于各種軟件執(zhí)行效率不 通常用定時(shí)器做延時(shí)或做一個(gè)不準(zhǔn)確的延時(shí),延時(shí)短的話(huà),在 c 中使用匯編的 nop 做延時(shí)3、51 單片機(jī) C 語(yǔ)言 for 循環(huán)延時(shí)程序時(shí) 間計(jì)算,設(shè)晶振12MHz,即一個(gè)機(jī)器周 期是 1us。for(i=0,i<100;i+)for(j=0,j<100;j+)我覺(jué)得時(shí)間是100T00Tus=10
4、ms ,怎么會(huì) 是 100ms答: 不可能的,是不是你的編譯有錯(cuò)的啊我改的晶振12M,在KEIL里面編譯的, 為你得出的結(jié)果最大也就是 40ms,這是軟 件的原因,不可能出現(xiàn) 100ms 那么大的差距, 是你的 軟件的原因 不信你實(shí)際編寫(xiě)一個(gè)秒鐘,利用原理計(jì)算 編寫(xiě)一個(gè)燒進(jìn)單片機(jī)和利用軟件測(cè)試的 秒程序燒進(jìn)單片機(jī),你會(huì)發(fā)現(xiàn)原理計(jì)算的 程序是正確的4、51單片機(jī)c語(yǔ)言_nop_()是一個(gè)空指 令短時(shí)間延時(shí)的空幾個(gè)機(jī)器周期答:這個(gè)_nop_()等效與匯編里面的,NOP 指令,也就是空一個(gè)機(jī)器周期,如果是傳 統(tǒng) 51 單片機(jī)的話(huà),等于空 1 2個(gè)時(shí)鐘周期 【即一個(gè)機(jī)器周期】5、51 單片機(jī) 延時(shí) 5
5、00ms 用機(jī)器周期疊 加怎么算答: DELAY:MOV R7,#4D2:MOV R6,#250D1:MOV R5,#250 DJNZ R5,$DJNZ R6,D1DJNZ R7,D2RET 假設(shè)晶振為 12MHz 剛延時(shí)時(shí)間為 :250*250*4*2=500MS 6、51單片機(jī)C語(yǔ)言程序中延時(shí)函數(shù)delay 的原理是什么現(xiàn)在找到兩個(gè)函數(shù) 第一: void delay(void) unsigned int i,j;for(i=0;i<500;i+) for(j=0;j<121;j+);第二:void delay(unsigned int k) unsigned int i,j;f
6、or(i=0;i<k;i+) for(j=0;j<121;j+);現(xiàn)有幾個(gè)疑問(wèn):(1):延時(shí)函數(shù)的原理(2)(3)兩個(gè) for 循環(huán)的作用i、j 的取值有什么規(guī)律和依據(jù)是不 是和單片機(jī)接的晶振頻率有關(guān)所能延時(shí) 的最小單位時(shí)間是怎么計(jì)算的 延時(shí)時(shí)間怎么計(jì)算?。〖偃缬玫氖茿T89C51RC的晶振呢答:“經(jīng)驗(yàn) 情況就不1 :原理:僅僅執(zhí)行一些,沒(méi)有實(shí)質(zhì)性影 響的所謂 “無(wú)意義指令 ”,比如做比大小啊, 做某個(gè) int 的自加運(yùn)算啊之類(lèi)的 2:兩重 for 的作用:簡(jiǎn)單的說(shuō),就像高中 數(shù)學(xué)中的 “乘法原理 ”一樣,這樣可以很輕 易的迅速增加上述 “無(wú)意義指令 ”的數(shù)目 3:關(guān)于取值大?。哼@
7、個(gè)如果是在 C 下變 成,這個(gè)值不僅僅與晶振、單片機(jī)本身運(yùn) 算速度有關(guān),而且還與 C的編譯器有關(guān), 所以說(shuō),這個(gè)值雖說(shuō)是可以精確計(jì)算的, 但大多數(shù)情況下,程序員用的都是 值”當(dāng)然,如果用匯編編程, 一樣了,因?yàn)槊恳粭l指令所使用的機(jī)器周期是一定的,你當(dāng)然可以根據(jù)所有指令使 用的總時(shí)間,精確的算出具體延時(shí)的總時(shí) 間 綜合你的的問(wèn)題,我給你一點(diǎn)建議,就是 剛學(xué)單片機(jī)的時(shí)候,還是一定要老老實(shí)實(shí) 的從匯編編程學(xué)起 這樣,在你以后接 觸到 C 之后,你才能明白,這中間實(shí)際上 經(jīng)歷了一個(gè)什么樣的過(guò)程,只有這樣你才 能真正理解單片機(jī)。當(dāng)然,等最終你完全 拿下一種單片機(jī)之后,盡量使用 C 編程, 無(wú)疑是歷史所肯
8、定的。7、51 單片機(jī),晶振為 6M, 求一個(gè) 10ms 的延時(shí)程序 答:延時(shí)有很多種方法,有一種是讓單片 機(jī)去做無(wú)聊的循環(huán),還有一種是用定時(shí) 器。第一種的算法是:晶振的周期T1 = 1/f;這里f=6MHz所以個(gè) T1 去執(zhí)行個(gè)指令T1= 1/6 us;(微秒) 單片機(jī)花 12所以一個(gè)機(jī)器周期等于 12 個(gè)晶振周期,T2= 12*T1=2us10ms=1000 0us 所以你要得到 10ms 的延時(shí)就要想辦法讓 機(jī)器去做 5000 條“無(wú)聊的指令 ” 所以DEL: MOV R5,#05HF1: MOV R6,#05HF2: MOV R7,#32HF3: DJNZ R7,F3DJNZ R6,F
9、2DJNZ R5,F1RET這種方法是用于對(duì)時(shí)間要求不高的地方, 我說(shuō)的是其思想,程序中可能有錯(cuò)的地方 用定時(shí)器的方法我不太會(huì)就不誤人了(補(bǔ)充一下就是這個(gè)是用匯編寫(xiě)的,你在主程 序中用ACALL DE調(diào)用就延時(shí)了。8、今天我用單片機(jī)做眨眼的LED”實(shí)驗(yàn)時(shí),程序運(yùn)行,每次只令燈亮或滅都沒(méi)問(wèn)題,但是一開(kāi)延時(shí)不能出現(xiàn)期盼的燈亮燈 滅的現(xiàn)象,這是怎么回事實(shí)驗(yàn)的硬件條件是:STC89C52編譯環(huán)境:keil 3。F面是我寫(xiě)的程序,請(qǐng)教高手!#include <>如果你需要增大,可以改變j號(hào)長(zhǎng)整形 unsigned 可以到95。的數(shù)據(jù)類(lèi)型定義,如 unsigned int ( 2字 節(jié))可以到
10、65535;無(wú)符耳乖上面所所long( 4 字節(jié))256是-1,而你定義的是無(wú)符號(hào)字符型。10、請(qǐng)教一個(gè) AVR單片機(jī)延時(shí)的問(wèn)題 外部晶振用的是8MHz,延時(shí)1微秒的程序 如下:intvoiddelay_us( un sig neddelay_counter)/ 延時(shí) 1us dodelay_counter-;while(delay_counter>1);請(qǐng)問(wèn),為什么能延時(shí) 1 微秒啊 答: 8MHZ 表示單片機(jī) 的運(yùn) 行 周期為 1/8us ,也就是執(zhí)行一步 你使用的是軟件延時(shí) 那么包括程序的提取,執(zhí)行等都要花費(fèi)時(shí) 間 比如,你提取這個(gè)函數(shù)可能花去一步,那 現(xiàn)在就使用了啦 接著你執(zhí)行這個(gè)函數(shù),在單片機(jī)內(nèi)部,運(yùn) 算是通過(guò)寄存器的移來(lái)移去實(shí)現(xiàn)的 這都需要時(shí)間,可能你看到的就一句 counter- 這個(gè)指令,可能會(huì)花費(fèi)好幾個(gè)時(shí) 鐘周期來(lái)實(shí)現(xiàn) 舉個(gè)例子:c=a+b,只有一句,但實(shí)際上花費(fèi)的時(shí)間并 不短mov a,#data1;/ 數(shù)據(jù) data1 放入 a 寄存 器b;/ 寄存器 a 的值與 b 相加,結(jié) aa; / 將 a 的值放入 cmov b ,#data2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中圖版必修二歷史下冊(cè)月考試卷
- 2025年粵教新版必修1歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年冀教版九年級(jí)歷史下冊(cè)月考試卷含答案
- 2025年浙教新版選擇性必修二化學(xué)下冊(cè)月考試卷
- 2025年山東杏林科技職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年宜春幼兒師范高等專(zhuān)科學(xué)校高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年安徽藝術(shù)職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年寧波衛(wèi)生職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年大同煤炭職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年高考語(yǔ)文一輪復(fù)習(xí):古詩(shī)文閱讀之詩(shī)歌形象(含答案)
- 征兵工作試題
- TCALC 003-2023 手術(shù)室患者人文關(guān)懷管理規(guī)范
- 數(shù)據(jù)遷移解決方案
- 2024供電營(yíng)業(yè)規(guī)則學(xué)習(xí)課件
- 腦卒中后吞咽障礙患者進(jìn)食護(hù)理-2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)
- 2024春蘇教版《亮點(diǎn)給力大試卷》 數(shù)學(xué)四年級(jí)下冊(cè)(全冊(cè)有答案)
- 高考滿(mǎn)分作文常見(jiàn)結(jié)構(gòu)完全解讀
- 專(zhuān)題2-2十三種高考補(bǔ)充函數(shù)歸類(lèi)(講練)
- 三年級(jí)英語(yǔ)上冊(cè)整冊(cè)書(shū)單詞默寫(xiě)表學(xué)生版(外研版三起)
- 六年級(jí)數(shù)學(xué)上冊(cè)100道口算題(全冊(cè)完整版)
評(píng)論
0/150
提交評(píng)論