(玩(wan)電子) 電子技術學習與(yu)研究
當(dang)前(qian)位置(zhi)︰單片(pian)機(ji)教程(cheng)網 >> 基礎教程(cheng) >> 瀏(liu)覽文章(zhang)

湖北彩票官网

作(zuo)者:佚名   來源:本站原創   點(dian)擊數:x  更新(xin)時間(jian)︰2020年02月19日   【字體︰大(da)

上一次課中,我們已經(jing)知道,程(cheng)序中的符號(hao)R7、R6是代表了一個(ge)個(ge)的RAM單元(yuan),是用來放一些數據(ju)的,下面我們再來看一下其(qi)它符號(hao)的含義。

DELAY:   MOV R7,#250   ;(6)

D1:   MOV R6,#250      ;(7)

D2:   DJNZ R6,D2      ;(8)

DJNZ R7,D1            ;(9)   

RET                ;(10)

〈單片(pian)機(ji)延時程(cheng)序〉

  MOV︰這是一條指(zhi)令(ling),意思是傳(chuan)遞數據(ju)。說到(dao)傳(chuan)遞,我們都很(hen)清楚,傳(chuan)東(dong)西要從一本人的手(shou)上傳(chuan)到(dao)另一本人的手(shou)上,也就是說要有一個(ge)接受者,一個(ge)傳(chuan)遞者和一樣東(dong)西。從指(zhi)令(ling)MOV R7,#250中來分析,R7是一個(ge)接受者,250是被傳(chuan)遞的數,傳(chuan)遞者在這條指(zhi)令(ling)中被省略了(注意︰並不是每一條傳(chuan)遞指(zhi)令(ling)都會省的,事實上大(da)部份數據(ju)傳(chuan)遞指(zhi)令(ling)都會有傳(chuan)遞者)。它的意義也很(hen)明顯︰將數據(ju)250送到(dao)R7中去,因此執行完這條指(zhi)令(ling)後,R7單元(yuan)中的值就應當(dang)是250。在250前(qian)面有個(ge)#號(hao),這又是什麼(me)意思呢?這個(ge)#就是用來說de)50就是一個(ge)被傳(chuan)遞的東(dong)西本身(shen),而(er)不是傳(chuan)遞者。那麼(me)MOV R6,#250是什麼(me)意思,應當(dang)不用分析了吧。

  DJNZ︰這是另一條指(zhi)令(ling),我們來看一下這條指(zhi)令(ling)後面跟著的兩個(ge)東(dong)西,一個(ge)是R6,一個(ge)是D2,R6我們當(dang)bi)灰閻 鞘裁me)了,查一下D2是什麼(me)。D2在本行的前(qian)面,我們已學過(guo),這稱之為標(biao)號(hao)。標(biao)號(hao)的用途是什麼(me)呢?就是給本行起(qi)一個(ge)名字。DJNZ指(zhi)令(ling)的執行過(guo)程(cheng)是這樣的,它將其(qi)後面的第一個(ge)參數中的值減1,然後看一下,這個(ge)值是否等于0,如(ru)果(guo)等于0,就往下執行,如(ru)果(guo)不等于0,就轉移,轉到(dao)什麼(me)地方去呢?可能大(da)家已猜到(dao)了,轉到(dao)第二(er)個(ge)參數所指(zhi)定的地方去(請大(da)家用自已的話講一下這條語句是怎樣執行的)。本條指(zhi)令(ling)的最終執行結(jie)果(guo)就是,在原地轉圈250次。

  執行完了DJNZ R6,D2之後(也就是R6的值等于0之後),就會去執行下面一行,也就是DJNZ R7,D1,請大(da)家自行分析一下這句話執行的結(jie)果(guo)。(轉去執行MOV R6,#250,同(tong)時R7中的值減1),最終DJNZ R6,D2這句話將被執行250*250=62500次,執行這麼(me)多(duo)次同(tong)一條指(zhi)令(ling)干嗎?就是為了延時。

一個(ge)問題︰如(ru)果(guo)在R6中放入0,會有什麼(me)樣的結(jie)果(guo)。

二(er)、時序分析︰

  前(qian)面我們介紹(shao)了延時程(cheng)序,但這還不完善,因為,我們只知道DJNZ R6,D2這句話會被執行62500次,但是執行這麼(me)多(duo)次需要多(duo)長時間(jian)呢?是否滿足我們的要求呢?我們還不知道,所以下面要來解(jie)決這個(ge)問題。

  先提一個(ge)問題︰我們學校里(li)什麼(me)是最重要的。(鈴聲)校長能出差,老師(shi)能休息,但學校一日無鈴聲必定大(da)亂。整個(ge)學校就是在鈴聲的統一指(zhi)揮下,步(bu)調一致,統一協調地工作(zuo)著。這個(ge)鈴是qian)匆歡 氖奔jian)安(an)cai)爬聰xiang)的,我們能稱之為“時序��時間(jian)的次序”。一個(ge)由人組成的單位尚(shang)且要有一定的時序,計算(suan)機(ji)當(dang)bi)桓 醒細竦氖斃頡J率瞪希 撲suan)機(ji)更象一個(ge)大(da)鐘(zhong),什麼(me)時候分針動,什麼(me)時候秒針動,什麼(me)時候時針動,都有嚴格的規定,一點(dian)也不能亂。計算(suan)機(ji)要完成的事更復雜,所以它的時序也更復雜。

  我們已知,計算(suan)機(ji)工作(zuo)時,是一條一條地從ROM中取指(zhi)令(ling),然後一步(bu)一步(bu)地執行,我們規定︰計算(suan)機(ji)訪(fang)問一次存儲器的時間(jian),稱之為一個(ge)機(ji)器周期。這是一個(ge)時間(jian)基準,好(hao)象我們人用“秒”作(zuo)為我們的時間(jian)基準一樣,為什麼(me)不干脆用“秒”,多(duo)好(hao),很(hen)習慣(guan),學下去我們就會知道用“秒”反而(er)不習慣(guan)。

