日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]上一次課中,我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。DELAY: MOV R7,#250   ;(6)D1: MOV R6,#250    ;(7)D2: DJNZ R6,D2     

上一次課中,我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。

DELAY: MOV R7,#250   ;(6)

D1: MOV R6,#250    ;(7)

D2: DJNZ R6,D2     ;(8)

DJNZ R7,D1    ;(9)

RET         ;(10)

〈單片機延時程序〉

MOV:這是一條指令,意思是傳遞數(shù)據(jù)。說到傳遞,我們都很清楚,傳東西要從一本人的手上傳到另一本人的手上,也就是說要有一個接受者,一個傳遞者和一樣?xùn)|西。從指令MOV R7,#250中來分析,R7是一個接受者,250是被傳遞的數(shù),傳遞者在這條指令中被省略了(注意:并不是每一條傳遞指令都會省的,事實上大部份數(shù)據(jù)傳遞指令都會有傳遞者)。它的意義也很明顯:將數(shù)據(jù)250送到R7中去,因此執(zhí)行完這條指令后,R7單元中的值就應(yīng)當(dāng)是250。在250前面有個#號,這又是什么意思呢?這個#就是用來說明250就是一個被傳遞的東西本身,而不是傳遞者。那么MOV R6,#250是什么意思,應(yīng)當(dāng)不用分析了吧。

DJNZ:這是另一條指令,我們來看一下這條指令后面跟著的兩個東西,一個是R6,一個是D2,R6我們當(dāng)然已知是什么了,查一下D2是什么。D2在本行的前面,我們已學(xué)過,這稱之為標(biāo)號。標(biāo)號的用途是什么呢?就是給本行起一個名字。DJNZ指令的執(zhí)行過程是這樣的,它將其后面的第一個參數(shù)中的值減1,然后看一下,這個值是否等于0,如果等于0,就往下執(zhí)行,如果不等于0,就轉(zhuǎn)移,轉(zhuǎn)到什么地方去呢?可能大家已猜到了,轉(zhuǎn)到第二個參數(shù)所指定的地方去(請大家用自已的話講一下這條語句是怎樣執(zhí)行的)。本條指令的最終執(zhí)行結(jié)果就是,在原地轉(zhuǎn)圈250次。

執(zhí)行完了DJNZ R6,D2之后(也就是R6的值等于0之后),就會去執(zhí)行下面一行,也就是DJNZ R7,D1,請大家自行分析一下這句話執(zhí)行的結(jié)果。(轉(zhuǎn)去執(zhí)行MOV R6,#250,同時R7中的值減1),最終DJNZ R6,D2這句話將被執(zhí)行250*250=62500次,執(zhí)行這么多次同一條指令干嗎?就是為了延時。

一個問題:如果在R6中放入0,會有什么樣的結(jié)果。

二、時序分析:

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

先提一個問題:我們學(xué)校里什么是最重要的。(鈴聲)校長能出差,老師能休息,但學(xué)校一日無鈴聲必定大亂。整個學(xué)校就是在鈴聲的統(tǒng)一指揮下,步調(diào)一致,統(tǒng)一協(xié)調(diào)地工作著。這個鈴是按一定的時間安排來響的,我們能稱之為“時序��時間的次序”。一個由人組成的單位尚且要有一定的時序,計算機當(dāng)然更要有嚴(yán)格的時序。事實上,計算機更象一個大鐘,什么時候分針動,什么時候秒針動,什么時候時針動,都有嚴(yán)格的規(guī)定,一點也不能亂。計算機要完成的事更復(fù)雜,所以它的時序也更復(fù)雜。

我們已知,計算機工作時,是一條一條地從ROM中取指令,然后一步一步地執(zhí)行,我們規(guī)定:計算機訪問一次存儲器的時間,稱之為一個機器周期。這是一個時間基準(zhǔn),好象我們?nèi)擞?ldquo;秒”作為我們的時間基準(zhǔn)一樣,為什么不干脆用“秒”,多好,很習(xí)慣,學(xué)下去我們就會知道用“秒”反而不習(xí)慣。

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

MCS-51單片機的所有指令中,有一些完成得比較快,只要一個機器周期就行了,有一些完成得比較慢,得要2個機器周期,還有兩條指令要4個機器周期才行。這也不難再解,不是嗎?我讓你掃地的執(zhí)行要完成總得比要你完成擦黑板的指令時間要長。為了恒量指令執(zhí)行時間的長短,又引入一個新的概念:指令周期。所謂指令周期就是指執(zhí)行一條指令的時間。INTEL對每一條指令都給出了它的指令周期數(shù),這些數(shù)據(jù),大部份不需要我們?nèi)ビ洃?,但是有一些指令是需要記住的,如DJNZ指令是雙周期指令。

下面讓我們來計算剛才的延時。首先必須要知道晶體震蕩器的頻率,我們設(shè)所用晶體震蕩器為12M,則一個機器周期就是1微秒。而DJNZ指令是雙周期指令,所以執(zhí)行一次要2個微秒。一共執(zhí)行62500次,正好125000微秒,也就是125毫秒。

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

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

練習(xí):設(shè)計一個延時100毫秒的延時程序。

要點分析:1、一個單元中的數(shù)是否能超過255。2、如何分配兩個數(shù)。

三、復(fù)位電路

一、復(fù)位方式

⒈ 復(fù)位條件

