新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)關(guān)鍵技術(shù)基礎(chǔ)詳解(四)

單片機(jī)關(guān)鍵技術(shù)基礎(chǔ)詳解(四)

作者: 時(shí)間:2012-03-28 來源:網(wǎng)絡(luò) 收藏
P: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  說明:從結(jié)果上看INC A和ADD A,#1差不多,但I(xiàn)NC A是單字節(jié),單周期指令,而ADD #1則是雙字節(jié),雙周期指令,而且INC A不會(huì)影響PSW位,如(A)=0FFH,INC A后(A)=00H,而CY依然保持不變。如果是ADD A ,#1,則(A)=00H,而CY一定是1。因此加1指令并不適合做加法,事實(shí)上它主要是用來做計(jì)數(shù)、地址增加等用途。另外,加法類指令都是以A為核心的

四、中晶振的作用

  工作時(shí),是一條一條地從RoM中取指令,然后一步一步地執(zhí)行。訪問一次存儲(chǔ)器的時(shí)間,稱之為一個(gè)機(jī)器周期,這是一個(gè)時(shí)間基準(zhǔn)?!獋€(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期。如果一個(gè)單片機(jī)選擇了12MHz晶振,它的時(shí)鐘周期是1/12us,它的一個(gè)機(jī)器周期是12×(1/12)us,也就是1us。

  MCS—51單片機(jī)的所有指令中,有一些完成得比較快,只要一個(gè)機(jī)器周期就行了,有一些完成得比較饅,得要2個(gè)機(jī)器周期,還有兩條指令要4個(gè)機(jī)器周期才行。為了衡量指令執(zhí)行時(shí)間的長短,又引入一個(gè)新的概念:指令周期。所謂指令周期就是指執(zhí)行一條指令的時(shí)間。例如,當(dāng)需要計(jì)算DJNZ指令完成所需要的時(shí)間時(shí),首先必須要知道晶振的頻率,設(shè)所用晶振為12MHz,則一個(gè)機(jī)器周期就是1us。而DJNZ指令是雙周期指令,所以執(zhí)行一次要2us。如果該指令需要執(zhí)行500次,正好1000us,也就是1ms。

  機(jī)器周期不僅對于指令執(zhí)打有著重要的意義,而且機(jī)器周期也是單片機(jī)定時(shí)器和計(jì)數(shù)器的時(shí)間基準(zhǔn)。例如一個(gè)單片機(jī)選擇了12MHz晶振,那么當(dāng)定時(shí)器的數(shù)值加1時(shí),實(shí)際經(jīng)過的時(shí)間就是1us,這就是單片機(jī)的定時(shí)原理。

  簡單地說,沒有晶振,就沒有時(shí)鐘周期,沒有時(shí)鐘周期,就無法執(zhí)行程序代碼,單片機(jī)就無法工作。

  五、格雷碼轉(zhuǎn)二進(jìn)制方法

  二進(jìn)位碼第n位 = 二進(jìn)位碼第(n+1)位+格雷碼第n位。因?yàn)槎M(jìn)位碼和格雷碼皆有相同位數(shù),所以二進(jìn)位碼可從最高位的左邊位元取0,以進(jìn)行計(jì)算。(注:遇到1+1時(shí)結(jié)果視為0)

  例如: 格雷碼0111,為4位數(shù),所以其所轉(zhuǎn)為之二進(jìn)位碼也必為4位數(shù),因此可取轉(zhuǎn)成之二進(jìn)位碼第五位為0,即0 b3 b2 b1 b0。

  0+0=0,所以b3=0

  0+1=1,所以b2=1

  1+1取0,所以b1=0

  0+1取1,所以b0=1

  因此所轉(zhuǎn)換為之二進(jìn)位碼為0101

  格雷碼轉(zhuǎn)換快速方法

  (假設(shè)以二進(jìn)制為0的值做為格雷碼的0)

  G:格雷碼 B:二進(jìn)位碼



關(guān)鍵詞: 單片機(jī) 關(guān)鍵技術(shù)

評論


相關(guān)推薦

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

關(guān)閉