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

正文內(nèi)容

8051單片機教程(doc77)-管理培訓-預覽頁

2024-09-20 12:31 上一頁面

下一頁面
 

【正文】 。(請想一下,我們還看到過什么樣的類似的例子呢?(海軍之)燈語、旗語,電報,甚至紅、綠燈) 位的含義: 通過上面的實驗我們已經(jīng)知道:一盞燈亮或者說一根線的電平的高低,可以代表兩種狀態(tài):0 和 1。不要問我為什么是 8 根而不是其它數(shù),因為我也不知道。這是一個存儲器的示意圖:一個存儲器就象一個個的小抽屜,一個小抽屜里有八個小格子,每個小格子就是用來存 放“電荷”的,電荷通過與它相連的電線傳進來或釋放掉,至于電荷在小格子里是怎樣存的,就不用我們操心了,你可以把電線想象成水管,小格子里的電荷就象是水,那就好理解了。 存儲器譯碼 那么,我們怎樣來控制各個單元 的控制線呢?這個還不簡單,把每個單元元的控制線都引到集成電路的外面不就行了嗎?事情可沒那么簡單,一片 27512存儲器中有 65536 個單元,把每根線都引出來,這個集成電路就得有 6萬多個腳?不行,怎么辦?要想法減少線的數(shù)量。這樣問題就出來了,這八根線既然不是存儲器和計算機之間專用的,如果總是將某個單元接在這八根線上,就不好了,比如這個存儲器單元中的數(shù)值是0FFH 另一個存儲器的單元是 00H,那么這根線到底是處于高電平,還是低電平?豈非要打架看誰歷害了?所以我們要讓它們分離。要將數(shù)據(jù)寫入片中,先選中該片,然后發(fā)出寫信號,開關就合上了,并將傳過來的數(shù)據(jù)(電荷)寫入片中。 從上面的介紹中我們已經(jīng)看到,用來傳遞數(shù)據(jù)的八根線并不是專用的,而是很多器件大家共用的,所以我們稱之為數(shù)據(jù)總線,總線英文名為 BUS,總即公交車道,誰者可以走。只讀存 儲器的英文縮寫為 ROM( READ ONLY MEMORY) 所謂隨機存取存儲器,即隨時可以改寫,也可以讀出里面的數(shù)據(jù),它類似于我們的黑板,我可以隨時寫東西上去,也可以用黑板擦擦掉重寫。 順便解釋一下其它幾個常見的概念。它里面的內(nèi)容寫上去之后,如果覺得不滿意,可以用一種特殊的方法去掉后重寫,這就是用紫外線照射,紫外線就象“消字靈”,可以把字去掉,然后再重寫。不管是 PROM、 EPROM 還是 FLASH ROM,它們的寫都要有特殊的條件,一般我們用一種稱之為“編程器”的設備來做這項工作,一旦把它裝到它的工作位置,就不能隨便改寫了。第二,在執(zhí)行完 CLR P10 后,不會再 去執(zhí)行 SETB P10指令,所以以后再也沒有機會讓滅了。 第一條是讓燈滅,第二條應當是延時,第三條是讓燈亮,第四條和第 二條一模一樣,也是延時,第五條應當是轉(zhuǎn)去執(zhí)行第一條指令。 第二條和第四條指令的用途是延時,它是怎樣實現(xiàn)的呢?指令的形式是 LCALL,這條指令稱為調(diào)用子程序指令,看一下指令后面跟的是什么, DELAY,找一下 DELAY,在第六條指令的前面,顯然,這也是一個標號。 程序的最后一行是 END,這不是一條指令,它只是告訴我們程序到此結束,它被稱為 偽 指令 。這其中 1552 是我們想要的結果,而 690 并非我們所要的結果,但是為了得到最終結果,我們又不得不先算出 690,并記下來,這其實是一個中間結果,計算機中做運算和這個類似,為了要得到最終結果,往往要做很多步的中間結果,這些中間結果要有個地方放才行,把它們放哪呢?放在前面提到過的 ROM 中可以嗎?顯然不行,因為計算機要將結果寫進去,而 ROM 是不可以寫的,所以在單片機中另有一個區(qū)域稱為 RAM區(qū)( RAM 是隨機存取存儲器的英文縮寫),它可以將數(shù)據(jù)寫進去。從指令 MOV R7, 250 中來分析, R7 是一個接受者, 250 是被傳遞的數(shù),傳遞者在這條指令中被省略了(注意:并不是每一條傳遞指令都會省的,事實上大部份數(shù)據(jù)傳遞指令都會有傳遞者)。 DJNZ:這是另一條指令,我們來看一下這條指令后面跟著的兩個東西,一個是 R6,一個是D2, R6我們當然已知是什么了,查一下 D2是什么。本條指令的最終執(zhí)行結果就是,在原地轉(zhuǎn)圈 250 次。 二、時序分析: 前面我們介紹了延時程序 ,但這還不完善,因為,我們只知道 DJNZ R6, D2 這句話會被執(zhí)行 62500次,但是執(zhí)行這么多次需要多長時間呢?是否滿足我們的要求呢?我們還不知道,所以下面要來解決這個問題。這個鈴是按一定的時間安排來響的,我們可以稱之為“時序 時間的順序 ”。 我們已知,計算機工作時,是一條一條地從 ROM 中取指令,然后一步一步地執(zhí)行,我們規(guī)定:計算機訪問一次存儲器的時間,稱之為一個機器周期。設一個單片機工作于 12M 晶振,它的時鐘周期 是 1/12(微秒)。這也不難再解,不是嗎?我讓你掃地的執(zhí)行要完成總得比要你完成擦黑板的指令時間要長。 下面讓我們來計算剛才的延時。 練習:設計一個延時 100 毫秒的延時程序。預備鈴一響,大家就自動地從操場、其它地方進入教室了,在這一段時間里,是沒有老師干預的,對單片機來說,是程序還沒有開始執(zhí)行,是在做準備工作。實際上,我們在上一次實驗的圖中已見到過了。因此, P10 P17 是全部可以點亮燈的。當然用的指令也不一樣了,是用 MOV 指令。 從硬件電路的連線可以看出,有四個按鈕被接入到 P3 口的 P32, P33, P34, P35。 P3 口的 P32 位的按鈕被按下,使得 P32 位的電平為低,通過程序,又使 P12 中國最大的管理資料下載中心 (收集 \整理 . 部分版權歸原作者 所有 ) 第 11 頁 共 68 頁 口輸出低電平,所以 P3 口起來了一個輸入的作用。怎么解決這個問題呢?我們在存儲器一節(jié)中學過,存儲器中是可以存放電荷的,我們不妨也加一個小的存儲器的單元,并在它的前面加一個開關,要讓這一位輸出時,就把開關打開,信號就進入存儲器的單元,然后馬上關閉開關,這樣這一位的狀態(tài)就被保存下來,直到下一次命令讓它把開關再打開為止。 請注意輸入結構圖,如果將這一根引線作為輸入口使用,我們并不能保證在任何時刻都能得到正確的結果(為什么 ?)參考圖 2 輸入示意圖。 以上是 P1 口的一位的結構, P1 口其它各位的結構與之相同,而其它三個口: P0、 P P3則除入作為輸入輸出口之外還有其它用途,所以結構要稍復雜一些,但其用于輸 入、輸出的結構是相同的。從圖中我們可以看出,在 51 單片機內(nèi)部有 一個 CPU 用來運算、控制,有 四個并行 I/O 口 ,分別是P0、 P P P3,有 ROM,用來存放程序,有 RAM,用來存放中間結果,此外還有 定時 /計數(shù)器 , 串行 I/O 口 , 中斷系統(tǒng) ,以及一個 內(nèi)部的時鐘電路 。 ACC:累加器,通常用 A表示。在做乘、除法時放乘數(shù)或除數(shù),不做乘除法時,隨你怎么用。 8051 中的運算器是一種 8 位的運算器,我們知道, 8位運算器只能表示到 0255,如果做加法的話,兩數(shù)相加可能會超過 255,這樣最高位就會丟失,造成運算的錯誤,怎么辦?最高位就進到這里來。 ( 4) RS RS0:工作寄存器組選擇位。 ( 6) P:奇偶校驗位:它用來表示 ALU 運算結果中二進制數(shù)位“ 1”的個數(shù)的奇偶性。 P0、 P P P3:這個我們已經(jīng)知道,是四個并行輸 入 /輸出口的寄存器。請大家想想,還有什么地方有這種現(xiàn)象?其實比比皆是,建筑工地上堆放的磚頭、材料,倉庫里放的貨物,都是“先進后出,后進先出”,這實際是一種存取物品的規(guī)則,我們稱之為“堆棧”。而這種變化就體現(xiàn)在 SP 中值的變化,看圖 2, SP 中的值等于 27H不就相當于是一個指針指向 27H 單元嗎?當然在真正的 51 機中,開始指針所指的位置并非就是數(shù)據(jù)存放 的位置,而是數(shù)據(jù)存放的前一個位置,比如一開始指針是指向 27H 單元的,那么第一個數(shù)據(jù)的位置是 28H 單元,而不是 27H 單元,為什么會這樣,我們在學堆棧命令時再說明。但這種形式實在是為難我們?nèi)肆?,太難記了,于是有另一種格式,助記符格式,如 MOV P1, 0FFH,這樣就好記了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 從這里我們可以得出結論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時候,這個數(shù)并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。提一個問題:我們知道,工作寄存器就是內(nèi)存單元的一部份,如果我們選擇工作寄存器組 0,則 R0 就是 RAM的 00H 單元,那么這樣一來, MOV A, 00H,和 MOV A, R0 不就沒什么區(qū)別了嗎?為什么要加以區(qū)分呢?的確,這兩條指令執(zhí)行的結果是完全相同的,都是將 00H單元中的內(nèi)容送到 A中去,但是執(zhí)行的過程不同,執(zhí)行第一條指令需要 2個周期,而第二條則只需要 1 個周期 ,第一條指令變成最終的目標碼要兩個字節(jié)( E5H 00H),而第二條則只要一個字節(jié)( E8h)就可以了。 就我們目前掌握的辦法而言,要從 30H 單元取數(shù),就用 MOV A, 30H,那么下一個數(shù)呢?是31H單元的,怎么取呢?還是只能用 MOV A, 31H,那么 20個數(shù),不是得 20條指令才能寫完嗎?這里只有 20個數(shù),如果要送 200個或 2020個數(shù),那豈不要寫上 200條或 2020條命令 ?這未免太笨了吧。 MOV R7, 20 MOV R0, 30H LOOP: MOV A, R0 INC R0 DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數(shù) 20 送到 R7 中,執(zhí)行完后 R7中的值應當是 20。注意,在間址尋址中,只能用 R0或 R1存放等尋找的數(shù)據(jù)。 下面我們通過一些例子加以說明: MOV A, R1 ; 將工作寄存器 R1中的值送入 A, R1中的值保持不變。 MOV A,34H ; 將立即數(shù) 34H送入 A中 , 執(zhí)行完本條指令后 , A中的值是 34H。例: MOV DPTR, 1234H,則執(zhí)行完了之后 DPH中的值為 12H, DPL中的值為 34H。綜合練習: 給出每條指令執(zhí)行后的結果 MOV 23H,30HMOV 12H,34H MOV R0,23H MOV R7,22H 中國最大的管理資料下載中心 (收集 \整理 . 部分版權歸原作者 所有 ) 第 18 頁 共 68 頁 MOV R1,12H MOV A,R0 MOV 34H,R1 (23h)=30h (12h)=34h (R0)=23H (R7)=22H (R1)=12H (A)=30H (34H)=34H MOV 45H,34H MOV DPTR,6712H MOV 12H,DPH MOV R0,DPL MOV A,R0 (45H)=34H (DPTR)=6712H (12H)=67H (R0)=12H (A)=67H 說明:用括號括起來代表內(nèi)容,如( 23H)則代表內(nèi)部 RAM23H單元中的值,( A)則代表累加器 A單元中的值。用 F8 即可單步執(zhí)行,在執(zhí)行過程中注意觀察屏幕左邊的工作寄存器及 A累加器中的值的變化。為了再從頭開始,可以用 CTRL+F2 功能鍵復位 PC值。窗口用 WINDOWS菜單。在 此我們可以看出內(nèi)外部 RAM 的區(qū)別了,內(nèi)部 RAM 間可以直接進行數(shù)據(jù)的傳遞,而外部則不行,比如,要將外部 RAM 中某一單元(設為 0100H單元的數(shù)據(jù))送入另一個單元(設為 0200H單元),也必須先將 0100H 單元中的內(nèi)容讀入 A,然后再送到 0200H 單元中去。 使用時應當首先將要讀或?qū)懙牡刂匪腿?DPTR 或 Ri 中,然后再用讀寫命令。本指令是要在 ROM的一個地址單元中找出數(shù)據(jù),顯然必須知道這個單元的地址,這個單元的地址是這樣確定的:在執(zhí)行本指令立腳點DPTR 中有一個數(shù), A中有一個數(shù),執(zhí)行指令時,將 A和 DPTR中的數(shù)加起為,就成為要查找的單元的地址。 標號的真實含義:從這個地方也可以看到另一個問題,我們使用了標號來替代具體的單元地址。事實上, CPU 正是通過這個地址才找到這段程序的。推入指令的執(zhí)行過程是,首先將 SP 中的值加 1,然后把SP 中的值當作地址,將 direct 中的值送進以 SP 中的值為地址的 RAM 單元中。 這有什么意義呢? ACC 中的值本來就是 100, B 中的值本來就是 20,是的,在本例中,的確沒有意義,但在實際工作中,則在 PUSH B 后往 往要執(zhí)行其他指令,而且這些指令會把 A中的值, B 中的值改掉,所以在程序的結束,如果我們要把 A 和 B 中的值恢復原值,那么這些指令就有意義了。也就兩者進行了數(shù)據(jù)交換。例: ADD A, 10H ADD A,direct 。 例: MOV A, 30H ADD A, 10H 則執(zhí)行完本條指令后, A中的值為 40H。 這兩個數(shù)相加,我們根本不在意這的過程,但事實上我們是這樣做的:先做 6+8(低位),然后再做 6+7,這是高位。那么計算機中做 16 位加法時同樣如此,先做低 8 位的,如果兩數(shù)相加產(chǎn)生了進位,也要“點一下”做個標記,這個標記就是進位位 C,在 PSW 中。 帶借位的減法指令 SUBB A, Rn SUBB A,direct SUBB A,Ri SUBB A,data 設(每個 H,( R2) =55H, CY=1,執(zhí)行指令 SUBB A, R2 之后, A中的值為 7
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1