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

正文內(nèi)容

51單片機(jī)教程(編輯修改稿)

2024-09-26 10:34 本頁面
 

【文章內(nèi)容簡介】 延時 100 毫秒的延時程序。 要點(diǎn)分析: 一個單元中的數(shù)是否可以超過 255。 如何分配兩個數(shù)。 三、復(fù)位電路 任何單片機(jī)在工作之前都要有個復(fù)位的過程,復(fù)位是什么意思呢?它就象是我們上課之前打的預(yù)備鈴。預(yù)備鈴一響,大家 就自動地從操場、其它地方進(jìn)入教室了,在這一段時間里,是沒有老師干預(yù)的,對單片機(jī)來說,是程序還沒有開始執(zhí)行,是在做準(zhǔn)備工作。顯然,準(zhǔn)備工作不需要太長的時間,復(fù)位只需要 5ms 的時間就可以了。如何進(jìn)行復(fù)位呢?只要在單片機(jī)的 RST 引腳上加上高電平,就可以了,按上面所說,時間不少于 5ms。為了達(dá)到這個要求,可以用很多種方法,這里提供一種供參考,見圖 1。實(shí)際上,我們在上一次實(shí)驗(yàn)的圖中已見到過了。 這種復(fù)位電路的工作原理是:通電時,電容兩端相當(dāng)于是短路,于是 RST 引腳上為高電平,然后電源通過電阻對電容充電, RST 端電壓慢 慢下降,降到一定程序,即為低電平,單片機(jī)開始正常工作。 單片機(jī)教程第六課 : 單片機(jī)的內(nèi)外部結(jié)構(gòu)分析(四) 上兩次我們做過兩個實(shí)驗(yàn),都是讓 ,我們可以設(shè)想:既然 可以讓燈亮,那么其它的引腳可不可以呢?看一下圖 1,它是 8031 單片機(jī)引腳的說明,在 旁邊有 , …. ,它們是否都可以讓燈亮呢?除了以 P1開頭的外,還有以 P0, P2, P3開頭的,數(shù)一下,一共是 32 個引腳,前面我們以學(xué)過 7 個引腳,加上這 32 個這 39 個了。它們都以 P 字開頭,只是后面的數(shù)字不一樣,它們是否 有什么聯(lián)系呢?它們能不能都讓燈亮呢?在我們的實(shí)驗(yàn)板上,除了 P10 之外,還有 P11 P17 都與 LED 相連,下面讓我們來做一個實(shí)驗(yàn),程序如下: MAIN: MOV P1, 0FFH LCALL DELAY 平凡的單片機(jī)教程 自學(xué)單片機(jī) 第 9 頁 共 60 頁 9 MOV P1, 00H LCALL DELAY LJMP MAIN DELAY: MOV R7, 250 D1: MOV R6, 250 D2: DJNZ R6, D2 DJNZ R7, D1 RET END 將這段程序轉(zhuǎn)為機(jī)器碼,用編程器寫入芯片中,結(jié)果如何?通電以后我們可以看到 8 只 LED 全部在閃動 。因此,P10 P17 是全部可以點(diǎn)亮燈的。事實(shí)上,凡以 P 開頭的這 32 個引腳都是可以點(diǎn)亮燈的,也就是說:這32 個引腳都可以作為輸出使用,如果不用來點(diǎn)亮 LED,可以用來控制繼電器,可以用來控制其它的執(zhí)行機(jī)構(gòu)。 程序分析:這段程序和前面做過的程序比較,只有兩處不一樣:第一句:原來是 SETB ,現(xiàn)在改為 MOV P1,0FFH,第三句:原來是 CLR ,現(xiàn)在改為 MOV , 00H。從中可以看出, P1是 的全體的代表,一個 P1 就表示了所有的這八個管腳了 。當(dāng)然用的指令也不一樣了,是用 MOV 指令。為什么用這條指令?看圖 2,我們把 P1作為一個整體,就把它當(dāng)作是一個存儲器的單元,對一個單元送進(jìn)一個數(shù)可以用 MOV指令。 二、第四個實(shí)驗(yàn) 除了可以作為輸出外,這 32 個引腳還可以做什么呢?下面再來做一個實(shí)驗(yàn),程序如下: MAIN: MOV P3, 0FFH LOOP: MOV A, P3 MOV P1, A LJMP LOOP 先看一下實(shí)驗(yàn)的結(jié)果:所有燈全部不亮,然后我按下一個按鈕,第()個燈亮了,再按下另一個按鈕,第()個燈亮了,松開按鈕燈就滅了。從這個實(shí)驗(yàn)現(xiàn)象結(jié)合電路來 分析一下程序。 從硬件電路的連線可以看出,有四個按鈕被接入到 P3口的 P32, P33, P34, P35。第一條指令的用途我們可以猜到:使 P3口全部為高電平。第二條指令是 MOV A, P3,其中 MOV 已經(jīng)見,是送數(shù)的意思,這條指令的意思就是將 P3口的數(shù)送到 A中去,我們可以把 A當(dāng)成是一個中間單元(看圖 3),第三句話是將 A中的數(shù)又送到 P1口去,第四句話是循環(huán),就是不斷地重復(fù)這個過程,這我們已見過。當(dāng)我們按下第一個按鈕時,第( 3)只燈亮了,所以 P12 口應(yīng)當(dāng)輸出是低電平,為什么 P12 口會輸出低電平呢?我們看一下有什么被送 到了 P1口,只有從P3口進(jìn)來的數(shù)送到 A,又被送到了 P1口,所以,肯定是 P3口進(jìn)來的數(shù)使得 P12 位輸出電平的。 P3口的 P32 位的按鈕被按下,使得 P32位的電平為低,通過程序,又使 P12口輸出低電平,所以 P3口起來了一個輸入的作用。驗(yàn)證:按第二、三、四個按鈕,同時按下 2個、 3個、 4個按鈕都可以得到同樣的結(jié)論,所以 P3口確實(shí)起到了輸入作用,這樣,我們可以看到,以 P 字開頭的管腳,不僅可以用作輸出,還可以用作輸入,其它的管腳是否可以呢?是的,都可以。這 32 個引腳就稱之為并行口,下面我們就對并行口的結(jié)構(gòu)作一個分析,看一 下它是怎樣實(shí)現(xiàn)輸入和輸出的。 并行口結(jié)構(gòu)分析: 輸出結(jié)構(gòu) 先看 P1口的一位的結(jié)構(gòu)示意圖(只畫出了輸出部份):從圖中可以看出,開關(guān)的打開和合上代表了引腳輸出的高和低,如果開關(guān)合上了,則引腳輸出就是低,如果開關(guān)打開了,則輸出高電平,這個開關(guān)是由一根線來控制的,這根數(shù)據(jù)總線是出自于 CPU,讓我們回想一下,數(shù)據(jù)總線是一根大家公用的線,很多的器件和它連在一起,在不同的時候,不同的器件當(dāng)然需要不同的信號,如某一時刻我們讓這個引腳輸出高電平,并要求保持若干時間,在這段時間里,計算機(jī)當(dāng)然在忙個不停,在與其它器件進(jìn)行聯(lián) 絡(luò),這根控制線上的電平未必能保持原來的值不變,輸出就會發(fā)生變化了。怎么解決這個問題呢?我們在存儲器一節(jié)中學(xué)過,存儲器中是可以存放電荷的,我們不妨也加一個小的存儲器的單元,并在它的前面加一個開關(guān),要讓這一位輸出時,就把開關(guān)打開,信號就進(jìn)入存儲器的單元,然后馬上關(guān)閉開關(guān),這樣這一位的狀態(tài)就被保存下來,直到下一次命令讓它把開關(guān)再打開為止。這樣就平凡的單片機(jī)教程 自學(xué)單片機(jī) 第 10 頁 共 60 頁 10 能使這一位的狀態(tài)與別的器件無關(guān)了,這么一個小單元,我們給它一個很形象的名字,稱之為“鎖存器”。 輸入結(jié)構(gòu) 這是并行口的一位的輸出結(jié)構(gòu)示意圖,再看,除了輸出之外,還有兩根 線,一根從外部引腳接入,另一根從鎖存器的輸出接出,分別標(biāo)明讀引腳和讀鎖存器。這兩根線是用于從外部接收信號的,為什么要兩根呢?原來,在51 單片機(jī)中輸入有兩種方式,分別稱為‘讀引腳’和‘讀鎖存器’,第一種方式是將引腳作為輸入,那是真正地從外部引腳讀進(jìn)輸入的值,第二種方式是該引腳處于輸出狀態(tài)時,有時需要改變這一位的狀態(tài),則并不需要真正地讀引腳狀態(tài),而只是讀入鎖存器的狀態(tài),然后作某種變換后再輸出。 請注意輸入結(jié)構(gòu)圖,如果將這一根引線作為輸入口使用,我們并不能保證在任何時刻都能得到正確的結(jié)果(為什么?)參考圖 2 輸入示 意圖。接在外部的開關(guān)如果打開,則應(yīng)當(dāng)是輸入 1,而如果閉合開關(guān),則輸入 0,但是,如果單片機(jī)內(nèi)部的開關(guān)是閉合的,那么不管外部的開關(guān)是開還是閉,單片機(jī)接受到的數(shù)據(jù)都是 0??梢姡屵@一端口作為輸入使用,要先做一個‘準(zhǔn)備工作’,就是先讓內(nèi)部的開關(guān)斷開,也就是讓端口輸出‘ 1’才行。正因?yàn)橐茸鲞@么一個準(zhǔn)備工作,所以我們稱之為“準(zhǔn)雙向 I/O 口”。 以上是 P1 口的一位的結(jié)構(gòu), P1 口其它各位的結(jié)構(gòu)與之相同,而其它三個口: P0、 P P3 則除入作為輸入輸出口之外還有其它用途,所以結(jié)構(gòu)要稍復(fù)雜一些,但其用于輸入、輸出的結(jié)構(gòu)是相 同的??磮D()。對我們來說,這些附加的功能不必由我們來控制,所以我們就不去關(guān)心它了。 單片機(jī)教程第七課 : 單片機(jī)內(nèi)部結(jié)構(gòu)分析(五) 通過前面的學(xué)習(xí),我們已知單片機(jī)的內(nèi)部有 ROM、有 RAM、有并行 I/O 口,那么,除了這些東西之外,單片機(jī)內(nèi)部究竟還有些什么,這些個零碎的東西怎么連在一起的,讓我們來對單片機(jī)內(nèi)部作一個完整的分析吧! 看圖( 1)(本圖太大,請大家找本書看吧,一般講單片機(jī)的書,隨便哪本都有)。從圖中我們可以看出,在 51單片機(jī)內(nèi)部有 一個 CPU用來運(yùn)算、控制,有 四個并行 I/O口 ,分別是 P0、 P P P3,有 ROM,用來存放程序,有 RAM,用來存放中間結(jié)果,此外還有 定時 /計數(shù)器 , 串行 I/O口 , 中斷系統(tǒng) ,以及一個 內(nèi)部的時鐘電路 。在一個 51 單片機(jī)的內(nèi)部包含了這么多的東西。 對上面的圖進(jìn)行進(jìn)一步的分析,我們已知,對并行 I/O口的讀寫只要將數(shù)據(jù)送入到相應(yīng) I/O口的鎖存器就可以了,那么對于定時 /計數(shù)器,串行 I/O 口等怎么用呢?在單片機(jī)中有一些獨(dú)立的存儲單元是用來控制這些器件的,被稱之為特殊功能寄存器( SFR)。事實(shí)上,我們已接觸過 P1 這個特殊功能寄存器了,還有哪些呢?看表 1 符號 地址 功能介紹 B F0H B 寄存器 ACC E0H 累加器 PSW D0H 程序狀態(tài)字 IP B8H 中斷優(yōu)先級控制寄存器 P3 B0H P3口鎖存器 IE A8H 中斷允許控制寄存器 P2 A0H P2口鎖存器 SBUF 99H 串行口鎖存器 SCON 98H 串行口控制寄存器 平凡的單片機(jī)教程 自學(xué)單片機(jī) 第 11 頁 共 60 頁 11 P1 90H P1口鎖存器 TH1 8DH 定時器 /計數(shù)器 1(高 8 位) TH0 8CH 定時器 /計數(shù)器 1(低 8 位) TL1 8BH 定時器 /計數(shù)器 0(高 8 位) TL0 8AH 定時器 /計數(shù)器 0(低 8 位) TMOD 89A 定時器 /計數(shù)器方式控制寄存器 TCON 88H 定時器 /計數(shù)器控制寄存器 DPH 83H 數(shù)據(jù)地址指針(高 8 位) DPL 82H 數(shù)據(jù)地址指針(低 8 位) SP 81H 堆棧指針 P0 80H P0口鎖存器 PCON 87H 電源控制寄存器 表 1 下面,我們介紹一下幾個常用的 SFR,看圖 2。 ACC:累加器,通常用 A 表示。這是個什么東西,可不能從名字上理解,它是一個寄存器 ,而不是一個做加法的東西,為什么給它這么一個名字呢?或許是因?yàn)樵谶\(yùn)算器做運(yùn)算時其中一個數(shù)一定是在 ACC 中的緣故吧。它的名字特殊,身份也特殊,稍后我們將學(xué)到指令,可以發(fā)現(xiàn),所有的運(yùn)算類指令都離不開它。 B:一個寄存器。在做乘、除法時放乘數(shù)或除數(shù),不做乘除法時,隨你怎么用。 PSW:程序狀態(tài)字。這是一個很重要的東西,里面放了 CPU 工作時的很多狀態(tài),借此,我們可以了解 CPU的當(dāng)前狀態(tài),并作出相應(yīng)的處理。它的各位功能請看表 2 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 表 2 下面我們逐一介紹各位的用途 ( 1) CY:進(jìn)位標(biāo)志。 8051 中的運(yùn)算器是一種 8 位的運(yùn)算器,我們知道, 8 位運(yùn)算器只能表示到 0255,如果做加法的話,兩數(shù)相加可能會超過 255,這樣最高位就會丟失,造成運(yùn)算的錯誤,怎么辦?最高位就進(jìn)到這里來。這樣就沒事了。 例: 78H+97H( 01111000+10010111) ( 2) AC:半進(jìn)位標(biāo)志。 例: 57H+3AH( 01010111+00111010) ( 3) F0:用戶標(biāo)志位,由我們(編程人員)決定什么時候用,什么時候不用。 ( 4) RS RS0:工作寄存器組選擇位。這個我們已知了。 ( 5) 0V:溢出標(biāo)志位。什么是溢出我們稍后再談吧。 ( 6) P:奇偶校驗(yàn)位:它用來表示 ALU 運(yùn)算結(jié)果中二進(jìn)制數(shù)位“ 1”的個數(shù)的奇偶性。若為奇數(shù),則 P=1,否則平凡的單片機(jī)教程 自學(xué)單片機(jī) 第 12 頁 共 60 頁 12 為 0。 例:某運(yùn)算結(jié)果是 78H( 01111000),顯然 1 的個數(shù)為偶數(shù),所以 P=0。 DPTR( DPH、 DPL):數(shù)據(jù)指針,可以用它來訪問外部數(shù)據(jù)存儲器中的任一單元,如果不用,也可以作為通用寄存器來用,由我們自已決定如何使用。 P0、 P P P3:這個我們已經(jīng)知道,是四個并行輸入 /輸出口的寄存器 。它里面的內(nèi)容對應(yīng)著管腳的輸出。 SP:堆棧指針。 堆棧介紹:日常生活中,我們都注意到過這樣的現(xiàn)象,家里洗的碗,一只一只摞起來,最晚放上去的放在最上面,而最早放上去的則放在最下面,在取的時候正好相反,先從最上面取,這種現(xiàn)象我們用一句話來概括:“先進(jìn)后出,后進(jìn)先出”。請大家想想,還有什么地方有這種現(xiàn)象?其實(shí)比比皆是,建筑工地上堆放的磚頭、材料,倉庫里放的貨物,都是“先進(jìn)后出,后進(jìn)先出”,這實(shí)際是一種存取物品的規(guī)則,我們稱之為“堆?!?。 在單片機(jī)中,我們也可以在 RAM 中構(gòu)造這樣一個區(qū)域,用來存放數(shù)據(jù),這個 區(qū)域存放數(shù)據(jù)的規(guī)則就是“先進(jìn)后出,后進(jìn)先出”,我們
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1