在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機延時問題20問

            單片機延時問題20問

            作者: 時間:2013-01-30 來源:網(wǎng)絡 收藏

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

            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

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

            delay: mov r6,#0

            delayloop:mov r7,#0

            :djnz r7,$

            djnz r6,delayloop

            ret

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

            0-1=255的解釋:

            0000 0000

            - 0000 0001

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

            1111

            15、我想提兩個與按鍵的問題

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

            2:單片機沒有串口。怎樣才能使得他與24C02進行通信(24C02是具有2K內(nèi)存的EEPROM)

            答:

            首先明確一點你說單片機沒有串口,應該是指沒有I2C口吧。

            1 在延時程序里面加入按鍵的檢測

            2 用IO口模擬I2C時序讀寫

            16、51小程序,求高手解釋什么意思?

            delay200ms:

            mov r2,#82

            l0:mov r1,#116

            l1:mov r0,#9

            djnz r0,$

            djnz r1,l1

            djnz r2,l0

            ret

            答:以下是每條指令的時間,T為一個機器周期

            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),忽略部分指令,最簡單算法是:

            2*9*116*82=171216

            不忽略指令是:

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

            因此延時時間大約為200ms

            17、于51單片機延遲時間的問題

            uchar i;i--;

            uint i;i--;

            這兩條語句在12M晶振下運行時間分別是多少??

            答:一個時鐘周期,2us,共4us

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

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

            * 名稱 : Delay()

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

            * 輸入 : del

            * 輸出 : 無

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

            void Delay(uint del)

            {

            uint i,j;

            for(i=0; i

            for(j=0; j1827; j++) //這個是通過軟件仿真得出的數(shù)

            ;

            }

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

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

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

            20、單片機延時程序問題

            延時程序 void delay(uint dt)

            {

            uchar bt;

            for(;dt;dt--);

            for(bt=0;bt255;bt++);

            }

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

            為什么?求大俠指點

            答:某個函數(shù)與聲明。

            另外你這個for(;dt;dt--);沒有起到外層循環(huán)的作用……

            51單片機相關文章:51單片機教程


            c語言相關文章:c語言教程


            單片機相關文章:單片機教程


            單片機相關文章:單片機視頻教程


            單片機相關文章:單片機工作原理


            晶振相關文章:晶振原理

            上一頁 1 2 3 下一頁

            評論


            技術專區(qū)

            關閉