国产精品2022不卡在线观看|青草国产福利视频免费观看|亚洲天堂日韩在线|日日摸夜夜添夜夜添97|亚洲伊人久久大香线蕉av|午夜性爽快免费视频播放

聯(lián)系我們

銷(xiāo)售直撥
     025-85550202;
     025-85550520;


master@csch.com.cn

技術(shù)咨詢(xún):
     025-85550520

duan@csch.com.cn

售后服務(wù)專(zhuān)線(xiàn):

     15251851604    

wu_yuyang@csch.com.cn

傳 真:025-85550303


深圳市中霍電子技術(shù)有限公司
地址:深圳市龍華新區龍華街道牛地埔村美滿(mǎn)圓小區
聯(lián)系人:顏安軍/副總
Mobile:18038070895
E-mail: szyanaj@csch.com.cn  
 

單片機延時(shí)這20個(gè)問(wèn)題要弄明白2

9、單片機延時(shí)函數的問(wèn)題

void delay(uchar i)

{

uchar j;

while(i--)

{

for(j=125;j>0;j--)

;

}

}

這個(gè)函數中的i,j的大小有**嗎?

答:這個(gè)函數中j的大小和你定義的數據類(lèi)型有關(guān),因為你定義的為無(wú)符號字符型,為單字節數據,所以zui大為255。.

如果你需要增大,可以改變j的數據類(lèi)型定義,如unsigned int (2字節)可以到65535;無(wú)符號長(cháng)整形unsigned long(4字節) 可以到4294967295。 而上面所所256是-1,而你定義的是無(wú)符號字符型。

10、請教一個(gè)AVR單片機延時(shí)的問(wèn)題

外部晶振用的是8MHz,延時(shí)1微秒的程序如下:

void delay_us(unsigned int delay_counter)//延時(shí)1us

{

do

{

delay_counter--;

}

while(delay_counter>1);

}

請問(wèn),為什么能延時(shí)1微秒啊?

答:8MHZ表示單片機的運行周期為1/8us,也就是0.125us執行一步

你使用的是軟件延時(shí)

那么包括程序的提取,執行等都要花費時(shí)間

比如,你提取這個(gè)函數可能花去一步,那現在就使用了0.125us啦

接著(zhù)你執行這個(gè)函數,在單片機內部,運算是通過(guò)寄存器的移來(lái)移去實(shí)現的

這都需要時(shí)間,可能你看到的就一句counter--這個(gè)指令,可能會(huì )花費好幾個(gè)時(shí)鐘周期來(lái)實(shí)現

舉個(gè)例子:

c=a+b,只有一句,但實(shí)際上花費的時(shí)間并不短

mov a,#data1;//數據data1放入a寄存器

mov b,#data2;//數據data2放入b寄存器

add a,b;//寄存器a的值與b相加,結果放入a

mov c,a;//將a的值放入c

這樣才是單片機內部真正執行的指令,這需要花費至少4個(gè)時(shí)鐘周期,而不是1個(gè)

至于晶體管級的我就不解釋了,你得好好學(xué)習匯編才能理解單片機的運作。

至于這個(gè)函數為什么能延時(shí)1ms,這個(gè)是靠經(jīng)驗來(lái)判斷的,zui直接的方法就是用示波器看,以上均為推論。

11、PIC單片機的延時(shí)問(wèn)題 晶振4Mhz:

void delay()

{

unsigned int d=1000;

while(--d){;}

}

此函數在4M晶體下產(chǎn)生10003us的延時(shí),也就是10MS。

問(wèn)題:我剛算了一下他應該執行了999條指令,1條單周期的指令也才1US,那就是999us,為什么會(huì )有10ms的延時(shí)?

1:for(x=100;--x;){;} : 2: for(x=0;x<100;x++){;} 2句話(huà)相同

第 一句:X的值范圍是不是 1~99?為什么?

第 二句:X的范圍是不是0~99?為什么?這么算的。我知道符號在前在后的區別。2句話(huà)應該是不一樣的才對啊!

答:

問(wèn)題1:“我剛算了一下他應該執行了999條指令”因為你算錯了。延時(shí)時(shí)間是由產(chǎn)生的匯編代碼所決定的,C語(yǔ)言語(yǔ)句只是個(gè)假象,千萬(wàn)不要以為C語(yǔ)言一行就是一條指令!此處由于涉及到雙字節減法,因此會(huì )有額外的判斷,編譯結果每次循環(huán)耗費幾十個(gè)周期毫不奇怪。

