51微控制器學習筆記(2)

2021-10-03 16:07:34 字數 3236 閱讀 8352

1.時鐘電路

電容c1和c2對振盪頻率起穩定微調作用。c1、c2必須相等,一般取30pf左右

2.時序與工作週期

8051 mcu內部具有時鐘電路,在引腳xtal1、xtal2外接晶體振盪器、電容,為時鐘電路提供振盪源,就會產生mcu工作所需要的時鐘訊號。

時鐘頻率=外接晶振頻率
mcu的時鐘電路產生基準的時鐘訊號,還有如下幾個工作週期:

時鐘週期

狀態週期

機器週期

指令週期

時鐘週期t0

也稱為振盪週期,是晶振頻率的倒數;是mcu中最基本、最小的時間單位。若振盪源頻率為f ,則時鐘週期為t0=1/ f ;

1個時鐘週期定義為乙個節拍p。

若晶振頻率f為6mhz,則時鐘週期為1/ f即1/6us;若晶振頻率為f為12mhz,則時鐘週期為1/ f即1/12us。

狀態週期s

是時鐘週期的兩倍s =2t0=2/ f ,即由連續的2個節拍p1和p2組成。

機器週期tm

cpu執行乙個基本操作所需要的時間。1個機器週期由6個狀態週期(s1-s6)即12個時鐘週期組成。

指令週期

執行一條指令所需要的時間。

通常每條指令的執行可劃分為1-4個基本操作,完成乙個基本操作需要1個機器週期tm。所以指令週期有1-4個機器週期組成。

特殊功能暫存器sfr(special  function register),也稱專用暫存器。

sfr主要用於內部硬體功能模組(如定時器/計數器、序列口、中斷系統等)的管理和控制,用來存放功能模組的控制命令、狀態或資料。

1.程式計數器pc(特殊)

也稱為程式指標,具有如下特點:

pc是乙個16位的專用暫存器,作為程式指標則其定址範圍為0~64kb。

pc不屬於特殊功能暫存器。因此不占用sfr位址空間,是不可定址的,在程式中不能直接訪問。

pc可以通過ljmp、sjmp等轉移指令來間接修改pc的值,也可通過變址定址方式訪問,例如:movc a,@a+pc。

2.累加器a

累加器a(或acc)是cpu中使用最頻繁8位專用暫存器。

3.b暫存器

在其它情況下,b暫存器可以作為內部ram中的乙個單元來使用。

3.程式狀態字psw。

其各位位址如上圖所示

對於c、ac、ov、p,根據指令執行結果,由硬體置位或清除,稱為狀態位。對於rs1、rs0、 f1、f0,根據使用需要,用指令設定,稱為控制位。

rs1、rs0為工作暫存器組選擇位, f1、f0由使用者自定義。

c(cy):進製標誌。在加、減法運算時,若高位(d7)發生進製或借位則被置1(即c=1),否則被清0(c=0);

ac:輔助進製標誌。在加、減法運算時,若低4位向高4位發生進製或借位則ac=1,否則ac=0;ac標誌在十進位制調整指令da a中要用到。

f0、f1:軟體標誌。由軟體置位或復位,由使用者定義使用;

rs1、rs0:工作暫存器組選擇位。由軟體置位或復位,用來選擇4組工作暫存器中的一組;

ov: 溢位標誌 。一般用於加減語句中,當兩個數相加時第6以及第7位發生借位或者進製時,取這兩位的進製情況的異或結果。

p:奇偶校驗。用於標誌語句中的資料中1的奇偶個數。

4.堆疊指標sp

1.堆疊指標簡介

堆疊指標sp(stack pointer):位址81h,是存放當前堆疊棧頂位址的乙個8位暫存器。8051 mcu的堆疊是向上生成的:進棧時棧頂向高位址生長,sp的內容增加;出棧時棧頂向下回落,sp的內容減少。所以sp總是指向堆疊的棧頂。

堆疊的設定:8051微控制器復位後,堆疊指標sp的內容為07h,即預設堆疊區為08h開始向上的儲存區。

因為08h-1fh單元為工作暫存器區,20h-2fh為位定址區。通常是通過對sp賦值重新設定堆疊區域,將堆疊區設定到使用者ram區。

2.堆疊的方式

2.1指令方式:使用堆疊操作指令進行資料的「進棧」和「出棧」,實現一些資料的暫存,以及對現場的保護和恢復。

堆疊操作指令:

進棧指令:push direct ( direct 範圍: 00h-ffh)

出棧指令:pop direct

5.資料指標dptr

資料指標dptr,是乙個16位的sfr。主要功能是作為外部ram的位址指標。

6.埠0-3及其它sfr

對於埠即引腳的操作實際上是對這些暫存器的操作,其埠引腳與埠暫存器的位具有對映關係。

其它sfr:sbuf、t0、t1、ip、ie、tmod、tcon、scon、pcon等。

微控制器復位後,除sp為07h,p0~p3為ffh外,其餘均為0。
1.指令格式:操作碼 運算元,按指令長度又可分為單位元組指令,雙位元組指令,三位元組指令。

組合語言基本格式

2.不同定址方式

2.2暫存器定址:以暫存器裡的內容作為運算元

例如 mov a,r0就是將暫存器r0裡的內容作為運算元的。

2.4暫存器間接定址:運算元為存在該位址裡的內容所表示的位址裡

例如 mov a,@r0,在本句中,r0為乙個位址,假設它內部裝的數為32h,那麼32h這個位址裡裝的數才是本句的運算元。

2.5變址定址:以某個暫存器的基本位址加上偏移量作為位址(51微控制器裡沒有專用的變址定址暫存器,採用dptr,pc指標的值作為基本位址,將累加器a作為偏移量)

例如mov a,@a+pc,就是將a裡的內容作為偏移位址,pc裡的內容作為基本位址,加在一起後,把這個數作為位址,取裡面的資料作為運算元。

2.6相對定址,以pc作為基本位址,加上偏移量rel形成有效的轉移位址

51微控制器學習筆記(1) 初識微控制器

微控制器是一種整合在電路晶元,是採用超大規模積體電路技術把具有資料處理能力的 處理器cpu 隨機儲存器ram 唯讀儲存器rom 多種i o口和中斷系統 定時器 計數器等功能 可能還包括顯示驅動電路 脈寬調變電路 模擬多路轉換器 a d轉換器等電路 整合到一塊矽片上構成的乙個小而完善的計算機系統。微控...

51微控制器學習之路(2)

指令編碼格式及分類 一條指令表示計算機所完成的某種操作。它通常由操作碼和運算元兩部分組成。例如 mov a,r1 本系統有下列三種指令編碼格式 1 單位元組指令 49條 2 雙位元組指令 46條 3 三位元組指令 16條 例如 一位元組指令空操作nop的編碼格式為 兩位元組指令mov a,40h的編...

51微控制器(2) 微控制器是什麼

1.什麼是ic?ic integrated circuit 積體電路,就是用微器件為積木,去搭建乙個具備一定功能的電路板。以前沒有微器件的時候,需要用很大的電路板才能實現乙個功能,微器件可以小到mm甚至nm級別,把這些電路做在一起,用塑料外殼封裝起來就形成了ic晶元,用的是半導體工藝。2.什麼是cp...