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

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)常見(jiàn)延時(shí)與中斷問(wèn)題及解決方法

      單片機(jī)常見(jiàn)延時(shí)與中斷問(wèn)題及解決方法

      作者: 時(shí)間:2013-06-06 來(lái)源:網(wǎng)絡(luò) 收藏

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

      14、一個(gè)延時(shí)子程序的問(wèn)題,在延時(shí)子程序那里,一直搞不明白,給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

      答: 你的延時(shí)程序不是因?yàn)橹禐?,而是跳轉(zhuǎn)位置不對(duì),改為如下:

      delay: mov r6,#0

      delayloop:mov r7,#0

      :djnz r7,$

      djnz r6,delayloop

      ret

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

      0-1=255的解釋:

      0000 0000

      - 0000 0001

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

      1111

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

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

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

      答:

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

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

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

      16、51單片機(jī)延時(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è)機(jī)器周期

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

      2*9*116*82=171216

      不忽略指令是:

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

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

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

      uchar i;i--;

      uint i;i--;

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

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

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

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

      * 名稱 : Delay()

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

      * 輸入 : del

      * 輸出 : 無(wú)

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

      void Delay(uint del)

      {

      uint i,j;

      for(i=0; i

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

      ;

      }

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

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

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

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

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

      {

      uchar bt;

      for(;dt;dt--);

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

      }

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

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

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

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

      二、單片機(jī)30例

      1、單片機(jī)外中斷INT0為下降沿觸發(fā),當(dāng)中斷被觸發(fā)后cpu執(zhí)行中斷程序,若本次中斷的程序還未執(zhí)行完INT0又來(lái)了一個(gè)相同的下降沿中斷信號(hào)怎么辦?cpu會(huì)怎么處理?若是定時(shí)器中斷呢?串口中斷呢?求解釋

      答:再來(lái)一個(gè)INT0信號(hào)不會(huì)執(zhí)行。相同的優(yōu)先級(jí)不會(huì)打斷正在執(zhí)行的中斷。

      一. 如果是高優(yōu)先級(jí)的中斷來(lái)了,會(huì)打斷低優(yōu)先級(jí)的正在執(zhí)行的中斷而執(zhí)行高優(yōu)先級(jí)的中斷。

      51單片機(jī)的默認(rèn)(此時(shí)的IP寄存器不做設(shè)置)中斷優(yōu)先級(jí)為:

      外部中斷0 > 定時(shí)/計(jì)數(shù)器0 > 外部中斷1 > 定時(shí)/計(jì)數(shù)器1 > 串行中斷;

      當(dāng)同時(shí)有幾種中斷到達(dá)時(shí),高優(yōu)先級(jí)中斷會(huì)先得到服務(wù)。

      例如:當(dāng)計(jì)數(shù)器0中斷和外部中斷1(優(yōu)先級(jí) 計(jì)數(shù)器0中斷>外部中斷1)同時(shí)到達(dá)時(shí),會(huì)進(jìn)入計(jì)時(shí)器0的中斷服務(wù)函數(shù);但是在外部中斷1的中斷服務(wù)函數(shù)正在服務(wù)的情況下,這時(shí)候任何中斷都是打斷不了它的,包括邏輯優(yōu)先級(jí)比它高的外部中斷0計(jì)數(shù)器0中斷。

      51單片機(jī)的中斷優(yōu)先級(jí)控制寄存器IP可以把默認(rèn)的中斷優(yōu)先級(jí)設(shè)置為高或低級(jí),

      例如默認(rèn)是外部中斷0 > 定時(shí)/計(jì)數(shù)器0 > 外部中斷1 > 定時(shí)/計(jì)數(shù)器1 > 串行中斷;

      現(xiàn)在設(shè)為定時(shí)1 和串行中斷為高優(yōu)先級(jí) 其它為低 ,那么中斷0執(zhí)行時(shí)會(huì)被定時(shí)器1 或串行中斷打斷,如果設(shè)定的兩個(gè)高優(yōu)先級(jí)定時(shí)/計(jì)數(shù)器1 和串行中斷同時(shí)響應(yīng),會(huì)再自然排隊(duì),先執(zhí)行定時(shí)1中斷再執(zhí)行串行中斷。

      2、單片機(jī),中斷3為什么不執(zhí)行,整個(gè)程序有什么不對(duì)的地方呢?

      51單片機(jī)相關(guān)文章:51單片機(jī)教程


      c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


      晶振相關(guān)文章:晶振原理


      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