問(wèn)題2:前一句x從100開(kāi)始遞減,遞減至1時(shí)退出循環(huán)。后一句x從0開(kāi)始遞增,遞增到100時(shí)退出循環(huán)。所謂“2句話(huà)”相同僅僅是指這兩個(gè)循環(huán)體的循環(huán)次數相同。實(shí)際上兩個(gè)循環(huán)的執行過(guò)程是完全不同的,所消耗時(shí)間也有可能不同。

12、stc單片機的延時(shí)問(wèn)題 ,STC10F08XE單片機,晶振22.1184M

void delay(unsigned long uldata)

{

unsigned int j = 0;

unsigned int g = 0;

for (j=0;j<5;j++)

{

for (g=0;g

{

_nop_();

_nop_();

_nop_();

}

}

}

當uldata=1時(shí)延時(shí)多少秒?

請給出具體算法…………

答:用keil轉換成匯編語(yǔ)句,然后對照指令表計算就行了

13、我想用單片機連接不斷地向電腦發(fā)數,如下:

while (1)

{

send_char('9');

delay(n);

}

如每發(fā)送一個(gè)數,應延時(shí)多少微妙好呢?即一般zui短能延時(shí)多少微米呢?如延時(shí)太長(cháng)的話(huà),那發(fā)送很多數據不就用很長(cháng)時(shí)間嗎?

答:不做太多的串口處理分析,只順著(zhù)你的問(wèn)題和你的方法說(shuō)說(shuō):

先考慮下串口的速率 假設9600,那么發(fā)送一個(gè)字符要多久?

(9600bit/S) / 10bit(一個(gè)字符1+8+1) = 960字符/秒 約 1ms/byte

也就是說(shuō)你如果在1ms內發(fā)送超過(guò)一個(gè)字符就沒(méi)意義了,硬件速度達不到。

while(1)

{

send_char('9');

delay(n);

}

這個(gè)循環(huán)是執行周期也就十幾微秒+delay()的延遲,所以任何小于1040微秒的延遲對串口硬件來(lái)說(shuō)沒(méi)意義,上一個(gè)還沒(méi)處理完,下一個(gè)就來(lái)了根本執行不了嘛。

如果你send_char()里面有while(!TI);TI = 0;這樣的語(yǔ)句或有串口中斷TI的處理的話(huà),那么實(shí)際上你的delay()已經(jīng)在發(fā)送函數里了,while(!TI);這部就是延遲等待嗎?那根本不需要主函數去延遲了,直接發(fā)就行了。

14、一個(gè)單片機延時(shí)子程序的問(wèn)題,在延時(shí)子程序那里,一直搞不明白,給r7和r6賦予0,然后下面的djnz r7,delayloop不就一直循環(huán)了,那還怎么接下去的程序?

[!--empirenews.page--]

org 0000h

ljmp start

org 0030h

start: mov a,#0feh

mov r5,#8

output: mov p1,a

rl a

call delay

djnz r5,output

ljmp start

delay: mov r6,#0

mov r7,#0

delayloop:djnz r7,delayloop

djnz r6,delayloop

ret

end

答: 你的延時(shí)程序不是因為值為0,而是跳轉位置不對,改為如下:

delay: mov r6,#0

delayloop:mov r7,#0

:djnz r7,$

djnz r6,delayloop

ret

R7,R6初值為0,但是當DJNZ執行時(shí),這條指令是先減1再判斷,所以0-1=255,判斷的話(huà)也不為0,仍然循環(huán)256次。

0-1=255的解釋?zhuān)?

0000 0000

- 0000 0001

-------------------------

1111

15、我想提兩個(gè)單片機延時(shí)與按鍵的問(wèn)題

1:如果一個(gè)程序中延時(shí)和按鍵,如果延時(shí)子程序比較長(cháng)(假如2秒),怎樣確保按鍵能夠得到及時(shí)響應(假如PC正在執行延時(shí)子程序,正在這時(shí)候有按鍵輸入,不是響應不了)——,,,前提是不能用定時(shí)器定時(shí)掃描,和中斷來(lái)做,因為定時(shí)器和中斷我另有其他用途

