單片機關鍵技術基礎詳解(四)
四、單片機中晶振的作用
單片機工作時,是一條一條地從RoM中取指令,然后一步一步地執(zhí)行。單片機訪問一次存儲器的時間,稱之為一個機器周期,這是一個時間基準。—個機器周期包括12個時鐘周期。如果一個單片機選擇了12MHz晶振,它的時鐘周期是1/12us,它的一個機器周期是12×(1/12)us,也就是1us。
MCS—51單片機的所有指令中,有一些完成得比較快,只要一個機器周期就行了,有一些完成得比較饅,得要2個機器周期,還有兩條指令要4個機器周期才行。為了衡量指令執(zhí)行時間的長短,又引入一個新的概念:指令周期。所謂指令周期就是指執(zhí)行一條指令的時間。例如,當需要計算DJNZ指令完成所需要的時間時,首先必須要知道晶振的頻率,設所用晶振為12MHz,則一個機器周期就是1us。而DJNZ指令是雙周期指令,所以執(zhí)行一次要2us。如果該指令需要執(zhí)行500次,正好1000us,也就是1ms。
機器周期不僅對于指令執(zhí)打有著重要的意義,而且機器周期也是單片機定時器和計數(shù)器的時間基準。例如一個單片機選擇了12MHz晶振,那么當定時器的數(shù)值加1時,實際經(jīng)過的時間就是1us,這就是單片機的定時原理。
簡單地說,沒有晶振,就沒有時鐘周期,沒有時鐘周期,就無法執(zhí)行程序代碼,單片機就無法工作。
五、格雷碼轉(zhuǎn)二進制方法
二進位碼第n位 = 二進位碼第(n+1)位+格雷碼第n位。因為二進位碼和格雷碼皆有相同位數(shù),所以二進位碼可從最高位的左邊位元取0,以進行計算。(注:遇到1+1時結(jié)果視為0)
例如: 格雷碼0111,為4位數(shù),所以其所轉(zhuǎn)為之二進位碼也必為4位數(shù),因此可取轉(zhuǎ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)換為之二進位碼為0101
格雷碼轉(zhuǎn)換快速方法
(假設以二進制為0的值做為格雷碼的0)
G:格雷碼 B:二進位碼
評論