• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺談中職《單片機(jī)技術(shù)及應(yīng)用》的延時(shí)問(wèn)題

      2019-09-10 07:22:44李貴才
      南北橋 2019年12期
      關(guān)鍵詞:智能型延時(shí)單片機(jī)

      李貴才

      【摘? ? 要】單片機(jī)是一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng)。它具有體積小、功能強(qiáng)、成本低以及便于嵌入式分布式控制得到了極為廣泛的應(yīng)用。《單片機(jī)技術(shù)及應(yīng)用》是中等職業(yè)教育電子專(zhuān)業(yè)的一門(mén)重要專(zhuān)業(yè)課,不論是對(duì)今后進(jìn)入高職院校深造的同學(xué)們,還是中職學(xué)習(xí)結(jié)束就進(jìn)入社會(huì)就業(yè)的同學(xué)們都是至關(guān)重要的。單片機(jī)的“延時(shí)及計(jì)算問(wèn)題”往往困擾著同學(xué)們,為此總結(jié)一點(diǎn)小小經(jīng)驗(yàn)供參考。

      【關(guān)鍵詞】單片機(jī)? 智能型? 延時(shí)? 軟件延時(shí)? 硬件延時(shí)

      中圖分類(lèi)號(hào):G4? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1672-0407.2019.12.204

      單片機(jī)是一種是采用大規(guī)?;虺笠?guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng)。單片機(jī)具有體積小、功能強(qiáng)、功耗成本低以及便于嵌入式分布式控制得到了極為廣泛的應(yīng)用。

      《單片機(jī)技術(shù)及應(yīng)用》是我國(guó)中等職業(yè)教育學(xué)校電子專(zhuān)業(yè)的一門(mén)重要專(zhuān)業(yè)課程,也是參加對(duì)口升學(xué)高考的專(zhuān)業(yè)課之一,不論是對(duì)今后進(jìn)入高職院校深造的同學(xué)們,還是中職學(xué)習(xí)結(jié)束就進(jìn)入社會(huì)就業(yè)的同學(xué)們來(lái)說(shuō)都是至關(guān)重要的一門(mén)專(zhuān)業(yè)課,每位同學(xué)都應(yīng)認(rèn)真學(xué)好這門(mén)課。在這門(mén)課程的教學(xué)中,我發(fā)現(xiàn)單片機(jī)的“延時(shí)及計(jì)算問(wèn)題”往往困擾著同學(xué)們的學(xué)習(xí),一是抽象不好理解,二是不容易計(jì)算。延時(shí)的方法有兩類(lèi)即軟件延時(shí)與硬件延時(shí)。教學(xué)中通過(guò)不斷反思總結(jié),得到一點(diǎn)小小的經(jīng)驗(yàn),希望能對(duì)同學(xué)們的學(xué)習(xí)帶來(lái)一些幫助與啟發(fā)。

      1.軟件延時(shí)

      即用匯編語(yǔ)言或C語(yǔ)言編寫(xiě)出延時(shí)子程序,單片機(jī)運(yùn)行程序就需要時(shí)間從而達(dá)到延時(shí)的目的。為延長(zhǎng)一定的時(shí)間往往采用循環(huán)體進(jìn)行,讓單片機(jī)反復(fù)執(zhí)行一些無(wú)用的指令,就是為了延時(shí)。下面舉一簡(jiǎn)單例子來(lái)說(shuō)明:用單片機(jī)控制一只發(fā)光二極管閃爍發(fā)光。(中職階段匯編程序?qū)W習(xí)較多,以匯編程序?yàn)槔?。?/p>

      例一:

      ORG? ? ? 0000H

      AJMP? ? ? MAIN

      ORG? ? ? 0100H

      MAIN:? ?SETB? P1.0

      LCALL? ?DELAY

      CLR? ? ?P1.0

      LCALL? DELAY

      SJMP? ? MAIN

      DELAY:

      MOV? R7,#200

      DL1:MOV? R6,#250

      DL2:NOP

      DJNZ? ?R6,DL2

      DJNZ? ?R7,DL1

      RET

      END

      程序中標(biāo)號(hào)“DELAY”所包含的程序就是一段軟件延時(shí)程序。同學(xué)們對(duì)延時(shí)程序編寫(xiě)的格式過(guò)程往往不是問(wèn)題,但是對(duì)工作寄存器Rn的數(shù)字應(yīng)該是多少卻不知道怎樣來(lái)的,如何計(jì)算。要知道延時(shí)時(shí)間的相關(guān)計(jì)算,應(yīng)注意幾點(diǎn):(1)是要知道單片機(jī)應(yīng)用系統(tǒng)中晶體振蕩器的頻率多大,即算出時(shí)鐘周期與機(jī)器周期;(2)是所用指令的機(jī)器周期數(shù),有些指令是單周期,有些指令是雙周期,還有些指令是四周期;(3)是計(jì)算所有延時(shí)指令執(zhí)行的機(jī)器周期數(shù)。其中關(guān)鍵是第三點(diǎn),特別是多層循環(huán)的延時(shí)程序。

      例二:1秒延時(shí)子程序(晶振12MHZ,一個(gè)周期為1μs)

      DELAY:MOV? R7,#10

      DELAY1:MOV? R6,#200

      DELAY2:MOV? R5,#248

      DJNZ? R5,$

      DJNZ? R6,DELAY2

      DJNZ? R7,DELAY1

      RET

      對(duì)每條指令進(jìn)行計(jì)算得出精確延時(shí)時(shí)間為:

      1+(1*10)+(1*200*10)+(2*248*200*10)+(2*200*10)+(2*10)+2

      =[(2*248+3)*200+3]*10+3=998033μs≈1s

      經(jīng)過(guò)整理得到一個(gè)延時(shí)時(shí)間的計(jì)算公式:延時(shí)時(shí)間=[(2*第一層循環(huán)數(shù)+3)*第二層循環(huán)數(shù)+3]*第三層循環(huán)數(shù)+3,這就是有三層循環(huán)體延時(shí)時(shí)間的計(jì)算公式,當(dāng)然也可以構(gòu)成四層的循環(huán)。若只有兩層或一層循環(huán),那么第三層循環(huán)數(shù)或第二層循環(huán)數(shù)就取1。教學(xué)中有的老師提到,個(gè)別鉆牛角尖的同學(xué)會(huì)問(wèn)到軟件延時(shí)不精確,要十分準(zhǔn)確延時(shí)又咋辦呢?這也能辦到,可以在主延時(shí)程序的后面再加一段程序就可解決。

      如上面的例二,還差1967μs可再加這樣一段延時(shí)程序。

      DEL:NOP

      MOV? R4,#13

      DEL1:MOV? R3,#74

      DJNZ? R3,DEL1

      DJNZ? R4,DEL1

      RET

      對(duì)每條指令進(jìn)行計(jì)算得出精確延時(shí)時(shí)間為:

      1+[1+(1*13)+(2*74*13)+(2*13)+(2*10)+2]

      =[(2*74+3)*13+3]+1

      =1967μs

      為此在例一中我們用單片機(jī)去控制一只發(fā)光二極管的閃爍,亮、滅時(shí)間均為1s,其完整的匯編程序如下。(若晶振頻率12MHZ,一個(gè)周期為1μs)

      ORG? ? ? 0000H

      AJMP? ? ?MAIN

      ORG? ? ? 0100H

      MAIN:? ? ?SETB? P1.0

      LCALL? ? DELAY

      LCALL? ? DEL

      CLR? ? ? P1.0

      LCALL? ? DELAY

      LCALL? ? DEL

      SJMP? ? ?MAIN

      DELAY:DELAY:MOV? R7,#10

      DELAY1:MOV? R6,#200

      DELAY2:MOV? R5,#248

      DJNZ? ? ?R5,$

      DJNZ? ? ?R6,DELAY2

      DJNZ? ? ?R7,DELAY1

      RET

      DEL:? ? ?NOP

      MOV? ? ?R4,#13

      DEL1:? ? MOV? R3,#73

      DJNZ? ? ?R3,DEL1

      DJNZ? ? ?R4,DEL1

      RET

      END

      2.硬件延時(shí)。

      硬件延時(shí)就是用單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器T0或T1來(lái)完成。首先分清一個(gè)概念,其實(shí)定時(shí)器和計(jì)數(shù)器的原理都是一樣的,都是“數(shù)”脈沖,有些人強(qiáng)行的認(rèn)為,定時(shí)器是定時(shí)的,計(jì)數(shù)器是計(jì)數(shù)的,那是不對(duì)的。其區(qū)別在于定時(shí)器使用的是內(nèi)部時(shí)鐘脈沖(有時(shí)候也是用外部基準(zhǔn)時(shí)鐘,但情況比較少),因?yàn)闀r(shí)鐘脈沖穩(wěn)定的特點(diǎn),我們就可以通過(guò)計(jì)算脈沖個(gè)數(shù)N,知道時(shí)間T=N*(1/F)(F為時(shí)鐘頻率);計(jì)數(shù)器一般是外部脈沖統(tǒng)計(jì)個(gè)數(shù)。不過(guò)有時(shí)候定時(shí)器和計(jì)數(shù)器聯(lián)合使用,用來(lái)測(cè)量外部脈沖頻率。

      對(duì)于51單片機(jī)來(lái)說(shuō),內(nèi)部的兩個(gè)定時(shí)器實(shí)質(zhì)是16位的計(jì)數(shù)器,分別由高8位和低8位兩個(gè)寄存器組成,這兩個(gè)定時(shí)器由兩個(gè)8位特殊功能寄存器即TOMD與TCON控制,TOMD用于設(shè)置定時(shí)器的工作方式,TCON用于控制定時(shí)器的啟動(dòng)與中斷申請(qǐng)。同學(xué)們要熟悉這兩個(gè)特殊功能寄存器相應(yīng)位的功能及設(shè)置,這是學(xué)習(xí)中的一個(gè)難點(diǎn);另一個(gè)難點(diǎn)是定時(shí)器裝入初值的計(jì)算,要將十進(jìn)制換算成十六進(jìn)制,分成高8位和低8位,當(dāng)設(shè)置定時(shí)時(shí)間后,定時(shí)器開(kāi)始計(jì)時(shí),主程序繼續(xù)執(zhí)行,不用管定時(shí)器,當(dāng)定時(shí)時(shí)間到,定時(shí)器就會(huì)申請(qǐng)中斷,單片機(jī)就響應(yīng)中斷,處理定時(shí)子程序需要完成的工作,完成后返回到主程序繼續(xù)主程序的執(zhí)行。具體實(shí)現(xiàn)就是計(jì)數(shù)到65535再加一的話,定時(shí)器就會(huì)溢出,如果開(kāi)了中斷的話,就會(huì)進(jìn)入中斷服務(wù)程序。

      例三:用定時(shí)器做1S延時(shí)的匯編語(yǔ)言程序

      MOV? TOMD,#01H

      MOV? ?R1,#00H

      MAIN:

      MOV? ?TH0,#3CH

      MOV? ?TL0,#0B0H

      SETB? ?TR0

      JNB? ? TF0,$

      CLR? ? TF0

      INC? ? ?R1

      MOV? ?A,R1

      CJNE? ?A,#20,MAIN

      上面程序延時(shí)時(shí)間為T(mén)=(65536-15536)×1×20=106us=1s

      定時(shí)器/計(jì)數(shù)器初值的計(jì)算T0初值=216 -(T/時(shí)鐘周期×12)。

      總之延時(shí)程序的編寫(xiě)是單片機(jī)應(yīng)用的一個(gè)重要而又基礎(chǔ)的任務(wù),可能需要多次修改才能滿足要求。掌握好延時(shí)程序的編寫(xiě)對(duì)今后從事項(xiàng)目開(kāi)發(fā)有著重要意義。

      參考文獻(xiàn)

      [1]姜治臻等.單片機(jī)技術(shù)及應(yīng)用【M】,高等教育出版社.

      [2]徐新艷.單片機(jī)及工程應(yīng)用【M】,高等教育出版社.

      [3]51開(kāi)發(fā)板學(xué)習(xí).單片機(jī)教程網(wǎng)【DB/OL】.

      猜你喜歡
      智能型延時(shí)單片機(jī)
      基于級(jí)聯(lián)步進(jìn)延時(shí)的順序等效采樣方法及實(shí)現(xiàn)
      基于單片機(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ī)的便捷式LCF測(cè)量?jī)x
      電子制作(2019年9期)2019-05-30 09:42:02
      淺談智能型工業(yè)相機(jī)的應(yīng)用
      Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
      Microchip推出兩個(gè)全新PIC單片機(jī)系列
      凌華科技 工業(yè)級(jí)智能型相機(jī)NEON-1040
      桑塔納車(chē)發(fā)動(dòng)機(jī)延時(shí)熄火
      智能型無(wú)菌隔膜調(diào)節(jié)閥
      梧州市| 穆棱市| 黑河市| 广德县| 淳安县| 黎平县| 哈尔滨市| 万宁市| 霸州市| 额济纳旗| 烟台市| 阿克陶县| 长阳| 蛟河市| 革吉县| 朝阳县| 蒙自县| 宁晋县| 二连浩特市| 广水市| 铜川市| 东宁县| 平谷区| 丰县| 凤城市| 娱乐| 成安县| 叶城县| 开远市| 肥东县| 泊头市| 中西区| 洛扎县| 永平县| 新野县| 佳木斯市| 蒲城县| 怀化市| 文成县| 南宫市| 平和县|