《電子技術(shù)應用》
您所在的位置:首頁 > 模擬設(shè)計 > 其他 > 入門:淺談單片機時鐘電路的三種方式

入門:淺談單片機時鐘電路的三種方式

2023-01-04
來源:STM32嵌入式開發(fā)
關(guān)鍵詞: 時鐘電路 單片機

  單片機是通過什么樣的辦法進行取指令,執(zhí)行指令和其它操作的呢? 在這里引入了一個時序的概念。

  時鐘電路

  單片機時鐘電路有三種方式:

  1、單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端,XTAL1和XTAL2需外接上晶體和合適的電容。

  2、有的單片機內(nèi)部也自帶時鐘電路,用于產(chǎn)生時鐘信號。

  3、單片機管腳XTAL2直接接晶振。

  周期1 時鐘周期

  時鐘電路產(chǎn)生時鐘信號的周期我們叫時鐘周期(振蕩周期)。 單片機通電后就產(chǎn)生了固定標稱值的脈沖信號,單片機就是在脈沖信號的驅(qū)動下順序地從ROM中(程序存儲器)取出指令一條一條的順序執(zhí)行,然后進行一系列的微操作控制,來完成各種指定的動作。

  2 機器周期

  單片機每訪問一次存儲器的時間我們把它稱為一個機器周期,它是一個時間基準就象我們?nèi)粘I钪惺褂玫拿胍粯?。單片機中一個機器周期包括12個振蕩周期。振蕩周期就是振蕩源的周期也就是我們使用的晶振的時間周期。一個12M的晶振它的時間周期是1/12微秒,那么使用12M晶振的單片機它的一個機器周期就應該等于12*1/12微秒,也就是1微秒。

  3 指令周期

  單片機中有些指令只要一個機器周期而有些指令則需要兩個或三個機器周期另外還有兩條指令需要4個機器周期。如何衡量指令執(zhí)行時間的長短我們就要用到一個新的概念:指令周期,即執(zhí)行一條指令所需的機器周期。

  時序

  對于芯片開發(fā)使用來說,時序圖是較為核心也較為重要的一個知識點。在廠家給出的芯片數(shù)據(jù)手冊中,時序圖也是非常重要的參數(shù)細節(jié)。開發(fā)者拿到一款芯片時,首先需要做的就是閱讀其數(shù)據(jù)手冊,對上面的內(nèi)容進行提取和掌握。因此能夠順利的閱讀并了解到單片機時序圖想要傳達的意思是非常關(guān)鍵的。 單片機時序是指單片機執(zhí)行指令時應發(fā)出的控制信號的時間序列。這些控制信號在時間上的相互關(guān)系就是CPU的時序。它是一系列具有時間順序的脈沖信號。

  CPU發(fā)出的時序有兩類:一類用于片內(nèi)各功能部件的控制,它們是芯片設(shè)計師關(guān)注的問題,對用戶沒有什么意義。另一類用于片外存儲器或I/O端口的控制,需要通過器件的控制引腳送到片外,這部分時序?qū)Ψ治鲇布娐返脑碇陵P(guān)重要,也是軟件編程遵循的原則,需要認真掌握。

  CPU發(fā)出的時序有兩類:一類用于片內(nèi)各功能部件的控制,它們是芯片設(shè)計師關(guān)注的問題,對用戶沒有什么意義。另一類用于單片機外部芯片的控制,這部分時序?qū)Ψ治鲇布娐返脑碇陵P(guān)重要,也是軟件編程遵循的原則。 操作時序永遠使用是任何一片IC芯片的最主要的內(nèi)容。一個芯片的所有使用細節(jié)都會在它的官方器件手冊上包含。所以使用一個器件事情,要充分做好的第一件事就是要把它的器件手冊上有用的內(nèi)容提取,掌握其工作時序。 在這里我們以液晶1602為例,分析其操作時序。其基本時序有讀狀態(tài),寫指令,讀數(shù)據(jù)和寫數(shù)據(jù)。 為了方便大家理解,這里以1602為例進行講解,1602的引腳是很整齊的SIP單列直插封裝,所以器件手冊只給出了引腳的功能數(shù)據(jù)表:

32.JPG

  這里,我們需要關(guān)注1602的幾個管腳,分別是RS,RW,E,D0.。。D7。由上面的說明我們可以知道: RS:數(shù)據(jù)/命令(狀態(tài))選擇端,當此腳為高電平時,可以對1602進行數(shù)據(jù)字節(jié)的傳輸操作,而此腳為低電平時,進行命令(狀態(tài))字節(jié)的傳輸操作。 RW:讀寫選擇端,當此腳為高電平可對LCD1602進行讀數(shù)據(jù)操作,反之進行寫數(shù)據(jù)操作。 E:使能信號,其實是LCD1602的數(shù)據(jù)控制時鐘信號,利用該信號的上升沿實現(xiàn)對LCD1602的數(shù)據(jù)傳輸。 D0.。。D7:8位并行數(shù)據(jù)口。 在此,我們分析兩個寫時序:寫命令和寫數(shù)據(jù)。

  1、當我們要寫指令字,設(shè)置LCD1602的工作方式時:需要把RS置為低電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個高脈沖將數(shù)據(jù)寫入。

31.JPG

  2、當我們要寫入數(shù)據(jù)字,在1602上實現(xiàn)顯示時:需要把RS置為高電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個高脈沖將數(shù)據(jù)寫入。