2:?jiǎn)纹瑱C沒(méi)有串口。怎樣才能使得他與24C02進(jìn)行通信(24C02是具有2K內存的EEPROM)

答:

首先明確一點(diǎn)你說(shuō)單片機沒(méi)有串口,應該是指沒(méi)有I2C口吧。

1 在延時(shí)程序里面加入按鍵的檢測

2 用IO口模擬I2C時(shí)序讀寫(xiě)

16、51單片機延時(shí)小程序,求高手解釋什么意思?

delay200ms:

mov r2,#82

l0:mov r1,#116

l1:mov r0,#9

djnz r0,$

djnz r1,l1

djnz r2,l0

ret

答:以下是每條指令的時(shí)間,T為一個(gè)機器周期

delay200ms:

mov r2,#82;1T

l0:mov r1,#116;1T

l1:mov r0,#9;1T

djnz r0,$;2T

djnz r1,l1;2T

djnz r2,l0;2T

ret;2T

以上共三層循環(huán),忽略部分指令,zui簡(jiǎn)單算法是:

2*9*116*82=171216

不忽略指令是:

1+(1+(1+2*9+2)*116+2)*82+2=200001

因此延時(shí)時(shí)間大約為200ms

17、于51單片機延遲時(shí)間的問(wèn)題

uchar i;i--;

uint i;i--;

這兩條語(yǔ)句在12M晶振下運行時(shí)間分別是多少??

答:一個(gè)時(shí)鐘周期,2us,共4us

18、周期為6MHZ的單片機延時(shí)10秒的子程序的怎么編?

答:/********************************************************************

* 名稱(chēng) : Delay()

* 功能 : 延時(shí),延時(shí)時(shí)間為 10ms * del。這是通過(guò)軟件延時(shí),有一定誤差。

* 輸入 : del

* 輸出 : 無(wú)

***********************************************************************/

void Delay(uint del)

{

uint i,j;

for(i=0; i

for(j=0; j<1827; j++) //這個(gè)是通過(guò)軟件仿真得出的數

;

}

這個(gè)是晶振為12mhz的單片機延時(shí)10ms的程序,你只要在這個(gè)基礎上減小一倍就行了,當然至于具體值還是要調試下的。

19、片機的有些程序需要調用延時(shí)程序,如何能合理的安排循環(huán)次數以及空操作的個(gè)數?

答:用匯編的話(huà)就根據你的當前晶振頻率去推算你的指令周期,然后結合你需要延遲的時(shí)間,編寫(xiě)延遲程序,用C的話(huà)還是要看zui后生成的匯編碼是什么樣的了。zui簡(jiǎn)單的方法就是寫(xiě)好程序以后再編譯器里軟仿真看時(shí)間。贊同2| 評論(1)

20、單片機延時(shí)程序問(wèn)題

延時(shí)程序 void delay(uint dt)

{

uchar bt;

for(;dt;dt--);

for(bt=0;bt<255;bt++);

}

編譯時(shí)有警告C:DOCUMENTS AND SETTINGSADMINISTRATOR桌面字 310 點(diǎn)陣LED顯示.C(46): warning C235: parameter 1: different types

為什么?求大俠指點(diǎn)

答:某個(gè)函數傳參類(lèi)型與聲明類(lèi)型不符。

另外你這個(gè)for(;dt;dt--);沒(méi)有起

Copyright@ 2003-2025  南京信瑞譜傳感技術(shù)有限公司版權所有     

熱門(mén)導航電壓傳感器  霍爾電流傳感器  互感器  高精度電流傳感器  直流漏電流傳感器  直流電流變送器  霍爾傳感器工作原理 傳感器資料下載

           

        在線(xiàn)購買(mǎi)-直達淘寶店

     具體購買(mǎi)產(chǎn)品請聯(lián)系淘寶客服

(淘寶店拍買(mǎi)請聯(lián)系淘寶在線(xiàn)服務(wù),告知型號或在線(xiàn)經(jīng)理的姓名即可)

国产精品2022不卡在线观看|青草国产福利视频免费观看|亚洲天堂日韩在线|日日摸夜夜添夜夜添97|亚洲伊人久久大香线蕉av|午夜性爽快免费视频播放