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

正文內(nèi)容

單片機(jī)教程第一課單片機(jī)概述(編輯修改稿)

2025-07-23 12:39 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 形象的名字,稱之為“鎖存器”。櫛緶歐鋤棗鈕種鵑瑤錟。櫛緶歐鋤棗鈕種鵑瑤錟奧。、輸入結(jié)構(gòu)這是并行口的一位的輸出結(jié)構(gòu)示意圖,再看,除了輸出之外,還有兩根線,一根從外部引腳接入,另一根從鎖存器的輸出接出,分別標(biāo)明讀引腳和讀鎖存器。這兩根線是用于從外部接收信號(hào)的,為什么要兩根呢?原來,在單片機(jī)中輸入有兩種方式,分別稱為‘讀引腳’和‘讀鎖存器’,第一種方式是將引腳作為輸入,那是真正地從外部引腳讀進(jìn)輸入的值,第二種方式是該引腳處于輸出狀態(tài)時(shí),有時(shí)需要改變這一位的狀態(tài),則并不需要真正地讀引腳狀態(tài),而只是讀入鎖存器的狀態(tài),然后作某種變換后再輸出。轡燁棟剛殮攬瑤麗鬮應(yīng)。轡燁棟剛殮攬瑤麗鬮應(yīng)頁。請(qǐng)注意輸入結(jié)構(gòu)圖,如果將這一根引線作為輸入口使用,我們并不能保證在任何時(shí)刻都能得到正確的結(jié)果(為什么?)參考圖輸入示意圖。接在外部的開關(guān)如果打開,則應(yīng)當(dāng)是輸入,而如果閉合開關(guān),則輸入,但是,如果單片機(jī)內(nèi)部的開關(guān)是閉合的,那么不管外部的開關(guān)是開還是閉,單片機(jī)接受到的數(shù)據(jù)都是。可見,要讓這一端口作為輸入使用,要先做一個(gè)‘準(zhǔn)備工作’,就是先讓內(nèi)部的開關(guān)斷開,也就是讓端口輸出‘’才行。正因?yàn)橐茸鲞@么一個(gè)準(zhǔn)備工作,所以我們稱之為“準(zhǔn)雙向口”。峴揚(yáng)斕滾澗輻灄興渙藺。峴揚(yáng)斕滾澗輻灄興渙藺詐。以上是口的一位的結(jié)構(gòu),口其它各位的結(jié)構(gòu)與之相同,而其它三個(gè)口:、則除入作為輸入輸出口之外還有其它用途,所以結(jié)構(gòu)要稍復(fù)雜一些,但其用于輸入、輸出的結(jié)構(gòu)是相同的??磮D()。對(duì)我們來說,這些附加的功能不必由我們來控制,所以我們就不去關(guān)心它了。詩叁撻訥燼憂毀厲鋨驁。詩叁撻訥燼憂毀厲鋨驁靈。單片機(jī)教程第七課:?jiǎn)纹瑱C(jī)內(nèi)部結(jié)構(gòu)分析(五)通過前面的學(xué)習(xí),我們已知單片機(jī)的內(nèi)部有、有、有并行口,那么,除了這些東西之外,單片機(jī)內(nèi)部究竟還有些什么,這些個(gè)零碎的東西怎么連在一起的,讓我們來對(duì)單片機(jī)內(nèi)部作一個(gè)完整的分析吧!則鯤愜韋瘓賈暉園棟瀧。則鯤愜韋瘓賈暉園棟瀧華??磮D()(本圖太大,請(qǐng)大家找本書看吧,一般講單片機(jī)的書,隨便哪本都有)。從圖中我們可以看出,在單片機(jī)內(nèi)部有一個(gè)用來運(yùn)算、控制,有四個(gè)并行口,分別是、有,用來存放程序,有,用來存放中間結(jié)果,此外還有定時(shí)計(jì)數(shù)器,串行口,中斷系統(tǒng),以及一個(gè)內(nèi)部的時(shí)鐘電路。在一個(gè)單片機(jī)的內(nèi)部包含了這么多的東西。脹鏝彈奧秘孫戶孿釔賻。脹鏝彈奧秘孫戶孿釔賻鏘。對(duì)上面的圖進(jìn)行進(jìn)一步的分析,我們已知,對(duì)并行口的讀寫只要將數(shù)據(jù)送入到相應(yīng)口的鎖存器就可以了,那么對(duì)于定時(shí)計(jì)數(shù)器,串行口等怎么用呢?在單片機(jī)中有一些獨(dú)立的存儲(chǔ)單元是用來控制這些器件的,被稱之為特殊功能寄存器()。事實(shí)上,我們已接觸過這個(gè)特殊功能寄存器了,還有哪些呢?看表鰓躋峽禱紉誦幫廢掃減。鰓躋峽禱紉誦幫廢掃減萵。符號(hào)地址功能介紹 寄存器 累加器 程序狀態(tài)字 中斷優(yōu)先級(jí)控制寄存器 口鎖存器 中斷允許控制寄存器 口鎖存器 串行口鎖存器 串行口控制寄存器 口鎖存器 定時(shí)器計(jì)數(shù)器(高位) 定時(shí)器計(jì)數(shù)器(低位) 定時(shí)器計(jì)數(shù)器(高位) 定時(shí)器計(jì)數(shù)器(低位) 定時(shí)器計(jì)數(shù)器方式控制寄存器 定時(shí)器計(jì)數(shù)器控制寄存器 數(shù)據(jù)地址指針(高位) 數(shù)據(jù)地址指針(低位) 堆棧指針 口鎖存器 電源控制寄存器表 下面,我們介紹一下幾個(gè)常用的,看圖。、:累加器,通常用表示。這是個(gè)什么東西,可不能從名字上理解,它是一個(gè)寄存器,而不是一個(gè)做加法的東西,為什么給它這么一個(gè)名字呢?或許是因?yàn)樵谶\(yùn)算器做運(yùn)算時(shí)其中一個(gè)數(shù)一定是在中的緣故吧。它的名字特殊,身份也特殊,稍后我們將學(xué)到指令,可以發(fā)現(xiàn),所有的運(yùn)算類指令都離不開它。稟虛嬪賑維嚌妝擴(kuò)踴糶。稟虛嬪賑維嚌妝擴(kuò)踴糶欏。、:一個(gè)寄存器。在做乘、除法時(shí)放乘數(shù)或除數(shù),不做乘除法時(shí),隨你怎么用。、:程序狀態(tài)字。這是一個(gè)很重要的東西,里面放了工作時(shí)的很多狀態(tài),借此,我們可以了解的當(dāng)前狀態(tài),并作出相應(yīng)的處理。它的各位功能請(qǐng)看表陽簍埡鮭罷規(guī)嗚舊巋錟。陽簍埡鮭罷規(guī)嗚舊巋錟麗。表 下面我們逐一介紹各位的用途():進(jìn)位標(biāo)志。中的運(yùn)算器是一種位的運(yùn)算器,我們知道,位運(yùn)算器只能表示到,如果做加法的話,兩數(shù)相加可能會(huì)超過,這樣最高位就會(huì)丟失,造成運(yùn)算的錯(cuò)誤,怎么辦?最高位就進(jìn)到這里來。這樣就沒事了。溈氣嘮戇萇鑿鑿櫧諤應(yīng)。溈氣嘮戇萇鑿鑿櫧諤應(yīng)釵。例:()():半進(jìn)位標(biāo)志。例:()():用戶標(biāo)志位,由我們(編程人員)決定什么時(shí)候用,什么時(shí)候不用。()、:工作寄存器組選擇位。這個(gè)我們已知了。():溢出標(biāo)志位。什么是溢出我們稍后再談吧。():奇偶校驗(yàn)位:它用來表示運(yùn)算結(jié)果中二進(jìn)制數(shù)位“”的個(gè)數(shù)的奇偶性。若為奇數(shù),則,否則為。鋇嵐縣緱虜榮產(chǎn)濤團(tuán)藺。鋇嵐縣緱虜榮產(chǎn)濤團(tuán)藺締。例:某運(yùn)算結(jié)果是(),顯然的個(gè)數(shù)為偶數(shù),所以。、(、):數(shù)據(jù)指針,可以用它來訪問外部數(shù)據(jù)存儲(chǔ)器中的任一單元,如果不用,也可以作為通用寄存器來用,由我們自已決定如何使用。懨俠劑鈍觸樂鷴燼觶騮。懨俠劑鈍觸樂鷴燼觶騮揚(yáng)。、:這個(gè)我們已經(jīng)知道,是四個(gè)并行輸入輸出口的寄存器。它里面的內(nèi)容對(duì)應(yīng)著管腳的輸出。謾飽兗爭(zhēng)詣繚鮐癩別瀘。謾飽兗爭(zhēng)詣繚鮐癩別瀘鯽。、:堆棧指針。堆棧介紹:日常生活中,我們都注意到過這樣的現(xiàn)象,家里洗的碗,一只一只摞起來,最晚放上去的放在最上面,而最早放上去的則放在最下面,在取的時(shí)候正好相反,先從最上面取,這種現(xiàn)象我們用一句話來概括:“先進(jìn)后出,后進(jìn)先出”。請(qǐng)大家想想,還有什么地方有這種現(xiàn)象?其實(shí)比比皆是,建筑工地上堆放的磚頭、材料,倉庫里放的貨物,都是“先進(jìn)后出,后進(jìn)先出”,這實(shí)際是一種存取物品的規(guī)則,我們稱之為“堆棧”。咼鉉們歟謙鴣餃競(jìng)蕩賺。咼鉉們歟謙鴣餃競(jìng)蕩賺趲。在單片機(jī)中,我們也可以在中構(gòu)造這樣一個(gè)區(qū)域,用來存放數(shù)據(jù),這個(gè)區(qū)域存放數(shù)據(jù)的規(guī)則就是“先進(jìn)后出,后進(jìn)先出”,我們稱之為“堆棧”。為什么需要這樣來存放數(shù)據(jù)呢?存儲(chǔ)器本身不是可以按地址來存放數(shù)據(jù)嗎?對(duì),知道了地址的確就可以知道里面的內(nèi)容,但如果我們需要存放的是一批數(shù)據(jù),每一個(gè)數(shù)據(jù)都需要知道地址那不是麻煩嗎?如果我們讓數(shù)據(jù)一個(gè)接一個(gè)地放置,那么我們只要知道第一個(gè)數(shù)據(jù)所在地址單元就可以了(看圖)如果第一個(gè)數(shù)據(jù)在,那么第二、三個(gè)就在、了。所以利用堆棧這種方法來放數(shù)據(jù)可以簡(jiǎn)化操作瑩諧齷蘄賞組靄縐嚴(yán)減?,撝C齷蘄賞組靄縐嚴(yán)減籩。那么中堆棧什么地方呢?單片機(jī)中能存放數(shù)據(jù)的區(qū)域有限,我們不能夠?qū)iT分配一塊地方做堆棧,所以就在內(nèi)存()中開辟一塊地方,用于堆棧,但是用內(nèi)存的哪一塊呢?還是不好定,因?yàn)槭且环N通用的單片機(jī),各人的實(shí)際需求各不相同,有人需要多一些堆棧,而有人則不需要那么多,所以怎么分配都不合適,怎樣來解決這個(gè)問題?分不好干脆就不分了,把分的權(quán)利給用戶(編程者),根據(jù)自已的需要去定吧,所以單片機(jī)中堆棧的位置是可以變化的。而這種變化就體現(xiàn)在中值的變化,看圖,中的值等于不就相當(dāng)于是一個(gè)指針指向單元嗎?當(dāng)然在真正的機(jī)中,開始指針?biāo)傅奈恢貌⒎蔷褪菙?shù)據(jù)存放的位置,而是數(shù)據(jù)存放的前一個(gè)位置,比如一開始指針是指向單元的,那么第一個(gè)數(shù)據(jù)的位置是單元,而不是單元,為什么會(huì)這樣,我們?cè)趯W(xué)堆棧命令時(shí)再說明。麩肅鵬鏇轎騍鐐縛縟糶。麩肅鵬鏇轎騍鐐縛縟糶爾。其它的,我們?cè)谟玫綍r(shí)再介紹。單片機(jī)第八課(尋址方式與指令系統(tǒng))通過前面的學(xué)習(xí),我們已經(jīng)了解了單片機(jī)內(nèi)部的結(jié)構(gòu),并且也已經(jīng)知道,要控制單片機(jī),讓它為我們干學(xué),要用指令,我們已學(xué)了幾條指令,但很零散,從現(xiàn)在開始,我們將要系統(tǒng)地學(xué)習(xí)的指令部份。納疇鰻吶鄖禎銣膩鰲錟。納疇鰻吶鄖禎銣膩鰲錟顫。一、概述、指令的格式我們已知,要讓計(jì)算機(jī)做事,就得給計(jì)算機(jī)以指令,并且我們已知,計(jì)算機(jī)很“笨”,只能懂得數(shù)字,如前面我們寫進(jìn)機(jī)器的,等等,所以指令的第一種格式就是機(jī)器碼格式,也說是數(shù)字的形式。但這種形式實(shí)在是為難我們?nèi)肆?,太難記了,于是有另一種格式,助記符格式,如 ,這樣就好記了。這兩種格式之間的關(guān)系呢,我們不難理解,本質(zhì)上它們完全等價(jià),只是形式不一樣而已。風(fēng)攆鮪貓鐵頻鈣薊糾廟。風(fēng)攆鮪貓鐵頻鈣薊糾廟誑。、匯編我們寫指令使用匯編格式,而計(jì)算機(jī)只懂機(jī)器碼格式,所以要將我們寫的匯編格式的指令轉(zhuǎn)換為機(jī)器碼格式,這種轉(zhuǎn)換有兩種方法:手工匯編和機(jī)器匯編。手工匯編實(shí)際上就是查表,因?yàn)檫@兩種格式純粹是格式不同,所以是一一對(duì)應(yīng)的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計(jì)算機(jī)軟件,用計(jì)算機(jī)軟件來替代手工查表,這就是機(jī)器匯編。滅噯駭諗鋅獵輛覯餿藹。滅噯駭諗鋅獵輛覯餿藹猙。二、尋址讓我們先來復(fù)習(xí)一下我們學(xué)過的一些指令: , ,這些指令都是將一些數(shù)據(jù)送到相應(yīng)的位置中去,為什么要送數(shù)據(jù)呢?第一個(gè)因?yàn)樗腿氲臄?shù)可以讓燈全滅掉,第二個(gè)是為了要實(shí)現(xiàn)延時(shí),從這里我們可以看出來,在用單片機(jī)的編程語言編程時(shí),經(jīng)常要用到數(shù)據(jù)的傳遞,事實(shí)上數(shù)據(jù)傳遞是單片機(jī)編程時(shí)的一項(xiàng)重要工作,一共有條指令(單片機(jī)共條指令)。下面我們就從數(shù)據(jù)傳遞類指令開始吧。鐒鸝餉飾鐔閌貲諢癱騮。鐒鸝餉飾鐔閌貲諢癱騮吶。分析一下 ,這條指令,我們不難得出結(jié)論,第一個(gè)詞是命令動(dòng)詞,也就是決定做什么事情的,是少寫了一個(gè),所以就是“傳遞”,這就是指令,規(guī)定做什么事情,后面還有一些參數(shù),分析一下,數(shù)據(jù)傳遞必須要有一個(gè)“源”也就是你要送什么數(shù),必須要有一個(gè)“目的”,也就是你這個(gè)數(shù)要送到什么地方去,顯然在上面那條指令中,要送的數(shù)(源)就是,而要送達(dá)的地方(目的地)就是這個(gè)寄存器。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。攙閿頻嶸陣澇諗譴隴瀘。攙閿頻嶸陣澇諗譴隴瀘鐙。這條指令中,送給是這個(gè)數(shù)本身,換言之,做完這條指令后,我們可以明確地知道,中的值是,但是并不是任何時(shí)候都可以直接給出數(shù)本身的。例如,在我們前面給出的延時(shí)程序例是這樣寫的:趕輾雛紈顆鋝討躍滿賺。趕輾雛紈顆鋝討躍滿賺蜆。:     ;(1) ;(2) ;(3) ;(4) ;(5);以下子程序: ,;(6): , ;(7): , ;(8) ,;(9) ;(10) ;(11)表 :    ??;(1) , ; ;(3) ;(4) ;(5);以下子程序: ,;(6): , ;(7): , ;(8) ,;(9) ;(10) ;(11) 這樣一來,我每次調(diào)用延時(shí)程序延時(shí)的時(shí)間都是相同的(大致都是),如果我提出這樣的要求:燈亮后延時(shí)時(shí)間為燈滅,燈滅后延時(shí)秒燈亮,如此循環(huán),這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時(shí)程序改成這樣(見表):調(diào)用則見表中的主程,也就是先把一個(gè)數(shù)送入,在子程序中中的值并不固定,而是根據(jù)單元中傳過來的數(shù)確定。這樣就可以滿足要求。夾覡閭輇駁檔驀遷錟減。夾覡閭輇駁檔驀遷錟減汆。從這里我們可以得出結(jié)論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時(shí)候,這個(gè)數(shù)并不能直接給出,需要變化,這就引出了一個(gè)概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。在這里我們直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數(shù)放在工作寄存器中,從工作寄存器中尋找數(shù)據(jù),則稱之為寄存器尋址。例: ,就是將工作寄存器中的數(shù)據(jù)送到累加器中去。提一個(gè)問題:我們知道,工作寄存器就是內(nèi)存單元的一部份,如果我們選擇工作寄存器組,則就是的單元,那么這樣一來, ,和 ,不就沒什么區(qū)別了嗎?為什么要加以區(qū)分呢?的確,這兩條指令執(zhí)行的結(jié)果是完全相同的,都是將單元中的內(nèi)容送到中去,但是執(zhí)行的過程不同,執(zhí)行第一條指令需要個(gè)周期,而第二條則只需要個(gè)周期,第一條指令變成最終的目標(biāo)碼要兩個(gè)字節(jié)( ),而第二條則只要一個(gè)字節(jié)()就可以了。視絀鏝鴯鱭鐘腦鈞欖糲。視絀鏝鴯鱭鐘腦鈞欖糲僉。這么斤斤計(jì)較!不就差了一個(gè)周期嗎,如果是的晶振的話,也就個(gè)微秒時(shí)間了,一個(gè)字節(jié)又能有多少?不對(duì),如果這條指令只執(zhí)行一次,也許無所謂,但一條指令如果執(zhí)行上次,就是毫秒,如果要執(zhí)行萬次,就是的誤差,這就很可觀了,單片機(jī)做的是實(shí)時(shí)控制的事,所以必須如此“斤斤計(jì)較”。字節(jié)數(shù)同樣如此。偽澀錕攢鴛擋緬鐒鈞錠。偽澀錕攢鴛擋緬鐒鈞錠鈴。再來提一個(gè)問題,現(xiàn)在我們已知,尋找操作數(shù)可以通過直接給的方式(立即尋址)和直接給出數(shù)所在單元地址的方式(直接尋址),這就夠了嗎?緦徑銚膾齲轎級(jí)鏜撟廟。緦徑銚膾齲轎級(jí)鏜撟廟耬??催@個(gè)問題,要求從單元開始,取個(gè)數(shù),分別送入累加器。就我們目前掌握的辦法而言,要從單元取數(shù),就用 ,那么下一個(gè)數(shù)呢?是單元的,怎么取呢?還是只能用 ,那么個(gè)數(shù),不是得條指令才能寫完嗎?這里只有個(gè)數(shù),如果要送個(gè)或個(gè)數(shù),那豈不要寫上條或條命令?這未免太笨了吧。為什么會(huì)出現(xiàn)這樣的狀況?是因?yàn)槲覀冎粫?huì)把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個(gè)寄存器單元中,根據(jù)這個(gè)寄存器單元中的數(shù)值決定該到哪個(gè)單元中取數(shù)據(jù),比如,當(dāng)前這個(gè)寄存器中的值是,那么就到單元中去取,如果是就到單元中去取,就可以解決這個(gè)問題了。怎么個(gè)解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發(fā)生變化,比如取完一個(gè)數(shù)后,將這個(gè)寄存器單元中的值加,還是執(zhí)行同一條指令,可是取數(shù)的對(duì)象卻不一樣了,不是嗎。通過例子來說明吧。騅憑鈳銘僥張礫陣軫藹。騅憑鈳銘僥張礫陣軫藹攬。 , ,: , 這個(gè)例子中大部份指令我們是能看懂的,第一句,是將立即數(shù)送到中,執(zhí)行完后中的值應(yīng)當(dāng)是。第二句是將立即數(shù)送入工作寄存器中,所以執(zhí)行完后,單元中的值是,第三句,這是看一下單元中是什么值,把這個(gè)值作為地址,取這個(gè)地址單元的內(nèi)容送入中,此時(shí),執(zhí)行這條指令的結(jié)果就相當(dāng)于 。第四句,沒學(xué)過,就是把中的值加,因此執(zhí)行完后,中的值就是,第五句,學(xué)過,將中的值減,看是否等于,不等于,則轉(zhuǎn)到標(biāo)號(hào)處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉(zhuǎn)去執(zhí)行 ,這句話,此時(shí)相當(dāng)于執(zhí)行了 ,(因?yàn)榇藭r(shí)的中的值已是了)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1