亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

at指令

at指令是應用于終端設備與PC應用之間的連接與通信的指令。AT即Attention。每個AT命令行中只能包含一條at指令;對于at指令的發送,除AT兩個字符外,最多可以接收1056個字符的長度(包括最后的空字符)。
  • MCS-51單片機的指令時序

    時序是用定時單位來描述的,MCS-51的時序單位有四個,它們分別是節拍、狀態、機器周期和指令周期,接下來我們分別加以說明。

    標簽: MCS 51 單片機 指令

    上傳時間: 2013-11-11

    上傳用戶:362279997

  • 單片機指令系統原理

    單片機指令系統原理 51單片機的尋址方式 學習匯編程序設計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數的方法。在我們學習的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節的,一般第一個字節是操作碼,第二個字節是操作數。該操作數直接參與操作,所以又稱立即數,有“#”號表示。立即數就是存放在程序存儲器中的常數,換句話說就是操作數(立即數)是包含在指令字節中的。 例如:MOV  A,#3AH這條指令的指令代碼為74H、3AH,是雙字節指令,這條指令的功能是把立即數3AH送入累加器A中。MOV  DPTR,#8200H在前面學單片機的專用寄存器時,我們已學過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數的高8位(即82H)送入DPH寄存器,把立即數的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統中,僅有一條指令的操作數是16位的立即數,其功能是向地址指針DPTR傳送16位的地址,即把立即數的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數直接以單元地址的形式給出,也就是在這種尋址方式中,操作數項給出的是參加運算的操作數的地址,而不是操作數。例如:MOV  A,30H  這條指令中操作數就在30H單元中,也就是30H是操作數的地址,并非操作數。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內部數據存儲器以及位地址空間,具體的說就是:1、內部數據存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV  IE,#85H 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 關于數據存儲器RAM的內部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV  65H,A       ;將A的內容送入內部RAM的65H單元地址中MOV  A,direct    ;將直接地址單元的內容送入A中MOV  direct,direct;將直接地址單元的內容送直接地址單元MOV  IE,#85H      ;將立即數85H送入中斷允許寄存器IE 前面我們已學過,數據前面加了“#”的,表示后面的數是立即數(如#85H,就表示85H就是一個立即數),數據前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態設置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數在寄存器中,因此指定了寄存器名稱就能得到操作數。例如:MOV A,R0這條指令的意思是把寄存器R0的內容傳送到累加器A中,操作數就在R0中。INC R3這條指令的意思是把寄存器R3中的內容加1 從前面的學習中我產應可以理解到,其實寄存器尋址方式就是對由PSW程序狀態字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數的地址,即操作數是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內部或外部數據存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV  R0,#30H  ;將值30H加載到R0中    MOV  A,@R0    ;把內部RAM地址30H內的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H內的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數據存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV   DPTR,#1234H  ;將DPTR值設為1234H(16位)    MOVX  A,@DPTR      ;將外部RAM或I/O地址1234H內的值放到累加器A中 在執行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH  30H    ;把內部RAM地址30H內的值放到堆棧區中堆棧區是由SP寄存器指定的,如果執行上面這條命令前,SP為60H,命令執行后會把內部RAM地址30H內的值放到RAM的61H內。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結:1、內部RAM低128單元。對內部RAM低128單元的間接尋址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區,除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX  A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內容送入累加器A。 堆棧操作指令(PUSH和POP)也應算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區別寄存器尋址我寄存器間接尋址的區別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內容相加,所得到的結果作為操作數的地址。這種方式常用于訪問程序存儲器ROM中的數據表格,即查表操作。變址尋址只能讀出程序內存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC  A,@A+DPTR這條指令的功能是把DPTR和A的內容相加,再把所得到的程序存儲器地址單元的內容送A假若指令執行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數地址就是54H+3F21H=3F75H。如果3F75H單元中的內容是7FH,則執行這條指令后,累加器A中的內容就是7FH。 變址尋址的指令只有三條,分別如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉移指令,這條指令的意思就是DPTR加上累加器A的內容做為一個16位的地址,執行JMP這條指令是,程序就轉移到A+DPTR指定的地址去執行。 第二、三條指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數據指針寄存器,按理,它們的尋址范圍都應是64K。我們在學習特殊功能寄存器時已知道,程序計數器PC是始終跟蹤著程序的執行的。也就是說,PC的值是隨程序的執行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數據指針,我們就可以給空上數據指針DPTR進行賦值。我們再看指令MOVC   A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應可明白,MOVC   A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應用中,可能就會有一個問題,如果我們需要查詢的數據表在256個地址單元之內,則可以用MOVC   A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數據指針,這個數據指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC   A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數據位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內部RAM或可位尋址的特殊功能寄存器SFR內的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結構時,我們已知道在單片機的內部數據存儲器RAM的低128單元中有一個區域叫位尋址區。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(或者叫單元地址),而在這里,這些數據都變成了位地址。我們在指令中,或者在程序中如何來區分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現在正在研究的位尋址的一個重要問題。其實,區分這些數據是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關于專用寄存器的相關文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態字PSW來進行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H   MOV  C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示   MOV  C,F0 3、單元(字節)地址加位表示:D0H單元位5,表示為DOH.5    MOV  C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5    MOV C,PSW.5 這四種方法實現的功能都是相同的,只是表述的方式不同而已。 例題:   1. 說明下列指令中源操作數采用的尋址方式。   MOV R5,R7 答案:寄存器尋址方式   MOV A,55H 直接尋址方式   MOV A,#55H 立即尋址方式   JMP @A+DPTR 變址尋址方式   MOV 30H,C 位尋址方式   MOV A,@R0 間接尋址方式   MOVX A,@R0 間接尋址方式 改錯題   請判斷下列的MCS-51單片機指令的書寫格式是否有錯,若有,請說明錯誤原因。   MOV R0,@R3 答案:間址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。   ADD R0,R1 運算指令中目的操作數必須為累加器A,不可為R0。   MUL AR0 乘法指令中的乘數應在B寄存器中,即乘法指令只可使用AB寄存器組合。

    標簽: 單片機指令 系統原理

    上傳時間: 2013-11-11

    上傳用戶:caozhizhi

  • SPCE061A的指令周期表.pdf

    SPCE061A的指令周期表 SPCE061A的指令周期表[注意]:表中目標寄存器為PC時,部分指令周期會發生改變;建議在非必要的情況下,盡量不用PC作為目標寄存器。[符號約定]:表中符號代表的含義如下:R1,R2,R3,R4: 通用寄存器;BP(R5): 基址指針寄存器,也可以作為通用寄存器使用;SR: 段寄存器;SP: 堆棧指針寄存器;PC: 程序計數器;N: 負標志;Z: 零標志;S: 符號標志;C: 進位標志;IM6: 6位立即數尋址;IM16: 16位立即數尋址;[A6]: 存儲器絕對尋址,用6位立即數表示地址;[A16]: 存儲器絕對尋址,用16位立即數表示地址;R: 寄存器尋址;[R]: 寄存器間接尋址;[BP+IM6]: 變址尋址,地址偏移量為6位立即數;[BP+IM16]: 變址尋址,地址偏移量為16位立即數;{}: 可選項;D: 數據段基址,D:或省略都表示基址為0(在第0頁);#: 算術邏輯運算符(不能為乘除);n 移位操作時的移位位數。

    標簽: SPCE 061A 061

    上傳時間: 2013-10-23

    上傳用戶:nanshan

  • CPU周期與微指令周期的關系

    CPU周期與微指令周期的關系 在串行方式的微程序控制器中:       微指令周期 = 讀出微指令的時間 + 執行該條微指令的時間     為了保證整個機器控制信號的同步,可以將一個微指令周期時間設計得恰好和CPU周期時間相等.下圖示出了某小型機中CPU周期與微指令周期的時間關系:

    標簽: CPU 周期 指令周期

    上傳時間: 2013-11-14

    上傳用戶:baba

  • Holtek指令集說明

    Holtek指令集說明 注:由于資源大小問題,其中以下幾款MCU 只有62 條指令,其余均為63 條指令。HT48CA0/HT48RA0A 無RETI 指令HT48R05A-1 無TABRDL 指令

    標簽: Holtek 指令集

    上傳時間: 2013-10-16

    上傳用戶:txfyddz

  • ARM指令集(2)

    ARM指令集(2)  1.跳轉指令   在ARM中有兩種方式可以實現程序的跳轉:一種是刀‘轉指令;另一種是直接向PC寄存器(R15)中寫入目標地址值。   通過直接向PC寄存器中寫入目標地址值可以實現在46B地址空間中任意跳轉,這種跳轉指令又稱為長跳轉。如果在長跳轉指令之前使用MOV LR,PC等指令,則可以保存將來返回的地址值,這樣就實現了在46B地址空間中的子程序調用。   在ARM版本5及以上的體系中,實現了ARM指令集和Thumb指令集的混合使用。指令使用目標地址值的bit[0]來確定目標程序的類型。bit[0]的值為1時,目標程序為Thumb指令;bit[0]值為0時,目標程序為ARM指令。   在ARM版本5以前的體系中,傳送到PC寄存器中的目標地址值的低兩位bits[1∶0]被忽略,跳轉指令只能在ARM指令集中執行,即程序不能從ARM狀態切換到Thumb狀態。非T系列ARM版本5體系不含Thumb指令,當程序試圖切換到Thumb狀態時,將產生未定義指令異常中斷。   ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。

    標簽: ARM 指令集

    上傳時間: 2013-11-20

    上傳用戶:妄想演繹師

  • arm指令集(1)

    arm指令集(1)  ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。   (1)B 跳4專指令   B〔條件) (地址)   B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉到給定的地址,從那里繼續執行。注意:存儲在分支指令中的實際值是相對當前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數,左移兩位后有符號擴展為32位,表示的有效偏移位為26位(+/- 32 MB)。   (2)BL 帶返回的跳轉指令   BI,〔條件) (地址)   BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執行,它是子例程的一個基本但強力的實現。   (3)BLX 帶返回和狀態切換的跳轉指令   BLX <地址>   BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉到指令中指定的目標地址,并將程序狀態切換到Thumb狀態,該指令同時將PC寄存器的內容復制到LR寄存器中。   BLX(1)指令屬于無條件執行的指令。   第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉到指令中指定的目標地址,目標地址的指令可以是ARM指令,也可以是Thumb指令。目標地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內容復制到LR寄存器中。   (4)BX 帶狀態切換的跳轉指令   BX(條件) (dest)   BX指令跳轉到指令中指定的目標地址,目標地址處的指令可以是ARM指令,也可以是Thumb指令。目標地址值為指令的值和0xFl·FFFFFF做“與”操作的結果,目標地址處的指令類型由寄存器決定。

    標簽: arm 指令集

    上傳時間: 2014-12-27

    上傳用戶:laomv123

  • 80C51匯編指令集

    80C51 匯編指令集:TF1:計時器1溢出標志位,當計時器1溢出,時此位=1,發出中斷請求,然后硬件自動清0.TR1:計時器1的控制位,TR1=1時,計時開始,TR1=1時則停止。TF0:計時器0溢出標志位,當計時器0溢出,時此位=1,發出中斷請求,然后硬件自動清0。TR0:計時器0的控制位,TR0=1時,計時開始,TR0=1時則停止。IE1:外部中斷1的請求標志位,當外部中斷有請求時,此位=1,發出中斷請求,然后硬件自動清0。IT1:外部中斷1的中斷類型控制,當IT1=1時,邊沿觸發方式,下降沿觸發有效,當IT1=0時,電平觸發方式,低電平觸發有效。P3.3信號觸發。IE0:外部中斷0的請求標志位,當外部中斷有請求時,此位=1,發出中斷請求,然后硬件自動清0。IT0:外部中斷0的中斷類型控制,當IT0=1時,邊沿觸發方式,下降沿觸發有效,當IT0=0時,電平觸發方式,低電平觸發有效。P3.2信號觸發

    標簽: 80C51 匯編指令集

    上傳時間: 2013-11-17

    上傳用戶:kangqiaoyibie

  • Designing Boards with Atmel AT

    Designing Boards with Atmel AT89C51, AT89C52, AT89C1051, and AT89C2051 for Writing Flash at In-Circuit Test:Recent improvements in chips andtesters have made it possible for thetester to begin taking over the role traditionallyassigned to the PROM programmer.Instead of having a PROM programmerwrite nonvolatile memoriesbefore assembling the board, the in-circuittester writes them during in-circuittesting operations. Many Teradyne Z18-series testers are now in use loadingcode into nonvolatile memories, microcontrollersand in-circuit programmable logic devices. The purpose of this note is to explain how the Z18 approaches the writing task for Atmel AT89C series IC’s,so that designers of boards using these chips can get the best results.

    標簽: Designing Boards Atmel with

    上傳時間: 2013-11-20

    上傳用戶:lijianyu172

  • 單片機指令周期

    單片機指令周期:時序是用定時單位來描述的,MCS-51的時序單位有四個,它們分別是節拍、狀態、機器周期和指令周期,接下來我們分別加以說明。節拍與狀態:我們把振蕩脈沖的周期定義為節拍(為方便描述,用P表示),振蕩脈沖經過二分頻后即得到整個單片機工作系統的時鐘信號,把時鐘信號的周期定義為狀態(用S表示),這樣一個狀態就有兩個節拍,前半周期相應的節拍我們定義為1(P1),后半周期對應的節拍定義為2(P2)。機器周期:MCS-51 有固定的機器周期,規定一個機器周期有6 個狀態,分別表示為S1-S6,而一個狀態包含兩個節拍,那么一個機器周期就有12個節拍,我們可以記著S1P1、S1P2……S6P1、S6P2,一個機器周期共包含12個振蕩脈沖,即機器周期就是振蕩脈沖的12 分頻,顯然,如果使用6MHz的時鐘頻率,一個機器周期就是2us,而如使用12MHz的時鐘頻率,一個機器周期就是1us。指令周期:執行一條指令所需要的時間稱為指令周期,MCS-51的指令有單字節、雙字節和三字節的,所以它們的指令周期不盡相同,也就是說它們所需的機器周期不相同,可能包括一到四個不等的機器周期(這些內容,我們將在下面的章節中加以說明)。

    標簽: 單片機 指令周期

    上傳時間: 2013-10-15

    上傳用戶:qq10538412

主站蜘蛛池模板: 繁昌县| 弥渡县| 金山区| 龙江县| 渭南市| 裕民县| 高邑县| 诸城市| 濮阳县| 南城县| 海林市| 梁平县| 连南| 南汇区| 清原| 绵阳市| 驻马店市| 桑植县| 岳阳市| 通榆县| 凌源市| 荥阳市| 玛纳斯县| 易门县| 长治市| 蕉岭县| 西昌市| 平乡县| 扎鲁特旗| 蒲城县| 清水河县| 大同市| 宜都市| 姚安县| 彰化市| 山阳县| 桐乡市| 松桃| 大理市| 濮阳市| 惠州市|