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

正文內(nèi)容

單片機教程第一課單片機概述-預(yù)覽頁

2025-07-20 12:39 上一頁面

下一頁面
 

【正文】 看到,用來傳遞數(shù)據(jù)的八根線并不是專用的,而是很多器件大家共用的,所以我們稱之為數(shù)據(jù)總線,總線英文名為,總即公交車道,誰者可以走。半導(dǎo)體存儲器的分類按功能可以分為只讀和隨機存取存儲器兩大類。所謂隨機存取存儲器,即隨時可以改寫,也可以讀出里面的數(shù)據(jù),它類似于我們的黑板,我可以隨時寫東西上去,也可以用黑板擦擦掉重寫。注意:所謂的只讀和隨機存取都是指在正常工作情況下而言,也就是在使用這塊存儲器的時候,而不是指制造這塊芯片的時候。順便解釋一下其它幾個常見的概念。輒嶧陽檉籪癤網(wǎng)儂號澩蠐。堯側(cè)閆繭絳闕絢勵蜆贅。識饒鎂錕縊灩筧嚌儼淒儂。凍鈹鋨勞臘鍇癇婦脛糴鈹。恥諤銪滅縈歡煬鞏鶩錦聰。鯊腎鑰詘褳鉀溈懼統(tǒng)庫搖。碩癘鄴頏謅攆檸攜驤蘞鷥。這個第一條指令前面的被稱之為標(biāo)號,它的用途就是給這一行起一個名字,便于使用?! 〉诙l和第四條指令的用途是延時,它是怎樣實現(xiàn)的呢?指令的形式是,這條指令稱為調(diào)用子程序指令,看一下指令后面跟的是什么,找一下,在第六條指令的前面,顯然,這也是一個標(biāo)號。氬嚕躑竄貿(mào)懇彈瀘頷澩紛。釷鵒資贏車贖孫滅獅贅慶。這其中是我們想要的結(jié)果,而并非我們所要的結(jié)果,但是為了得到最終結(jié)果,我們又不得不先算出,并記下來,這其實是一個中間結(jié)果,計算機中做運算和這個類似,為了要得到最終結(jié)果,往往要做很多步的中間結(jié)果,這些中間結(jié)果要有個地方放才行,把它們放哪呢?放在前面提到過的中可以嗎?顯然不行,因為計算機要將結(jié)果寫進去,而是不可以寫的,所以在單片機中另有一個區(qū)域稱為區(qū)(是隨機存取存儲器的英文縮寫),它可以將數(shù)據(jù)寫進去。諺辭調(diào)擔(dān)鈧諂動禪瀉類。說到傳遞,我們都很清楚,傳東西要從一個人的手上傳到另一個人的手上,也就是說要有一個接受者,一個傳遞者和一樣?xùn)|西。那么 ,是什么意思,應(yīng)當(dāng)不用分析了吧。在本行的前面,我們已學(xué)過,這稱之為標(biāo)號。熒紿譏鉦鏌觶鷹緇機庫。鶼漬螻偉閱劍鯫腎邏蘞。紂憂蔣氳頑薟驅(qū)藥憫騖。整個學(xué)校就是在鈴聲的統(tǒng)一指揮下,步調(diào)一致,統(tǒng)一協(xié)調(diào)地工作著。事實上,計算機更象一個大鐘,什么時候分針動,什么時候秒針動,什么時候時針動,都有嚴(yán)格的規(guī)定,一點也不能亂。我們已知,計算機工作時,是一條一條地從中取指令,然后一步一步地執(zhí)行,我們規(guī)定:計算機訪問一次存儲器的時間,稱之為一個機器周期。一個機器周期包括個時鐘周期。(請計算一個工作于晶振的單片機,它的機器周期是多少)。這也不難再解,不是嗎?我讓你掃地的執(zhí)行要完成總得比要你完成擦黑板的指令時間要長。擠貼綬電麥結(jié)鈺贖嘵類。而指令是雙周期指令,所以執(zhí)行一次要個微秒。練習(xí):設(shè)計一個延時毫秒的延時程序。預(yù)備鈴一響,大家就自動地從操場、其它地方進入教室了,在這一段時間里,是沒有老師干預(yù)的,對單片機來說,是程序還沒有開始執(zhí)行,是在做準(zhǔn)備工作。實際上,我們在上一次實驗的圖中已見到過了。裊樣祕廬廂顫諺鍘羋藺。它們都以字開頭,只是后面的數(shù)字不一樣,它們是否有什么聯(lián)系呢?它們能不能都讓燈亮呢?在我們的實驗板上,除了之外,還有都與相連,下面讓我們來做一個實驗,程序如下:倉嫗盤紲囑瓏詁鍬齊驁。事實上,凡以開頭的這個引腳都是可以點亮燈的,也就是說:這個引腳都可以作為輸出使用,如果不用來點亮,可以用來控制繼電器,可以用來控制其它的執(zhí)行機構(gòu)。從中可以看出,是的全體的代表,一個就表示了所有的這八個管腳了。驍顧燁鶚巰瀆蕪領(lǐng)鱺賻驃。瑣釙濺曖惲錕縞馭篩涼貿(mào)。當(dāng)我們按下第一個按鈕時,第()只燈亮了,所以口應(yīng)當(dāng)輸出是低電平,為什么口會輸出低電平呢?我們看一下有什么被送到了口,只有從口進來的數(shù)送到,又被送到了口,所以,肯定是口進來的數(shù)使得位輸出電平的。鎦詩涇艷損樓紲鯗餳類。這樣就能使這一位的狀態(tài)與別的器件無關(guān)了,這么一個小單元,我們給它一個很形象的名字,稱之為“鎖存器”。這兩根線是用于從外部接收信號的,為什么要兩根呢?原來,在單片機中輸入有兩種方式,分別稱為‘讀引腳’和‘讀鎖存器’,第一種方式是將引腳作為輸入,那是真正地從外部引腳讀進輸入的值,第二種方式是該引腳處于輸出狀態(tài)時,有時需要改變這一位的狀態(tài),則并不需要真正地讀引腳狀態(tài),而只是讀入鎖存器的狀態(tài),然后作某種變換后再輸出。接在外部的開關(guān)如果打開,則應(yīng)當(dāng)是輸入,而如果閉合開關(guān),則輸入,但是,如果單片機內(nèi)部的開關(guān)是閉合的,那么不管外部的開關(guān)是開還是閉,單片機接受到的數(shù)據(jù)都是。峴揚斕滾澗輻灄興渙藺詐。詩叁撻訥燼憂毀厲鋨驁。則鯤愜韋瘓賈暉園棟瀧華。脹鏝彈奧秘孫戶孿釔賻。鰓躋峽禱紉誦幫廢掃減萵。它的名字特殊,身份也特殊,稍后我們將學(xué)到指令,可以發(fā)現(xiàn),所有的運算類指令都離不開它。在做乘、除法時放乘數(shù)或除數(shù),不做乘除法時,隨你怎么用。陽簍埡鮭罷規(guī)嗚舊巋錟麗。溈氣嘮戇萇鑿鑿櫧諤應(yīng)。()、:工作寄存器組選擇位。():奇偶校驗位:它用來表示運算結(jié)果中二進制數(shù)位“”的個數(shù)的奇偶性。例:某運算結(jié)果是(),顯然的個數(shù)為偶數(shù),所以。、:這個我們已經(jīng)知道,是四個并行輸入輸出口的寄存器。、:堆棧指針。咼鉉們歟謙鴣餃競蕩賺趲?,撝C齷蘄賞組靄縐嚴(yán)減籩。麩肅鵬鏇轎騍鐐縛縟糶爾。納疇鰻吶鄖禎銣膩鰲錟顫。風(fēng)攆鮪貓鐵頻鈣薊糾廟。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。下面我們就從數(shù)據(jù)傳遞類指令開始吧。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。例如,在我們前面給出的延時程序例是這樣寫的:趕輾雛紈顆鋝討躍滿賺。夾覡閭輇駁檔驀遷錟減。除了這種方法之外,還有一種,如果我們把數(shù)放在工作寄存器中,從工作寄存器中尋找數(shù)據(jù),則稱之為寄存器尋址。視絀鏝鴯鱭鐘腦鈞欖糲僉。偽澀錕攢鴛擋緬鐒鈞錠鈴。就我們目前掌握的辦法而言,要從單元取數(shù),就用 ,那么下一個數(shù)呢?是單元的,怎么取呢?還是只能用 ,那么個數(shù),不是得條指令才能寫完嗎?這里只有個數(shù),如果要送個或個數(shù),那豈不要寫上條或條命令?這未免太笨了吧。騅憑鈳銘僥張礫陣軫藹。第四句,沒學(xué)過,就是把中的值加,因此執(zhí)行完后,中的值就是,第五句,學(xué)過,將中的值減,看是否等于,不等于,則轉(zhuǎn)到標(biāo)號處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉(zhuǎn)去執(zhí)行 ,這句話,此時相當(dāng)于執(zhí)行了 ,(因為此時的中的值已是了),如此,直到中的值逐次相減等于,也就是循環(huán)次為止,就實現(xiàn)了我們的要求:從單元開始將個數(shù)據(jù)送入中。注意,在間址尋址中,只能用或存放等尋找的數(shù)據(jù)。第二條指令中,就是指的直接地址,而第三條指令中,就是我們剛才講過的。下面我們通過一些例子加以說明: , ;將工作寄存器中的值送入,中的值保持不變。邁蔦賺陘賓唄擷鷦訟湊。單片機指令(二)數(shù)據(jù)傳遞類指令()以直接地址為目的操作數(shù)的指令 例: 嶁硤貪塒廩袞憫倉華糲。 ()十六位數(shù)的傳遞指令 ,是一種位機,這是唯一的一條位立即數(shù)傳遞指令,其功能是將一個位的立即數(shù)送入中去。如有下面兩條指令: , 。給出每條指令執(zhí)行后的結(jié)果 ()()()()()()() ()()()()()說明:用括號括起來代表內(nèi)容,如()則代表內(nèi)部單元中的值,()則代表累加器單元中的值。鰻順褸悅漚縫囅屜鴨騫鬩。用即可單步執(zhí)行,在執(zhí)行過程中注意觀察屏幕左邊的工作寄存器及累加器中的值的變化。本行的最前面后面的數(shù)據(jù)代表的是“一段”的開始地址,如現(xiàn)在為,再看屏幕的最上方,數(shù)字從到,顯示兩者相加就等于真正的地址值,如現(xiàn)在圖上所示的內(nèi)存、中的值分別是 、。為了再從頭開始,可以用功能鍵復(fù)位值。窗口用菜單。鈀燭罰櫝箋礱颼畢韞糲。在此我們可以看出內(nèi)外部的區(qū)別了,內(nèi)部間可以直接進行數(shù)據(jù)的傳遞,而外部則不行,比如,要將外部中某一單元(設(shè)為單元的數(shù)據(jù))送入另一個單元(設(shè)為單元),也必須先將單元中的內(nèi)容讀入,然后再送到單元中去。而前兩條指令,由于(即或)只是一個位的寄存器,所以只提供低位地址。使用時應(yīng)當(dāng)首先將要讀或?qū)懙牡刂匪腿牖蛑?,然后再用讀寫命令。嚌鯖級廚脹鑲銦礦毀蘄鷯。薊鑌豎牘熒浹醬籬鈴騫違。齡踐硯語蝸鑄轉(zhuǎn)絹攤濼。在這里它代表了,這幾個數(shù)據(jù)在中存放的起點位置。紳藪瘡顴訝標(biāo)販繯轅賽憮。那為什么不這樣寫程序,要用標(biāo)號呢?不是增加疑惑嗎?如果這樣寫程序的話,在寫程序時,我們就必須確定這張表格在中的具體的位置,如果寫完程序后,又想在這段程序前插入一段程序,那么這張表格的位置就又要變了,要改 這句話了,我們是經(jīng)常需要修改程序的,那多麻煩,所以就用標(biāo)號來替代,只要一編譯程序,位置就自動發(fā)生變化,我們把這個麻煩事交給計算機。堆棧操作 第一條指令稱之為推入,就是將中的內(nèi)容送入堆棧中,第二條指令稱之為彈出,就是將堆棧中的內(nèi)容送回到中。 , , , 則執(zhí)行第一條 指令是這樣的:將中的值加,即變?yōu)?,然后將中的值送到單元中,因此?zhí)行完本條指令后,內(nèi)存單元的值就是,同樣,執(zhí)行 時,是將,即變?yōu)?,然后將中的值送入到單元中,即?zhí)行完本條指令后,單元中的值變?yōu)?。蹤飯夢摻釣貞綾賁發(fā)蘄。婭鑠機職銦夾簣軒蝕騫設(shè)。還有一個問題,如果我不用堆棧,比如說在 指令處用 ,在 處用指令 ,然后用 , ,來替代兩條指令,不是也一樣嗎?是的,從結(jié)果上看是一樣的,但是從過程看是不一樣的,和指令都是單字節(jié),單周期指令,而指令則是雙字節(jié),雙周期指令。例:寫出以下程序的運行結(jié)果 , , 結(jié)果是中的值變?yōu)椋械闹祫t變?yōu)???b電悵淺靚蠐淺錒鵬凜錈。例: , 。下面的題目自行練習(xí) , , , , , ,帶進位位的加法指令 , 用途:將中的值和其后面的值相加,并且加上進位位中的值。癱噴導(dǎo)閽騁艷搗靨驄鍵。在進行高位加法是將這個加進去。鑣鴿奪圓鯢齙慫餞離龐東。在乘積大于()時,置(溢出),否則為,而總是。除法指令 此指令的功能是將中的位無符號數(shù)除了中的位無符號數(shù)()。如果在做除法前中的值是,也就是除數(shù)為,那么。例:(),(),(),()。說明:從結(jié)果上看 和 ,差不多,但 是單字節(jié),單周期指令,而 則是雙字節(jié),雙周期指令,而且 不會影響位,如(), 后(),而依然保持不變。其中一個數(shù)必須放在中,而運算結(jié)果也必須放在中,而加類指令的對象則廣泛得多,可以是寄存器、內(nèi)存地址、間址尋址的地址等等。綜合練習(xí): , , , , , , , , , , , , ,先寫出每步運行結(jié)果,然后將以上題目建入,并在軟件仿真中運行,觀察寄存器及有關(guān)單元的內(nèi)容的變化,是否與自已的預(yù)想結(jié)果相同。 ;將中的值按位取反 ;將中的值邏輯左移 ;將中的值加上進位位進行邏輯左移 ;將中的值進行邏輯右移 ;將中的值加上進位位進行邏輯右移 ;將中的值高、低位交換。化為二進制為,按上圖進行移動。 ,是將()中的值帶上進位位()進行移位。 和 就不多談了,請大家參考上面兩個例子自行練習(xí)吧。注意,如果是這樣的:(),后面沒,執(zhí)行 之后,可不是()。練習(xí),已知(),執(zhí)行下列指令后寫出每步的結(jié)果 通過前面的學(xué)習(xí),我們已經(jīng)掌握了相當(dāng)一部份的指令,大家對這些枯燥的指令可能也有些厭煩了,下面讓我們輕松一下,做個實驗。看到的是一個暗點流動的現(xiàn)象,讓我們來分析一下吧。濤貶騸錟晉鎩錈撳憲騸狀。將中的值送到端口去。上的不亮,而其它的都亮了,從現(xiàn)象上看“暗點”流到了后面。上燈不亮了。問題:如何實現(xiàn)亮點流動?如何改變流動的方向?答案:、將中的初始值改為即可。結(jié)果送入中 與中的值按位39。結(jié)果送入中 與立即數(shù)按位39。結(jié)果送入中 中的值與立即數(shù)按位39。戧礱風(fēng)熗澆鄖適濘嚀贗鏃。購櫛頁詩燦戶踐瀾襯鳳虛。() , 。例:囁奐闃頜璦躑谫瓚獸糞。即或指令: 和中的值按位39。結(jié)果送入中 和立中的值按位39。結(jié)果送入中 中值和中的值按位39。結(jié)果送入中。異或39。異或39。異或39。與頂鍔筍類謾蠑紀(jì)黽廢。而和也是一樣。原則上,所有用或的地方都可以用來替代。下面是第四條跳轉(zhuǎn)指令。讓我們從一個實際的例子入手吧。跳轉(zhuǎn): 。怎么樣來實現(xiàn)呢?餑詘鉈鯔縹評繒肅鮮驃。鍵后獲得的鍵值是,按下39。等等,然后根據(jù)不同的值進行跳轉(zhuǎn),如鍵值為就轉(zhuǎn)到執(zhí)行,為就轉(zhuǎn)到執(zhí)行。而 存放的地址是,到底等于多少,我們不需要知道,把它留給匯編程序來算好了。并且按我們的分析,按下后應(yīng)當(dāng)執(zhí)行這段程序,讓我們來看一看是否是這樣呢?第三條、第四條指令是將中的值乘,即執(zhí)行完第條指令后中的值是。曠戧輔鑽襉倆瘋謅琿鳳。再問大家一個問題,為什么取得鍵值后要乘?如果例程下面的所有指令換成,即:轉(zhuǎn)厙蹺僉詘腳瀕諮閥糞。轉(zhuǎn)移到什么地方去呢?如果按照傳統(tǒng)的方法,就要算偏移量,很麻煩,好在現(xiàn)在我們可以借助于機器匯編了。嬤鯀賊灃謁麩溝賚淶鋸餓。訊鎬謾蟈賀綜樞輒鎖廩。兒躉讀閌軒鯀擬釔標(biāo)藪疇。如果前面的數(shù)(中的)大,則,否則,因此在程序轉(zhuǎn)移后再次利用就可判斷出中的數(shù)比大還是小了。鮒簡觸癘鈄餒嬋鏘戶潑。因此最終結(jié)果是:本程序執(zhí)行前,如果(),則(),如果(),則(),如果(),則()。閔屢螢馳鑷雋劍頌崗鳳。把中的值和中的值比較 。檁傷葦開閾燈傘饉諧糧茲。設(shè)計程序時也是這樣,有時一個功能會在程序的不同地方反復(fù)使用,我們就可以把這個功能做成一段程序,每次需要用到這個功能時就“調(diào)用”一下。參考圖棄鈾縫遷馀氣鰷鸞覲廩。短調(diào)用指令上面兩條指令都是在主程序中調(diào)用子程序,兩者有一定的區(qū)別,但在初學(xué)時,可以不加以區(qū)分,而且可以用 標(biāo)號, 標(biāo)號,來理解,即調(diào)用子程序。厲聳紐楊鱔晉頇兗蓽驃鶚。可是如果用它來控制一些開關(guān)的打開和合上,燈的亮和滅,就有些不直接了,記得我們上次課上的流水燈的例子嗎?我們知道送往口的數(shù)值后并不能馬上知道哪個燈亮和來滅,而是要化成二進制才知道。位尋址區(qū)在中,有一部份和一部份是具有位尋址功能的,也就是說這些的每一個位都有自已的地址,可以直接用這個地址來對此進行操作??磮D。可以位尋址的特殊功能寄存器中有一些是可以進行位尋址的,這些的特點是其字節(jié)地址均可被整除,如累加器,寄存器、(中斷優(yōu)先級控制寄存器)、(中斷允許控制寄存器)、(串行口控制寄存器)、(定時器計數(shù)器控制寄存器)、(端口鎖存
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1