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

正文內(nèi)容

8051單片機(jī)教程(doc77)-管理培訓(xùn)-免費(fèi)閱讀

  

【正文】 帶借位的減法指令 SUBB A, Rn SUBB A,direct SUBB A,Ri SUBB A,data 設(shè)(每個(gè) H,( R2) =55H, CY=1,執(zhí)行指令 SUBB A, R2 之后, A中的值為 73H。 這兩個(gè)數(shù)相加,我們根本不在意這的過(guò)程,但事實(shí)上我們是這樣做的:先做 6+8(低位),然后再做 6+7,這是高位。例: ADD A, 10H ADD A,direct 。 這有什么意義呢? ACC 中的值本來(lái)就是 100, B 中的值本來(lái)就是 20,是的,在本例中,的確沒(méi)有意義,但在實(shí)際工作中,則在 PUSH B 后往 往要執(zhí)行其他指令,而且這些指令會(huì)把 A中的值, B 中的值改掉,所以在程序的結(jié)束,如果我們要把 A 和 B 中的值恢復(fù)原值,那么這些指令就有意義了。事實(shí)上, CPU 正是通過(guò)這個(gè)地址才找到這段程序的。本指令是要在 ROM的一個(gè)地址單元中找出數(shù)據(jù),顯然必須知道這個(gè)單元的地址,這個(gè)單元的地址是這樣確定的:在執(zhí)行本指令立腳點(diǎn)DPTR 中有一個(gè)數(shù), A中有一個(gè)數(shù),執(zhí)行指令時(shí),將 A和 DPTR中的數(shù)加起為,就成為要查找的單元的地址。在 此我們可以看出內(nèi)外部 RAM 的區(qū)別了,內(nèi)部 RAM 間可以直接進(jìn)行數(shù)據(jù)的傳遞,而外部則不行,比如,要將外部 RAM 中某一單元(設(shè)為 0100H單元的數(shù)據(jù))送入另一個(gè)單元(設(shè)為 0200H單元),也必須先將 0100H 單元中的內(nèi)容讀入 A,然后再送到 0200H 單元中去。為了再?gòu)念^開(kāi)始,可以用 CTRL+F2 功能鍵復(fù)位 PC值。綜合練習(xí): 給出每條指令執(zhí)行后的結(jié)果 MOV 23H,30HMOV 12H,34H MOV R0,23H MOV R7,22H 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者 所有 ) 第 18 頁(yè) 共 68 頁(yè) 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 說(shuō)明:用括號(hào)括起來(lái)代表內(nèi)容,如( 23H)則代表內(nèi)部 RAM23H單元中的值,( A)則代表累加器 A單元中的值。 MOV A,34H ; 將立即數(shù) 34H送入 A中 , 執(zhí)行完本條指令后 , A中的值是 34H。注意,在間址尋址中,只能用 R0或 R1存放等尋找的數(shù)據(jù)。 就我們目前掌握的辦法而言,要從 30H 單元取數(shù),就用 MOV A, 30H,那么下一個(gè)數(shù)呢?是31H單元的,怎么取呢?還是只能用 MOV A, 31H,那么 20個(gè)數(shù),不是得 20條指令才能寫完嗎?這里只有 20個(gè)數(shù),如果要送 200個(gè)或 2020個(gè)數(shù),那豈不要寫上 200條或 2020條命令 ?這未免太笨了吧。 從這里我們可以得出結(jié)論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時(shí)候,這個(gè)數(shù)并不能直接給出,需要變化,這就引出了一個(gè)概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。不過(guò)手工查表總是嫌麻煩,所以就有了計(jì)算機(jī)軟件,用計(jì)算機(jī)軟件來(lái)替代手工查表,這就是機(jī)器匯編。而這種變化就體現(xiàn)在 SP 中值的變化,看圖 2, SP 中的值等于 27H不就相當(dāng)于是一個(gè)指針指向 27H 單元嗎?當(dāng)然在真正的 51 機(jī)中,開(kāi)始指針?biāo)傅奈恢貌⒎蔷褪菙?shù)據(jù)存放 的位置,而是數(shù)據(jù)存放的前一個(gè)位置,比如一開(kāi)始指針是指向 27H 單元的,那么第一個(gè)數(shù)據(jù)的位置是 28H 單元,而不是 27H 單元,為什么會(huì)這樣,我們?cè)趯W(xué)堆棧命令時(shí)再說(shuō)明。 P0、 P P P3:這個(gè)我們已經(jīng)知道,是四個(gè)并行輸 入 /輸出口的寄存器。 ( 4) RS RS0:工作寄存器組選擇位。在做乘、除法時(shí)放乘數(shù)或除數(shù),不做乘除法時(shí),隨你怎么用。從圖中我們可以看出,在 51 單片機(jī)內(nèi)部有 一個(gè) CPU 用來(lái)運(yùn)算、控制,有 四個(gè)并行 I/O 口 ,分別是P0、 P P P3,有 ROM,用來(lái)存放程序,有 RAM,用來(lái)存放中間結(jié)果,此外還有 定時(shí) /計(jì)數(shù)器 , 串行 I/O 口 , 中斷系統(tǒng) ,以及一個(gè) 內(nèi)部的時(shí)鐘電路 。 請(qǐng)注意輸入結(jié)構(gòu)圖,如果將這一根引線作為輸入口使用,我們并不能保證在任何時(shí)刻都能得到正確的結(jié)果(為什么 ?)參考圖 2 輸入示意圖。 P3 口的 P32 位的按鈕被按下,使得 P32 位的電平為低,通過(guò)程序,又使 P12 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者 所有 ) 第 11 頁(yè) 共 68 頁(yè) 口輸出低電平,所以 P3 口起來(lái)了一個(gè)輸入的作用。當(dāng)然用的指令也不一樣了,是用 MOV 指令。實(shí)際上,我們?cè)谏弦淮螌?shí)驗(yàn)的圖中已見(jiàn)到過(guò)了。 練習(xí):設(shè)計(jì)一個(gè)延時(shí) 100 毫秒的延時(shí)程序。這也不難再解,不是嗎?我讓你掃地的執(zhí)行要完成總得比要你完成擦黑板的指令時(shí)間要長(zhǎng)。 我們已知,計(jì)算機(jī)工作時(shí),是一條一條地從 ROM 中取指令,然后一步一步地執(zhí)行,我們規(guī)定:計(jì)算機(jī)訪問(wèn)一次存儲(chǔ)器的時(shí)間,稱之為一個(gè)機(jī)器周期。 二、時(shí)序分析: 前面我們介紹了延時(shí)程序 ,但這還不完善,因?yàn)?,我們只知?DJNZ R6, D2 這句話會(huì)被執(zhí)行 62500次,但是執(zhí)行這么多次需要多長(zhǎng)時(shí)間呢?是否滿足我們的要求呢?我們還不知道,所以下面要來(lái)解決這個(gè)問(wèn)題。 DJNZ:這是另一條指令,我們來(lái)看一下這條指令后面跟著的兩個(gè)東西,一個(gè)是 R6,一個(gè)是D2, R6我們當(dāng)然已知是什么了,查一下 D2是什么。這其中 1552 是我們想要的結(jié)果,而 690 并非我們所要的結(jié)果,但是為了得到最終結(jié)果,我們又不得不先算出 690,并記下來(lái),這其實(shí)是一個(gè)中間結(jié)果,計(jì)算機(jī)中做運(yùn)算和這個(gè)類似,為了要得到最終結(jié)果,往往要做很多步的中間結(jié)果,這些中間結(jié)果要有個(gè)地方放才行,把它們放哪呢?放在前面提到過(guò)的 ROM 中可以嗎?顯然不行,因?yàn)橛?jì)算機(jī)要將結(jié)果寫進(jìn)去,而 ROM 是不可以寫的,所以在單片機(jī)中另有一個(gè)區(qū)域稱為 RAM區(qū)( RAM 是隨機(jī)存取存儲(chǔ)器的英文縮寫),它可以將數(shù)據(jù)寫進(jìn)去。 第二條和第四條指令的用途是延時(shí),它是怎樣實(shí)現(xiàn)的呢?指令的形式是 LCALL,這條指令稱為調(diào)用子程序指令,看一下指令后面跟的是什么, DELAY,找一下 DELAY,在第六條指令的前面,顯然,這也是一個(gè)標(biāo)號(hào)。第二,在執(zhí)行完 CLR P10 后,不會(huì)再 去執(zhí)行 SETB P10指令,所以以后再也沒(méi)有機(jī)會(huì)讓滅了。它里面的內(nèi)容寫上去之后,如果覺(jué)得不滿意,可以用一種特殊的方法去掉后重寫,這就是用紫外線照射,紫外線就象“消字靈”,可以把字去掉,然后再重寫。只讀存 儲(chǔ)器的英文縮寫為 ROM( READ ONLY MEMORY) 所謂隨機(jī)存取存儲(chǔ)器,即隨時(shí)可以改寫,也可以讀出里面的數(shù)據(jù),它類似于我們的黑板,我可以隨時(shí)寫東西上去,也可以用黑板擦擦掉重寫。要將數(shù)據(jù)寫入片中,先選中該片,然后發(fā)出寫信號(hào),開(kāi)關(guān)就合上了,并將傳過(guò)來(lái)的數(shù)據(jù)(電荷)寫入片中。 存儲(chǔ)器譯碼 那么,我們?cè)鯓觼?lái)控制各個(gè)單元 的控制線呢?這個(gè)還不簡(jiǎn)單,把每個(gè)單元元的控制線都引到集成電路的外面不就行了嗎?事情可沒(méi)那么簡(jiǎn)單,一片 27512存儲(chǔ)器中有 65536 個(gè)單元,把每根線都引出來(lái),這個(gè)集成電路就得有 6萬(wàn)多個(gè)腳?不行,怎么辦?要想法減少線的數(shù)量。不要問(wèn)我為什么是 8 根而不是其它數(shù),因?yàn)槲乙膊恢馈,F(xiàn)在放上兩盞燈,一共有幾種狀態(tài)呢?我們列表來(lái)看一下: 狀態(tài) 表達(dá) 0 0 0 1 1 0 1 1 請(qǐng)大家自已寫上 3 盞燈的情況 000 001 010 011 100 101 110 111 我們來(lái)看,這個(gè) 000, 001, 101 不就是我們學(xué)過(guò)的的二進(jìn)制數(shù)嗎?本來(lái),燈的亮和滅只是一種物理現(xiàn)象,可當(dāng)我們把它們按一按的順序排更好后,燈的亮和 滅就代表了數(shù)字了。 我們將編程器與電腦連好,運(yùn)行編程器的軟件,然后在編緝區(qū)內(nèi)寫入( D2H,90H)見(jiàn)圖 2,寫入 …… 好,拿下片子,把片子插入做好的電路板,接通電源 …… 什么 ?燈不亮?這就對(duì)了,因?yàn)槲覀儗?進(jìn) 去的指令就是讓圖 2 P10 輸出高電平,燈當(dāng)然不亮,要是亮就錯(cuò)了。讓一個(gè)引腳輸出高電平的指令是 SETB,讓一個(gè)引腳輸出低電平的指令是 CLR。(見(jiàn)圖 1,其中 R1 是限流電阻) 按照這個(gè)圖的接法,當(dāng) 1 腳是高電平時(shí), LED 不亮,只有 1 腳是低電平 時(shí), LED 才發(fā)亮。 電源:這當(dāng)然是必不可少的了。為什么會(huì)這樣呢? 功能有強(qiáng)弱,打個(gè)比方,市場(chǎng)上面有的組合音響一套才賣幾百塊錢,可是有的一臺(tái)功放機(jī)就要賣好幾千。而在單片機(jī)中,這些部份,全部被做到一塊集成電路芯片中了,所以就稱為單片(單芯片)機(jī),而且有一些單片機(jī)中除了上述部份外,還集成了其它部份如 A/D, D/A等。INTEL 公司將 MCS51 的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以 8051 為核心的單片機(jī),當(dāng)然,功能或多或少有些改變,以滿足不同的需求,其中 89C51 就是這幾年在我國(guó)非常流行的單片機(jī),它是由美國(guó) ATMEL 公司開(kāi)發(fā)生產(chǎn) 的。 EA引腳: EA引腳接到正電源端?;蜃?39。計(jì)算機(jī)能懂什么呢 ?它只懂一樣?xùn)|西 ——數(shù)字。為什么稱它為只讀存儲(chǔ)器呢?剛才我們不是明明把兩個(gè)數(shù)字寫進(jìn)去了嗎?原來(lái)在 89C51中的 ROM是一種電可擦除的 ROM,稱為 FLASH ROM,剛才我們是用的編程器,在特殊的條件下由外部設(shè)備對(duì) ROM進(jìn)行寫的操作,在單片機(jī) 正常工作條件下,只能從那面讀,不能把數(shù)據(jù)寫進(jìn)去,所以我們還是把它稱為 ROM。實(shí)際上這就是一個(gè)二進(jìn)制位,因此我們就把一根線稱之為一“位”,用 BIT 表示。存儲(chǔ)器中的每個(gè)小抽屜就是一個(gè)放數(shù)據(jù)的地方,我們稱之為一個(gè)“單元”。辦法當(dāng)然很簡(jiǎn)單,當(dāng)外面的線接到集成電路的引腳進(jìn)來(lái)后,不直接接到各單元去,中間再加一組開(kāi)關(guān)(參考圖 4)就行了。而十六根地址線也是連在一起的,稱之為地址總線。 PROM,稱之為可編程存儲(chǔ)器。 單片機(jī)教程第四課 : 第一個(gè)小程序 上一次我們的程序?qū)嵲谑菦](méi)什么用,要燈亮還要重寫一下片子,下 面我們要讓燈不斷地閃爍,這就有一定的實(shí)用價(jià)值了,比如可以把它當(dāng)成汽車上的一個(gè)信號(hào)燈用了。第二和第四條實(shí)現(xiàn)的原理稍后談,先看第五條,LJMP 是一條指令,意思是轉(zhuǎn)移,往什么地方轉(zhuǎn)移呢?后面跟的是 LOOP,看一下,什么地方還有 LOOP,對(duì)了,在第一條指令的前面有一個(gè) LOOP,所以很直觀地,我們可以認(rèn)識(shí)到,它要轉(zhuǎn)到第一條指令處。 單片機(jī)內(nèi)部結(jié)構(gòu)分析:為了知道延時(shí)程序是如何工作的,我們必需首先了解延時(shí)程序中出現(xiàn)的一些符號(hào), 就從 R1開(kāi)始, R1 被稱之為工作寄存器。它的意義也很明顯:將數(shù)據(jù) 250 送到 R7 中去,因此執(zhí)行完這條指令后, R7 單元中的值就應(yīng)當(dāng)是 執(zhí)行完了 DJNZ R6, D2 之后(也就是 R6的值等于 0 之后),就會(huì)去執(zhí)行下面一行,也就是 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者 所有 ) 第 9 頁(yè) 共 68 頁(yè) DJNZ R7, D1,請(qǐng)大家自行分析一下這句話執(zhí)行的結(jié)果。一個(gè)由人組成的單位尚且要有一定的時(shí)序,計(jì)算機(jī)當(dāng)然更要有嚴(yán)格的時(shí)序。它的一個(gè)機(jī)器周期是 12*( 1/12)也就是 1 微秒。首先必須要知道晶振的頻率,我們?cè)O(shè)所用晶振為 12M,則一個(gè)機(jī)器周期就是 1 微秒。顯然,準(zhǔn)備工作不需要太長(zhǎng)的時(shí)間,復(fù)位只需要 5ms 的時(shí)間就可以了。事實(shí)上,凡以 P 開(kāi)頭的這 32個(gè)引腳都是可以點(diǎn)亮燈的,也就是說(shuō):這 32 個(gè)引腳都可以作為輸出使用,如果不用來(lái)點(diǎn)亮LED,可以用來(lái)控制繼電器,可以用來(lái)控制其它的執(zhí)行機(jī)構(gòu)。第一條指令的用途我們可以猜到:使 P3 口全部為高電平。這樣就能使這一位的狀態(tài)與別的器件無(wú)關(guān)了,這么一個(gè)小單元,我們給它一個(gè)很形象的名字,稱之為“鎖存器”。看圖()。這是個(gè)什么東西,可不能從名字上理 解,它是一個(gè)寄存器,而不是一個(gè)做加法的東西,為什么給它這么一個(gè)名字呢?或許是因?yàn)樵谶\(yùn)算器做運(yùn)算時(shí)其中一個(gè)數(shù)一定是在 ACC 中的緣故吧。這樣就沒(méi)事了。若為奇數(shù),則 P=1,否則為 0。 在單片機(jī)中,我們也可以在 RAM 中構(gòu)造這樣一個(gè)區(qū)域, 用來(lái)存放數(shù)據(jù),這個(gè)區(qū)域存放數(shù)據(jù)的規(guī)則就是“先進(jìn)后出,后進(jìn)先出”,我們稱之為“堆?!?。 這兩種格式之間的關(guān)系呢,我們不難理解,本質(zhì)上它們完全等價(jià),只是形式不一樣而已。 這條指令中,送給 P1是這個(gè)數(shù)本身,換言之,做完這條指令后,我們可以明確地知道, P1中的值是 0FFH,但是并不是任何時(shí)候都可以直接給出數(shù)本身的。 這么斤斤計(jì)較!不就差了一個(gè)周期嗎,如果是 12M的晶振的話,也就 1個(gè)微秒時(shí)間了,一個(gè)字節(jié)又能有多少? 不對(duì),如果這條指令只執(zhí)行一次,也許無(wú)所謂,但一條指令如果執(zhí)行上 1000次,就是 1毫秒,如果要執(zhí)行 1000000 萬(wàn)次,就是 1S的誤差,這就很可觀了,單片機(jī)做的是實(shí)時(shí)控制的事,所以必須如此 “斤斤計(jì)較 ”。第二句是將立即數(shù) 30H送入 R0工作寄存器中,所以執(zhí)行完后, R0單元中的值是 30H
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1