新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MCS-51單片機(jī)時(shí)序

MCS-51單片機(jī)時(shí)序

作者: 時(shí)間:2013-01-24 來源:網(wǎng)絡(luò) 收藏

一、時(shí)序:是指單片機(jī)執(zhí)行指令時(shí)應(yīng)發(fā)出的的時(shí)間序列。這些在時(shí)間上的相互關(guān)系就是CPU的時(shí)序。它是一系列具有時(shí)間順序的脈沖信號。

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

擴(kuò)展閱讀:什么是單片機(jī)的時(shí)序

二、時(shí)鐘周期、機(jī)器周期和指令周期

1、 時(shí)鐘周期:又稱振蕩周期。指為單片機(jī)提供定時(shí)信號的振蕩源周期。是最小的時(shí)序單位。

振蕩源的頻率越高,單片機(jī)的工作速度越快。

時(shí)鐘周期被分成兩個(gè)節(jié)拍P1和P2。每個(gè)時(shí)鐘周期的前半周期P1信號有效,這時(shí)CPU通常完成算術(shù)邏輯操作;在每個(gè)時(shí)鐘的后半周期P2信號有效,內(nèi)部寄存器與寄存器之間的數(shù)據(jù)一般在此狀態(tài)發(fā)生。

2、 機(jī)器周期:定義為實(shí)現(xiàn)特定功能所需要的時(shí)間。機(jī)器周期按其功能來命名,如取指機(jī)器周期等。

MCS-51的機(jī)器周期時(shí)間是不變的,均為12個(gè)晶振周期或6個(gè)狀態(tài)周期。分為S1P1,SIP2;S2P1,S2P2;等

3、 指令周期:執(zhí)行一條指令的時(shí)間。

按指令執(zhí)行的時(shí)間可分為:單周期、雙周期和四周期(只有乘法和除法兩條指令)。

時(shí)鐘周期、機(jī)器周期和指令周期均是單位。機(jī)器周期是單片機(jī)計(jì)算其它時(shí)間值(如波特率、定時(shí)器的定時(shí)時(shí)間等)的基礎(chǔ)時(shí)序單位。

如MCS-51外接晶振為12MHz,則:

時(shí)鐘周期= = =0.167us;

機(jī)器周期= = =1us;

指令周期=(1~4) =(1~4) =1~4us.

例:若單片機(jī)時(shí)鐘頻率為12MHz,計(jì)算定時(shí)2ms所需要的定時(shí)器初值。(設(shè)定時(shí)器工作在方式1,即模為2.jpg)

分析:MCS-51有兩個(gè)8位的計(jì)數(shù)器,每過來一個(gè)機(jī)器周期,計(jì)數(shù)器加1。當(dāng)計(jì)數(shù)器從0FFFFH~0000H時(shí),定時(shí)器自動(dòng)產(chǎn)生溢出請求。故方式1的最大定時(shí)時(shí)間為Tmax=2.jpg×T0,其中T0為是一個(gè)機(jī)器周期的時(shí)間。由于時(shí)鐘周期的頻率為12MHz,這里的1.jpg。

Tmax=2.jpg×T0=65536×1us=65.536ms。

現(xiàn)在要產(chǎn)生2ms的定時(shí)時(shí)間,故必須在計(jì)數(shù)器中預(yù)先放置一定的初值x,使:

(216-x)T0=2ms。

解:1.jpg

(2.jpg-x)T0=2ms=2×10-3s

X=2.jpg- =216-2×103=63536=F830H。

注:

十進(jìn)制數(shù)與二進(jìn)制數(shù)、十六進(jìn)制數(shù)快速轉(zhuǎn)換方法

1、 若十進(jìn)制數(shù)小于256,則用這個(gè)數(shù)除16,得到商和余數(shù)。若把這個(gè)十進(jìn)制的商寫成二進(jìn)制形式,則就是二進(jìn)制的高4位。把這個(gè)十進(jìn)制的余數(shù)寫成二進(jìn)制的形式,則就是二進(jìn)制的低4位。合在一起就是轉(zhuǎn)換的8位二進(jìn)制數(shù)。同樣,若把這個(gè)十進(jìn)制的商寫成十六進(jìn)制的形式,則就是二進(jìn)制的高4位的十六進(jìn)制表示,把這個(gè)十進(jìn)制的余數(shù)寫成十六進(jìn)制的形式,則就是二進(jìn)制的低4位的十六進(jìn)制表示,合在一起就是轉(zhuǎn)換成的十六進(jìn)制表示。

2、 若十進(jìn)制數(shù)大于256小于65536,則用這個(gè)數(shù)除256,得到商和余數(shù),再分別用商和余數(shù)除16。商除16后,又得到商和余數(shù),這個(gè)商和余數(shù)是十進(jìn)制形式,寫成十六進(jìn)制就是高8位的高4位和高8位的低4位的十六進(jìn)制形式。余數(shù)除16也得到商和余數(shù),這個(gè)商和余數(shù)也是十進(jìn)制,寫成十六進(jìn)制,就是低8位的高4位和低8位的低4位的十六進(jìn)制形式。

例:求出下列十進(jìn)制數(shù)的二進(jìn)制和十六進(jìn)制。

(1)212; (2)65365

解:(1)

212/16=13……4

若把13寫成十六進(jìn)制,為D,4寫成十六進(jìn)制,為4,則轉(zhuǎn)換成十六進(jìn)制為:

212=D4(H)

若把13寫成二進(jìn)制,為1101,4寫成二進(jìn)制,為0100,則轉(zhuǎn)換成二進(jìn)制為:

212=11010100(B)。

(2)

65365/256=255……85

(這個(gè)商除16就是高8位,這個(gè)余數(shù)除16就是低8位)

255/16=15……15

(這個(gè)商就是高8位的高4位,余數(shù)就是高8位的低4位)

把商15寫成十六進(jìn)制為F,把余數(shù)15寫成十六進(jìn)制為F,故高8位的十六進(jìn)制為:FFH;

85/16=5……5

(這個(gè)商就是低8位的高4位,余數(shù)就是低8位的低4位)

把商5寫成十六進(jìn)制為5,把余數(shù)5寫成十六進(jìn)制為5,故低8位的十六進(jìn)制為:55F。

高8位和低8位合在一起即為這個(gè)十進(jìn)制數(shù)的十六進(jìn)制形式:

65365=FF55(H)。

化為二進(jìn)制為:65365=FF55(H)=11111111010101010(B)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