一個(ge)機(ji)器周期包括12個(ge)時鐘(zhong)周期。下面讓我們算(suan)一下一個(ge)機(ji)器周期是多(duo)長時間(jian)吧。設一個(ge)單片(pian)機(ji)工作(zuo)于12M晶體震(zhen)蕩器,它的時鐘(zhong)周期是1/12(微秒)。它的一個(ge)機(ji)器周期是12*(1/12)也就是1微秒。(請計算(suan)一個(ge)工作(zuo)于6M晶體震(zhen)蕩器的單片(pian)機(ji),它的機(ji)器周期是多(duo)少)。

  MCS-51單片(pian)機(ji)的所有指(zhi)令(ling)中,有一些完成得(de)比(bi)較快,只要一個(ge)機(ji)器周期就行了,有一些完成得(de)比(bi)較慢,得(de)要2個(ge)機(ji)器周期,還有兩條指(zhi)令(ling)要4個(ge)機(ji)器周期才(cai)行。這也不難(nan)再解(jie),不是嗎?我讓你掃地的執行要完成總得(de)比(bi)要你完成擦(ca)黑板(ban)的指(zhi)令(ling)時間(jian)要長。為了恆量指(zhi)令(ling)執行時間(jian)的長短,又引入一個(ge)新(xin)的概念︰指(zhi)令(ling)周期。所謂指(zhi)令(ling)周期就是指(zhi)執行一條指(zhi)令(ling)的時間(jian)。INTEL對每一條指(zhi)令(ling)都給出了它的指(zhi)令(ling)周期數,這些數據(ju),大(da)部份不需要我們去記憶(yi),但是有一些指(zhi)令(ling)是需要記住的,如(ru)DJNZ指(zhi)令(ling)是雙周期指(zhi)令(ling)。

  下面讓我們來計算(suan)剛才(cai)的nan)郵薄Jshou)先必須要知道晶體震(zhen)蕩器的頻(pin)率,我們設所用晶體震(zhen)蕩器為12M,則一個(ge)機(ji)器周期就是1微秒。而(er)DJNZ指(zhi)令(ling)是雙周期指(zhi)令(ling),所以執行一次要2個(ge)微秒。一共執行62500次,正好(hao)125000微秒,也就是125毫秒。

 如(ru)果(guo)你對上面幾句還是不懂請看這里(li)的詳解(jie)︰http://www.51hei.com/mcu/1247.html

 關于用C語言寫延時函數的詳解(jie)請看這︰http://www.51hei.com/mcu/710.html

練習︰設計一個(ge)延時100毫秒的nan)郵背cheng)序。

要點(dian)分析︰1、一個(ge)單元(yuan)中的數是否能超過(guo)255。2、如(ru)何分配兩個(ge)數。

三、復位電路

一、復位方式

  復位條件
        RST引腳保持2個(ge)機(ji)器周期以上的高電平(ping)。

  復位電路


〈單片(pian)機(ji)復位電路〉

  復位後CPU狀(zhuang)態

       PC︰  0000H         TMOD︰ 00H

       Acc︰ 00H           TCON︰ 00H

       B︰   00H           TH0︰  00H

       PSW︰ 00H           TL0︰  00H

       SP︰  07H           TH1︰  00H

       DPTR︰0000H         TL1︰  00H

       P0~P3︰FFH         SCON︰ 00H

       IP︰×××00000B    SBUF︰ 不定

       IE︰0××00000B     PCON︰ 0×××0000B

  任何單片(pian)機(ji)在工作(zuo)之前(qian)都要有個(ge)復位的過(guo)程(cheng),復位是什麼(me)意思呢?它就象是我們上課之前(qian)打的預備鈴。預備鈴一響(xiang),大(da)家就自動地從操場、其(qi)它地方進入教室了,在這一段(duan)時間(jian)里(li),是沒(mei)有老師(shi)干預的,對單片(pian)機(ji)來說,是程(cheng)序還沒(mei)有開始執行,是在做準備工作(zuo)。顯然,準備工作(zuo)不需要太(tai)長的時間(jian),復位只需要5ms的時間(jian)就能了。如(ru)何進行復位呢?只要在單片(pian)機(ji)的RST管腳上加上高電平(ping),就能了,按上面所說,時間(jian)不少于5ms。為了達(da)到(dao)這個(ge)要求,能用很(hen)多(duo)種辦(ban)法,這里(li)供給一種供參考,見圖1。實際上,我們在上一次實驗的圖中已見到(dao)過(guo)了。

  這種zhi)次壞緶返墓?zuo)原理是︰通電時,電容兩端(duan)相當(dang)于是短路,于是RST管腳上為高電平(ping),然後電源通過(guo)電阻對電容充電,RST端(duan)電壓(ya)慢慢下降,降到(dao)一定程(cheng)序,即(ji)為低電平(ping),單片(pian)機(ji)開始正常工作(zuo)。

發表評論】【告(gao)訴好(hao)友】【收藏此文】【關閉窗口

湖北彩票官网

湖北彩票官网 | 下一页