RST引腳保持2個機器周期以上的高電平。

⒉ 復(fù)位電路

 

〈單片機復(fù)位電路〉

⒊ 復(fù)位后CPU狀態(tài)

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

任何單片機在工作之前都要有個復(fù)位的過程,復(fù)位是什么意思呢?它就象是我們上課之前打的預(yù)備鈴。預(yù)備鈴一響,大家就自動地從操場、其它地方進(jìn)入教室了,在這一段時間里,是沒有老師干預(yù)的,對單片機來說,是程序還沒有開始執(zhí)行,是在做準(zhǔn)備工作。顯然,準(zhǔn)備工作不需要太長的時間,復(fù)位只需要5ms的時間就能了。如何進(jìn)行復(fù)位呢?只要在單片機的RST管腳上加上高電平,就能了,按上面所說,時間不少于5ms。為了達(dá)到這個要求,能用很多種辦法,這里供給一種供參考,見圖1。實際上,我們在上一次實驗的圖中已見到過了。

這種復(fù)位電路的工作原理是:通電時,電容兩端相當(dāng)于是短路,于是RST管腳上為高電平,然后電源通過電阻對電容充電,RST端電壓慢慢下降,降到一定程序,即為低電平,單片機開始正常工作。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在單片機通信系統(tǒng)中,數(shù)據(jù)幀是實現(xiàn)設(shè)備間可靠對話的核心載體。不同于網(wǎng)絡(luò)通信中成熟的TCP/IP協(xié)議,單片機通信往往需要自定義數(shù)據(jù)幀格式,而幀頭、幀尾與校驗機制則是保障數(shù)據(jù)傳輸準(zhǔn)確性的三大關(guān)鍵。

關(guān)鍵字: 單片機 數(shù)據(jù)幀

隨著嵌入式技術(shù)的不斷發(fā)展,時序分析工具和方法也在不斷進(jìn)步,未來將朝著智能化、自動化的方向發(fā)展,為開發(fā)者提供更高效的調(diào)試手段。但無論技術(shù)如何發(fā)展,扎實的時序分析基礎(chǔ)都是嵌入式開發(fā)者不可或缺的能力,只有深入理解通信時序的本質(zhì)...

關(guān)鍵字: 時序 單片機

在嵌入式系統(tǒng)設(shè)計中,不同架構(gòu)、不同廠商的單片機協(xié)同工作早已成為常態(tài)。從8位的51系列到32位的STM32,從精簡指令集的PIC到復(fù)雜指令集的AVR,這些性能各異的單片機如何突破硬件差異實現(xiàn)數(shù)據(jù)交互,是嵌入式開發(fā)中的核心課...

關(guān)鍵字: 嵌入式 單片機

在嵌入式系統(tǒng)開發(fā)中,單片機的時鐘系統(tǒng)是整個系統(tǒng)的"心臟",所有的指令執(zhí)行、外設(shè)操作、定時器中斷都依賴于精準(zhǔn)的時鐘信號。但在實際開發(fā)過程中,很多開發(fā)者都會遇到單片機時鐘不準(zhǔn)的問題,表現(xiàn)為定時器計時偏差、UART通信波特率錯...

關(guān)鍵字: 控制系統(tǒng) 單片機

在單片機開發(fā)與調(diào)試過程中,復(fù)位電路作為保障芯片正常啟動的核心模塊,其穩(wěn)定性直接影響程序燒錄與系統(tǒng)運行。實際應(yīng)用中,不少開發(fā)者會遇到“接穩(wěn)壓電源可正常燒錄,接入電池后卻無法燒錄程序”的故障,此類問題多與復(fù)位電路設(shè)計、電池供...

關(guān)鍵字: 單片機 復(fù)位電路 時序匹配

在單片機的世界里,“字節(jié)”(Byte)是一個貫穿始終的核心概念。從存儲數(shù)據(jù)到執(zhí)行指令,從變量定義到外設(shè)通信,字節(jié)無處不在。很多初學(xué)者在學(xué)習(xí)單片機時,往往更關(guān)注復(fù)雜的程序邏輯和外設(shè)驅(qū)動,卻忽略了字節(jié)這個基礎(chǔ)知識點,導(dǎo)致在后...

關(guān)鍵字: 單片機 字節(jié)

在單片機的數(shù)字邏輯中,我們通常最關(guān)注的是高電平和低電平兩種狀態(tài),它們構(gòu)成了二進(jìn)制數(shù)字世界的基礎(chǔ)。然而,除了這兩種狀態(tài)之外,還有一種至關(guān)重要但常常被忽視的狀態(tài)——高阻態(tài)(High Impedance State)。高阻態(tài)就...

關(guān)鍵字: 單片機 高阻態(tài)

對于PIC入門者來說,不需要盲目追求高端開發(fā)板,一塊功能均衡、資料豐富的入門款就能滿足需求。比如Microchip官方推出的PIC16F84A開發(fā)板,它搭載經(jīng)典的8位PIC內(nèi)核,引腳布局清晰,自帶LED、按鍵等基礎(chǔ)外設(shè),...

關(guān)鍵字: PIC 單片機

該低功耗器件支持5V運行,在實現(xiàn)高性能的同時,能有效保障系統(tǒng)簡潔性與成本效益

關(guān)鍵字: MCU 單片機 工業(yè)自動化
關(guān)閉