freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[電腦基礎(chǔ)知識]第2章mcs-51單片機(jī)應(yīng)用教程-文庫吧

2025-01-04 08:50 本頁面


【正文】 圖 MCS51單片機(jī)設(shè)有獨(dú)立的位處理器,又稱為布爾處理器,可對位地址空間的 211個(gè)位地址進(jìn)行運(yùn)算和傳送操作。 位尋址 位尋址范圍 ( 1) 內(nèi)部 RAM的位尋址區(qū),共 16個(gè)單元的 128位,單元地址為 20H~ 2FH, 位地址為 00H~ 7FH, 位地址的表示方法可以用直接位地址或單元地址加位的表示方法。 例如: MOV C, 7AH 或 MOV C, 此例中, 7AH與 (見表 13,書 9頁 )。 ( 2) 特殊功能寄存器 SFR中可供位尋址的專用寄存器共 11個(gè),其中有 83位可供位尋址,這些位地址在指令中有 4種表達(dá)方式。 ① 直接使用位地址: MOV C, 0D6H ② 位名稱表示法: MOV C, AC ③ 單元地址加位的表示法: MOV C, ④ 專用寄存器符號加位的表示法: MOV C, 為了使讀者更好地理解尋址方式, 7種尋址方式作用范圍見表 21。(見書 24頁) 以上對于尋址方式舉例中,多是針對源操作數(shù)的,實(shí)際上目的操作數(shù)也有尋址問題。 源操作數(shù)為間接尋址方式,目的操作數(shù)為直接尋址方式。但總的來說源操作數(shù)尋址方式多,目的操作數(shù)尋址方式較少。源操作數(shù)有立即尋址、直接尋址、寄存器尋址、間接尋址、變址尋址和位尋址 6種尋址方式。目的操作數(shù)有直接尋址、寄存器尋址、間接尋址和位尋址 4種尋址方式。 尋址方式小結(jié) 綜上所述, MCS51單片機(jī)的編址方式有兩個(gè)突出的特點(diǎn): 一是內(nèi)部數(shù)據(jù)存儲器與內(nèi)部 I/O口統(tǒng)一編址;二是外部數(shù)據(jù)存儲器與外部 I/O口也是統(tǒng)一編址。這樣對 I/O口的操作就和對數(shù)據(jù)存儲器的操作一樣,對于內(nèi)部數(shù)據(jù)存儲器以直接尋址方式的一切操作,對內(nèi)部 I/O口同樣適用。 在介紹指令功能之前,先把指令中使用的一些符號的意義做簡要說明,見表 22。(見書 24頁) 下面按指令功能分類介紹 MCS51單片機(jī)的指令。 指令功能介紹 數(shù)據(jù)傳送類指令是指令系統(tǒng)中使用最頻繁的指令,主要用于數(shù)據(jù)的保存及交換等場合。按其操作方式又可分為數(shù)據(jù)傳送、數(shù)據(jù)交換和棧操作。 數(shù)據(jù)傳送類指令 1. 內(nèi)部數(shù)據(jù)傳送指令 MOV 指令格式 MOV目的操作數(shù) , 源操作數(shù) 這類指令的源操作數(shù)和目的操作數(shù)都在單片機(jī)內(nèi)部??梢允瞧瑑?nèi) RAM地址,也可以是特殊功能寄存器SFR的地址(立即數(shù)除外)。 指令功能是把源操作數(shù)指定的字節(jié)變量復(fù)制到目的操作數(shù)所指定的單元或寄存器中,源字節(jié)不變。 ( 1) 立即數(shù)傳送指令指令功能是把源操作數(shù)送指定單元或寄存器,源操作數(shù)為立即數(shù)。 MOV A, data ; A← data MOV Rn, data ; Rn← data , n=0~ 7 MOV @Ri, data ;( Ri) ← data , i=0, 1 MOV direct, data ; direct← data MOV DPTR, data16 ; DPTR← data16 ( 2) 內(nèi)部數(shù)據(jù)存儲器( Rn、 內(nèi)部 RAM、 SFR)與累加器 A之間傳送數(shù)據(jù)。 MOV A, Rn ; A← ( Rn), n=0~7 MOV Rn, A ; Rn← ( A) MOV A, @Ri ; A← (( Ri)), i=0~1 MOV @Ri, A ; (Ri)← ( A) MOV A, direct ; A← ( direct) MOV direct, A ; direct← ( A) ( 3) 內(nèi)部 RAM中 Rn、 SFR與片內(nèi) RAM之間的數(shù)據(jù)傳送。 MOV direct, Rn ; direct← ( Rn) MOV Rn, direct ; Rn← (direct ) MOV direct, @Ri ; direct← (( Ri)) MOV @Ri, direct ;( Ri) ← ( direct) MOV direct2, direct1 ; direct2← ( direct1) 例 21 設(shè)內(nèi)部 RAM中( 30H)= 40H,( 40H)=10H, P1口作輸入口,( P1)= 0CAH, 程序及執(zhí)行后的結(jié)果如下: MOV R0, 30H ; 單元地址 30H送 R0中 MOV A, @R0 ; R0間接尋址,將 30H單元內(nèi)容 送 A MOV R1, A ; A送 R1 MOV B, @R1 ; R1間接尋址,將 40H單元內(nèi)容 送 B MOV @R1, P 1 ; 將 P1內(nèi)容送 40H單元 MOV P2, P1 ; 將 P1內(nèi)容送 P2 執(zhí)行結(jié)果: ( R0) =30H,( R1) =40H,( A) =40H, ( B) =10H,( P1) =0CAH, ( 40H) =0CAH,( P2) =0CAH 2. 外部數(shù)據(jù)存儲器(或 I/O口)的讀寫指令 MOVX 這類指令用于訪問片外 RAM或擴(kuò)展的 I/O口。 ( 1) 用 @DPTR進(jìn)行間址尋址的指令 MOVX A, @DPTR ; A← (( DPTR)) MOVX @DPTR, A ;( DPTR) ← ( A) DPTR為 16位數(shù)據(jù)指針,該指令可尋址外部 RAM 64KB范圍( 0000H~ 0FFFH)。 地址低 8位由 P0口輸出,地址高 8位由 P2口輸出,數(shù)據(jù)通過 P0口讀 /寫。 ( 2) 用 @Ri進(jìn)行間址尋址的指令 MOVX A, @Ri ; A← (( Ri)) MOVX @Ri, A ;( Ri) ← ( A) 指令可尋址范圍 ① 若外部擴(kuò)展 RAM小于等于 256個(gè)單元,則用 @Ri間接尋址進(jìn)行數(shù)據(jù)傳送, 8位地址線足夠使用。 ② 若外部擴(kuò)展較大的 RAM區(qū)域,需用 P2口輸出高8位地址,則用 @Ri表示低 8位地址, P0口分時(shí)作低8位地址線和數(shù)據(jù)線, P2口應(yīng)事先預(yù)置。若設(shè)計(jì)循環(huán)程序,則 Ri被加到 0或減到 0時(shí)必須考慮對 P2口高8位地址進(jìn)位或借位的關(guān)系。 例如,若外部 RAM中,( 20FFH) =30H,( 2100H) =15H 執(zhí)行: MOV DPTR, 20FFH INC DPTR MOV A, @DPTR 結(jié)果: 外部 RAM中 2100H單元內(nèi)容送 A,( A)=15H 執(zhí)行: MOV P2, 20H MOV R0, 0FFH INC R0 MOVX A, @R0 結(jié)果: 外部 RAM中 2022H單元內(nèi)容送 A, 而不是2100H單元內(nèi)容送 A。 例 22 把片外 RAM的 70H單元中的一個(gè)數(shù) X, 送到片外 RAM的 1010H單元。 程序如下: MOV P2,# 00H MOV R0,# 70H MOVX A, @R0 MOV DPTR,# 1010H MOVX @DPTR, A 注意: 外部 RAM之間不能直接傳送數(shù)據(jù),必須通過累加器 A傳送。 3. 程序存儲器讀指令 MOVC MOVC A, @A+DPTR ; A← (( A) + ( DPTR)) MOVC A, @A+PC ; A← (( A) + ( PC)) 指令功能: 把累加器 A作為變址寄存器,將其中的內(nèi)容與基址寄存器( DPTR、 PC) 的內(nèi)容相加,得到程序存儲器某單元的地址,再把該地址單元中的內(nèi)容送累加器 A。 指令執(zhí)行后,不改變基址寄存器內(nèi)容。 這兩條指令主要用于查表,即完成從程序存儲器讀取數(shù)據(jù)的功能。但由于兩者使用的基址寄存器不同,因此適用范圍也不同。 ( 1) 第一條指令以 DPTR作為基址寄存器,查表時(shí) DPTR用于存放表格的起始地址。由于用戶可以很方便地通過 16位數(shù)據(jù)傳送指令給 DPTR賦值,因此該指令適用范圍較為廣泛,表格常數(shù)可以設(shè)置在64KB程序存儲器中的任何位置。 ( 2) 第二條指令以 PC作為基址寄存器,由于 A為8位無符號數(shù),這就使得該指令查表范圍為以 PC當(dāng)前值開始后的 256個(gè)地址范圍。 例 23 已知累加器 A中有一個(gè) 0~ 9范圍內(nèi)的數(shù),用以上查表指令編出能查出該數(shù)平方值的程序。設(shè)平方表表頭地址為 2022H。 ( 1) 采用 DPTR作為基址寄存器 MOV DPTR, 2022H MOVC A, @A+DPTR 2022H DB 0,1,4,9,16 DB 25,36,49,64,81 若原( A)= 2, 查表得 4并存于 A中。 ( 2) 采用 PC作為基址寄存器 ORG 1FFBH 1FFBH ADD A, data ; 加修正量 1FFDH MOVC A, @A+PC ; 查表 1FFEH SJMP $ ; 停機(jī) 2022H DB 0 2022H DB 1 2022H DB 4 … 2022H DB 81 END 查表指令所在單元為 1FFDH, 取指令后的 PC當(dāng)前值為 1FFEH。 若 A不加修正量調(diào)整,將出現(xiàn)查表錯誤。修正量 =表頭首地址- PC當(dāng)前值 =2022H-1FFEH=02H。 所以 data=02H( SJMP指令 2字節(jié))。由于 A為 8位無符號數(shù),因此查表指令和被查表格通常在同一頁內(nèi)(頁內(nèi)地址 00H~ FFH)。 4. 堆棧操作指令( PUSH、 POP) 堆棧操作指令共 2條。壓棧指令用于保護(hù)片內(nèi)某個(gè)單元的內(nèi)容,出棧指令用于恢復(fù)片內(nèi)某個(gè)單元的內(nèi)容。 PUSH direct ; SP← ( SP) +1,( SP) ← ( direct) POP direct ; direct← (( SP)), SP← ( SP)- 1 堆棧中的數(shù)據(jù)是 “ 后進(jìn)先出 ” 的方式,由堆棧指針SP自動跟蹤棧頂?shù)刂贰纹瑱C(jī)堆棧編址采用向上生成方式,即棧底占用較低地址,棧頂占用較高地址。第一條指令稱為壓棧指令,壓棧過程是先執(zhí)行( SP) +1→ SP , 使指針指向新的棧頂單元。然后把直接地址單元的內(nèi)容壓入 SP所指示的單元中。壓棧指令將改變堆棧區(qū)中的數(shù)據(jù)。第二條指令稱為出棧指令,出棧過程是先將棧頂內(nèi)容彈出到直接尋址單元,然后執(zhí)行 (SP)- 1→SP , 形成新的棧頂?shù)刂?。出棧指令?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1