久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 75177|回復: 107
打印 上一主題 下一主題
收起左側

5課:單片機延時程序分析

  [復制鏈接]
跳轉到指定樓層
樓主
ID:1 發表于 2013-5-21 02:48 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
上一次課中,我們已經知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數據的,下面我們再來看一下其它符號的含義。
DELAY:   MOV R7,#250   ;(6)
D1:   MOV R6,#250      ;(7)
D2:   DJNZ R6,D2      ;(8)
DJNZ R7,D1            ;(9)   
RET                ;(10)

〈單片機延時程序〉
  MOV:這是一條指令,意思是傳遞數據。說到傳遞,我們都很清楚,傳東西要從一本人的手上傳到另一本人的手上,也就是說要有一個接受者,一個傳遞者和一樣東西。從指令MOV R7,#250中來分析,R7是一個接受者,250是被傳遞的數,傳遞者在這條指令中被省略了(注意:并不是每一條傳遞指令都會省的,事實上大部份數據傳遞指令都會有傳遞者)。它的意義也很明顯:將數據250送到R7中去,因此執行完這條指令后,R7單元中的值就應當是250。在250前面有個#號,這又是什么意思呢?這個#就是用來說明250就是一個被傳遞的東西本身,而不是傳遞者。那么MOV R6,#250是什么意思,應當不用分析了吧。
  DJNZ:這是另一條指令,我們來看一下這條指令后面跟著的兩個東西,一個是R6,一個是D2,R6我們當然已知是什么了,查一下D2是什么。D2在本行的前面,我們已學過,這稱之為標號。標號的用途是什么呢?就是給本行起一個名字。DJNZ指令的執行過程是這樣的,它將其后面的第一個參數中的值減1,然后看一下,這個值是否等于0,如果等于0,就往下執行,如果不等于0,就轉移,轉到什么地方去呢?可能大家已猜到了,轉到第二個參數所指定的地方去(請大家用自已的話講一下這條語句是怎樣執行的)。本條指令的最終執行結果就是,在原地轉圈250次。
  執行完了DJNZ R6,D2之后(也就是R6的值等于0之后),就會去執行下面一行,也就是DJNZ R7,D1,請大家自行分析一下這句話執行的結果。(轉去執行MOV R6,#250,同時R7中的值減1),最終DJNZ R6,D2這句話將被執行250*250=62500次,執行這么多次同一條指令干嗎?就是為了延時。
一個問題:如果在R6中放入0,會有什么樣的結果。
二、時序分析:
  前面我們介紹了延時程序,但這還不完善,因為,我們只知道DJNZ R6,D2這句話會被執行62500次,但是執行這么多次需要多長時間呢?是否滿足我們的要求呢?我們還不知道,所以下面要來解決這個問題。
  先提一個問題:我們學校里什么是最重要的。(鈴聲)校長能出差,老師能休息,但學校一日無鈴聲必定大亂。整個學校就是在鈴聲的統一指揮下,步調一致,統一協調地工作著。這個鈴是按一定的時間安排來響的,我們能稱之為“時序��時間的次序”。一個由人組成的單位尚且要有一定的時序,計算機當然更要有嚴格的時序。事實上,計算機更象一個大鐘,什么時候分針動,什么時候秒針動,什么時候時針動,都有嚴格的規定,一點也不能亂。計算機要完成的事更復雜,所以它的時序也更復雜。
  我們已知,計算機工作時,是一條一條地從ROM中取指令,然后一步一步地執行,我們規定:計算機訪問一次存儲器的時間,稱之為一個機器周期。這是一個時間基準,好象我們人用“秒”作為我們的時間基準一樣,為什么不干脆用“秒”,多好,很習慣,學下去我們就會知道用“秒”反而不習慣。
一個機器周期包括12個時鐘周期。下面讓我們算一下一個機器周期是多長時間吧。設一個單片機工作于12M晶體震蕩器,它的時鐘周期是1/12(微秒)。它的一個機器周期是12*(1/12)也就是1微秒。(請計算一個工作于6M晶體震蕩器的單片機,它的機器周期是多少)。
  MCS-51單片機的所有指令中,有一些完成得比較快,只要一個機器周期就行了,有一些完成得比較慢,得要2個機器周期,還有兩條指令要4個機器周期才行。這也不難再解,不是嗎?我讓你掃地的執行要完成總得比要你完成擦黑板的指令時間要長。為了恒量指令執行時間的長短,又引入一個新的概念:指令周期。所謂指令周期就是指執行一條指令的時間。INTEL對每一條指令都給出了它的指令周期數,這些數據,大部份不需要我們去記憶,但是有一些指令是需要記住的,如DJNZ指令是雙周期指令。
  下面讓我們來計算剛才的延時。首先必須要知道晶體震蕩器的頻率,我們設所用晶體震蕩器為12M,則一個機器周期就是1微秒。而DJNZ指令是雙周期指令,所以執行一次要2個微秒。一共執行62500次,正好125000微秒,也就是125毫秒。
如果你對上面幾句還是不懂請看這里的詳解:http://www.zg4o1577.cn/mcu/1247.html
關于用C語言寫延時函數的詳解請看這:http://www.zg4o1577.cn/mcu/710.html
練習:設計一個延時100毫秒的延時程序。
要點分析:1、一個單元中的數是否能超過255。2、如何分配兩個數。
三、復位電路
一、復位方式
⒈ 復位條件
        RST引腳保持2個機器周期以上的高電平。
⒉ 復位電路

〈單片機復位電路〉
⒊ 復位后CPU狀態
       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
  任何單片機在工作之前都要有個復位的過程,復位是什么意思呢?它就象是我們上課之前打的預備鈴。預備鈴一響,大家就自動地從操場、其它地方進入教室了,在這一段時間里,是沒有老師干預的,對單片機來說,是程序還沒有開始執行,是在做準備工作。顯然,準備工作不需要太長的時間,復位只需要5ms的時間就能了。如何進行復位呢?只要在單片機的RST管腳上加上高電平,就能了,按上面所說,時間不少于5ms。為了達到這個要求,能用很多種辦法,這里供給一種供參考,見圖1。實際上,我們在上一次實驗的圖中已見到過了。
  這種復位電路的工作原理是:通電時,電容兩端相當于是短路,于是RST管腳上為高電平,然后電源通過電阻對電容充電,RST端電壓慢慢下降,降到一定程序,即為低電平,單片機開始正常工作。

下一課:6課:單片機并行口結構

評分

參與人數 6黑幣 +33 收起 理由
zbfdyw + 8 簡單明了,初步學習好資料!感謝admin,感.
水木易安 + 5 贊一個!
yida1698 + 5 贊一個!
路神 + 5 很給力!
么么小輝 + 5 很給力!
chen_zhouge + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂11 踩
回復

使用道具 舉報

沙發
ID:49404 發表于 2013-5-25 21:46 | 只看該作者

回帖獎勵 +2

延時怎么不計算跟精確一點?更精確是125751us
回復

使用道具 舉報

板凳
ID:53820 發表于 2013-8-31 09:25 | 只看該作者
謝謝分享!!!!!
回復

使用道具 舉報

地板
ID:46675 發表于 2013-11-20 16:33 | 只看該作者
謝謝分享
回復

使用道具 舉報

5#
ID:58052 發表于 2013-12-19 22:54 | 只看該作者
不錯!很好
回復

使用道具 舉報

6#
ID:58513 發表于 2014-1-3 19:58 | 只看該作者
很詳細,很全面,有匯編,有C語言,但有點轉不過來(原因 要學匯編,要學C 語言)
回復

使用道具 舉報

7#
ID:56867 發表于 2014-3-6 19:43 | 只看該作者
對我的論文寫作很有幫助。
回復

使用道具 舉報

8#
ID:59837 發表于 2014-3-20 17:16 | 只看該作者
我們設所用晶體震蕩器為12M,則一個機器周期就是1微秒      這個·怎么算??
回復

使用道具 舉報

9#
ID:59853 發表于 2014-3-20 21:26 | 只看該作者
厲害厲害
回復

使用道具 舉報

10#
ID:59987 發表于 2014-4-5 12:46 | 只看該作者
菜菜鳥愛單片機 發表于 2014-3-20 17:16
我們設所用晶體震蕩器為12M,則一個機器周期就是1微秒      這個·怎么算??

12MHZ的晶體振蕩器  意味著這個晶體振蕩器1秒鐘震蕩12000000次,也就是12000000個(高一下低一下),也就是脈沖。震蕩1次消耗的時間(也就是時鐘周期,其實就是換了個名稱)是
(1秒)/12000000=0.0000000833333333(秒),
一個機器周期=12個時鐘周期(規定的)
一個機器周期=12*0.000000083333333(秒)=0.000001(秒)=1(微秒)。
實際上計算不是這么復雜的。
樓主說 6MHZ的晶振的機器周期是多少?
我是這么計算的
12*(1/6)       =   2us.
         M 的倒數  = us 微
其實 單位量綱中的 兆(M)和 微(us)互為倒數的原因。
我說的不好的地方,希望大家批評指正。
回復

使用道具 舉報

11#
ID:59987 發表于 2014-4-5 13:53 | 只看該作者
復位電路不是很清楚
回復

使用道具 舉報

12#
ID:60228 發表于 2014-4-18 11:47 | 只看該作者
單片機上電是直流5v電壓,電容不是隔直通交嗎?為什么一上電電容就短路了?當電容充完電之后不用放電嗎?復位電路還是有點不懂,希望樓主能給點建議,謝謝。
回復

使用道具 舉報

13#
ID:64206 發表于 2014-7-22 10:27 | 只看該作者
感謝樓主
回復

使用道具 舉報

14#
ID:64543 發表于 2014-7-29 20:15 | 只看該作者
謝謝分享!!!!!
回復

使用道具 舉報

15#
ID:64634 發表于 2014-8-6 23:49 | 只看該作者
不太懂
回復

使用道具 舉報

16#
ID:64634 發表于 2014-8-7 12:48 | 只看該作者
不太懂
回復

使用道具 舉報

17#
ID:69838 發表于 2014-12-3 20:14 | 只看該作者
lixichunedu 發表于 2014-4-5 12:46
12MHZ的晶體振蕩器  意味著這個晶體振蕩器1秒鐘震蕩12000000次,也就是12000000個(高一下低一下),也就 ...

你這么一解釋,我就明白了
回復

使用道具 舉報

18#
ID:70004 發表于 2014-12-5 21:17 | 只看該作者
大師的深入淺出的講解
回復

使用道具 舉報

19#
ID:70249 發表于 2014-12-10 16:04 | 只看該作者
ivmmcu 發表于 2014-4-18 11:47
單片機上電是直流5v電壓,電容不是隔直通交嗎?為什么一上電電容就短路了?當電容充完電之后不用放電嗎?復 ...

學過電路原理大家就知道,圖示電容的兩端電壓是逐漸從0V慢慢增長到穩定狀態時的電壓5V的,而不是直接躍變到5v。也就是說RST引腳的電壓是從5V逐漸降到0v的。假設單片機認為大于3V為高電平,也就是只要使RST引腳從5V降到3V的時間大于兩個機器周期的話,單片機就復位。右邊的圖同理。因為這個時間與電阻、電容大小有關,所以復位電路中電阻值、電容值要精心選擇。
回復

使用道具 舉報

20#
ID:70294 發表于 2014-12-12 13:24 | 只看該作者
Soar_C 發表于 2014-12-10 16:04
學過電路原理大家就知道,圖示電容的兩端電壓是逐漸從0V慢慢增長到穩定狀態時的電壓5V的,而不是直接躍變 ...

還是不明白,RST引腳上的5V電壓是哪里來的?
回復

使用道具 舉報

21#
ID:67837 發表于 2014-12-16 21:08 | 只看該作者
努力學習中
回復

使用道具 舉報

22#
ID:70525 發表于 2014-12-18 20:01 | 只看該作者
初學者                 
回復

使用道具 舉報

23#
ID:70104 發表于 2014-12-20 12:28 | 只看該作者
學習了
回復

使用道具 舉報

24#
ID:71621 發表于 2015-1-16 22:07 來自手機 | 只看該作者
我覺得這個教程講解得深入淺出!贊一個!
回復

使用道具 舉報

25#
ID:71621 發表于 2015-1-16 22:07 來自手機 | 只看該作者
多好的教程,相見恨晚啊!
回復

使用道具 舉報

26#
ID:72479 發表于 2015-1-20 17:07 | 只看該作者
本帖最后由 我就要飛刀 于 2015-1-20 17:15 編輯

DELAY:   MOV R7,#250   ;(6)
D1:   MOV R6,#250      ;(7)
D2:   DJNZ R6,D2      ;(8)
DJNZ R7,D1            ;(9)   
RE
按老師提示,我把這段改了一下
DELAY: MOV R7,#250 ;(6)
D1: MOV R6,#0   ;(7)
D2: DJNZ R6,D2     ;(8)
       DJNZ R7,D1  ;(9)
  好象看起來變化不大
再改成這樣:
DELAY: MOV R7,#1 ;(6)
D1: MOV R6,#250  ;(7)
D2: DJNZ R6,D2     ;(8)
       DJNZ R7,D1

明顯閃爍慢了很多。


回復

使用道具 舉報

27#
ID:75710 發表于 2015-3-30 20:30 | 只看該作者
對于正在學單片機的我來說,幫助很大,謝謝分享~\(≧▽≦)/~。。
回復

使用道具 舉報

28#
ID:75791 發表于 2015-4-1 10:21 | 只看該作者
感謝分享!
回復

使用道具 舉報

29#
ID:77323 發表于 2015-4-18 10:38 | 只看該作者
我就要飛刀 發表于 2015-1-20 17:07
DELAY:   MOV R7,#250   ;(6)
D1:   MOV R6,#250      ;(7)
D2:   DJNZ R6,D2      ;(8)

滿了嗎?
回復

使用道具 舉報

30#
ID:77323 發表于 2015-4-18 10:38 | 只看該作者
真的很好,真心的
回復

使用道具 舉報

31#
ID:78174 發表于 2015-4-29 22:49 | 只看該作者
謝謝分享
回復

使用道具 舉報

32#
ID:78483 發表于 2015-5-5 16:57 | 只看該作者
ivmmcu 發表于 2014-4-18 11:47
單片機上電是直流5v電壓,電容不是隔直通交嗎?為什么一上電電容就短路了?當電容充完電之后不用放電嗎?復 ...

在直流電剛上電時,電容上是有電子移動產生電流的 ,當電容充電完成后相當斷路
回復

使用道具 舉報

33#
ID:82423 發表于 2015-6-8 19:11 | 只看該作者
時序邏輯電路是什么
回復

使用道具 舉報

34#
ID:82423 發表于 2015-6-8 19:11 | 只看該作者
看不懂啊怎么辦
回復

使用道具 舉報

35#
ID:84645 發表于 2015-7-4 11:28 | 只看該作者
看的我手癢癢的
回復

使用道具 舉報

36#
ID:86884 發表于 2015-7-28 08:26 | 只看該作者
贊,剛開始學習單片機借了好多書發現都云里霧里的,這個資料感覺棒極了,以前C語言雖然學了,但糊里糊涂的,現在和匯編語言放一塊感覺慢慢理解了,太棒了,謝謝樓主!!!!
回復

使用道具 舉報

37#
ID:87812 發表于 2015-8-7 13:44 | 只看該作者
ouyase 發表于 2014-12-12 13:24
**** 作者被禁止或刪除 內容自動屏蔽 ****

我個人覺得應該是 VCC
回復

使用道具 舉報

38#
ID:87812 發表于 2015-8-7 13:46 | 只看該作者
eject2015 發表于 2015-5-5 16:57
在直流電剛上電時,電容上是有電子移動產生電流的 ,當電容充電完成后相當斷路

只有在充滿電后才 斷開? 沒電的 時候 可以理解通路?
回復

使用道具 舉報

39#
ID:88716 發表于 2015-8-22 17:34 來自手機 | 只看該作者
菜菜鳥愛單片機 發表于 2014-3-20 17:16
**** 作者被禁止或刪除 內容自動屏蔽 ****

t=(1/12)×12=1

評分

參與人數 1威望 +5 黑幣 +5 收起 理由
美麗人生美 + 5 + 5

查看全部評分

回復

使用道具 舉報

40#
ID:89591 發表于 2015-10-8 12:00 | 只看該作者
silverdj 發表于 2015-8-7 13:46
只有在充滿電后才 斷開? 沒電的 時候 可以理解通路?

電容的特性可以理解為隔直通交,當直流電加在其兩端時,其兩端電壓會緩慢上升,直到等于輸入電壓,然后由于電容的儲能特性(相當于水缸存滿了水),假設現在電容兩端是上正下負,由于直流電方向不變,所以當其存滿電之后,電路中就沒有電流流動了(只能從上面加水).但交流電由于方向在不斷變化,相當于形成了通路(現在下面也有了口,可以放水了),所以說通交.
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 盗摄精品av一区二区三区 | 成人三级视频 | 日韩av第一页 | 成年人在线视频 | 久久伊人精品 | 国产精品久久久久久一区二区三区 | 精品二 | 久久精品视频网站 | 成人免费大片黄在线播放 | 日韩在线成人 | 秋霞av国产精品一区 | 中文字幕一区二区三区不卡 | 久久久成 | 久草网在线视频 | 网站黄色在线 | 日韩视频一区二区 | 一区二区三区视频在线观看 | 精品在线视频播放 | 狠狠干网站| 亚洲在线久久 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 欧美日韩亚洲一区 | 黄色一级免费看 | 羞羞视频在线观看 | 911精品国产 | 久久九| 精品久久一 | 91新视频 | 欧美另类视频 | 亚洲欧美日韩电影 | 久久免费高清视频 | 亚洲欧美在线观看 | 国产欧美一区二区在线观看 | 99re视频| 亚洲国产精品人人爽夜夜爽 | 日韩在线观看中文字幕 | 久久久天堂 | 污片在线观看 | 久久久久久久久综合 | 成人高清网站 | av永久|