30.JPG

  開發(fā)者只需要關(guān)注以下幾個管腳: 3腳:VL,液晶顯示偏壓信號,用于調(diào)整LCD1602的顯示對比度,一般會外接電位器用以調(diào)整偏壓信號,注意此腳電壓為0時可以得到最強的對比度。 4腳:RS,數(shù)據(jù)/命令選擇端,當此腳為高電平時,可以對1602進行數(shù)據(jù)字節(jié)的傳輸操作,而此腳為低電平時,則是進行命令字節(jié)的傳輸操作。命令字節(jié),即是用來對LCD1602的一些工作方式作設(shè)置的字節(jié);數(shù)據(jù)字節(jié),即使用以在1602上顯示的字節(jié)。值得一提的是,LCD1602的數(shù)據(jù)是8位的。 5腳:R/W,讀寫選擇端。當此腳為高電平可對LCD1602進行讀數(shù)據(jù)操作,反之進行寫數(shù)據(jù)操作。筆者認為,此腳其實用處不大,直接接地永久置為低電平也不會影響其正常工作。但是尚未經(jīng)過復雜系統(tǒng)驗證,保留此意見。 6腳:E,使能信號,其實是LCD1602的數(shù)據(jù)控制時鐘信號,利用該信號的上升沿實現(xiàn)對LCD1602的數(shù)據(jù)傳輸。 7~14腳:8位并行數(shù)據(jù)口,使得對LCD1602的數(shù)據(jù)讀寫大為方便。

  LCD1602的操作時序

29.JPG

  在此,可以先不讀出它的數(shù)據(jù)的狀態(tài)或者數(shù)據(jù)本身,所以只需要看兩個寫時序: ①當要寫指令字,設(shè)置LCD1602的工作方式時:需要把RS置為低電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個高脈沖將數(shù)據(jù)寫入。 ②當要寫入數(shù)據(jù)字,在1602上實現(xiàn)顯示時:需要把RS置為高電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個高脈沖將數(shù)據(jù)寫入。 實際上寫指令和寫數(shù)據(jù),差別僅僅在于RS的電平不一樣而已。以下是LCD1602的時序圖:

28.JPG

  只要慢慢學會看時序圖,要知道操作一個器件的精華便蘊藏在其中,看懂看準了時序,再操控這個芯片就是非常容易的事了。這里使用1602作為例子主要是因為1602的時序是目前最簡單的時序之一。 看時序圖需要注意的問題:

  1、注意時間軸,從左往右的方向為時間正向軸,即時間在增長。

  2、時序圖最左邊一般是某一根引腳的標識,表示此行圖線體現(xiàn)該引腳的變化,上圖分別標明了RS、R/W、E、DB0~DB7四類引腳的時序變化。

  3、有線交叉狀的部分,表示電平在變化。

  4、兩條平行線分別對應高低電平,如上圖右上角所示。

  5、密封的菱形部分,表示數(shù)據(jù)有效,Valid Data這個詞也顯示了這點。

  6、時序圖里各個引腳的電平變化,基于的時間軸是一致的。一定要嚴格按照時間軸的增長方向來精確地觀察時序圖。要讓器件嚴格的遵守時序圖的變化。

  7、時間的標注,也是個十分重要的信息,這些時間的標注表明了某些狀態(tài)所要維持的最短或最長時間。因為器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它們直接之間要有時序配合。下面是時序參數(shù)表: 需要十分嚴重注意的是,時序圖里各個引腳的電平變化,基于的時間軸是一致的,一定要嚴格按照時間軸的增長方向來精確地觀察時序圖,要讓器件嚴格的遵守時序圖的變化,在類似于18B20這樣的單總線器件對此要求尤為嚴格。

  時間標注: 細心的朋友或許注意到了文中關(guān)于時間的標注,這也是個十分重要的信息,這些時間的標注表明了某些狀態(tài)所要維持的最短或最長時間。因為器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它們直接之間要有時序配合。下面是時序參數(shù)表: 開發(fā)者要注意估計主控芯片的指令時間,可以在官方數(shù)據(jù)手冊上查到MCU的一些級別參數(shù)。比如現(xiàn)在用AVRM16做為主控芯片,外部12MHz晶振,(1/12MHz)s是振蕩周期,而不是時鐘周期,因為時鐘周期(狀態(tài)周期)等于兩個振蕩周期,換句話說就是對振動頻率進行“二分頻”的振蕩信號,所以(2/12MHz)s才是晶振為12MHz時的時鐘周期。

  以上給的時間參數(shù)全部是ns級別的,所以即便在程序里不加延時程序,也應該可以很好的配合LCD1602的時序要求了。怎么看這個表呢?很簡單,在時序圖里可以找到TR1,對應時序參數(shù)表,可以查到這個是E上升沿/下降沿時間,最大值為25ns,表示E引腳上的電平變化,必須在最大為25ns之內(nèi)的時間完成。

  以上介紹的這些內(nèi)容,雖然是以LCD1602為例,但這僅僅是為了幫助大家進行理解,其中提到的參數(shù)是大部分單片機都會有的,因此大家可以通過本文中給予的解讀方式來套用到其他單片機當中,大部分的單片機時序圖都會遵循文中給出的規(guī)則,當大家漸漸掌握其中的內(nèi)容后,就可以發(fā)現(xiàn)其實看懂單片機的時序圖其實并不難。 現(xiàn)在我來解讀我對這個時序圖的理解: 當要寫命令字節(jié)的時候,時間由左往右,RS變?yōu)榈碗娖?,R/W變?yōu)榈碗娖?,注意看是RS的狀態(tài)先變化完成。然后這時,DB0~DB7上數(shù)據(jù)進入有效階段,接著E引腳有一個整脈沖的跳變,接著要維持時間最小值為tpw=400ns的E脈沖寬度。然后E引腳負跳變,RS電平變化,R/W電平變化。這樣便是一個完整的LCD1602寫命令的時序。



更多信息可以來這里獲取==>>電子技術(shù)應用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。