




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實例解讀51單片機完全學習與應用
Allyouneedtoknowaboutthe8051microcontroller
楊欣YangX張延強ZhangY編著萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX主審電子工業出版社2011.21
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機2第7章解剖單片機AT89S51單片機的內部結構3
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.1■
單片機的功耗7.1.1運行功耗4在時鐘頻率較高時,如表中的4.0MHz,單片機運算速度較快,相應的1.25mA工作電流比在時鐘頻率為1.0MHz時的550μA工作電流要高。12MHz下的運行功耗達25mA。
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.1.2I/O口驅動功耗5I/O口都會使能驅動電路去控制功率較大的外設,如蜂鳴器、電機等。根據AT89S51單片機的技術手冊,其I/O口的輸出電流不能超過15mA。所以在談I/O口驅動功耗時,我們更多關注的是外設通過驅動電路所消耗的功率。
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.2■
單片機內部結構7.2.1從I/O口到內部結構6比較一下圖(a)和(b),前者顯示出4根數據線:讀鎖存器、內部總線、寫鎖存器、讀管腳。這4根數據線與單片機內部結構中的總線相連。而后者則用一個雙向箭頭(
)來表示這4根數據線,說明鎖存器與總線之間的關系。
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.2.1從I/O口到內部結構7可把整個P1口都抽象出一個結構框圖,如圖示,其中把8位I/O口的獨立結構抽象到了P1口鎖存器和P1口驅動兩個方框中,這與圖7-1所示的P0、P1、P2、P3口結構是一致的。由于I/O口都是雙向的,所有的數據線都使用雙向箭頭。
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.2.2數據在內部交換8舉例:RAM是單片機的隨機訪問存儲器,用于存儲運行過程中的數據。假設RAM中地址30H上存儲了數據“3CH”,現在單片機執行指令“MOVA,30H”,之后,RAM中地址30H上的數據3CH“跑”到總線上,而累加器A根據指令要求,從總線上接收這個數據,執行完畢后,A=3CH。
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.2.3算術邏輯單元(ALU)9ALU為“進行算術運算和邏輯運算的處理單元”。它能進行加、減法等算術運算,也能做與、或、異或等邏輯運算。ALU就是單片機的“CPU”,ALU的輸入端A和B,它們的數據都來自總線,經過ALU運算后,結果通過R又輸出到總線上。在運算過程中,ALU通過輸出D向程序狀態字PSW輸出狀態,PSW會隨著ALU的運算發生相應的變化。如執行加法指令ADD時,當最高位有進位時,PSW的進位標志C就被置1,這都歸功于ALU通過D向PSW的C位輸出高電平。
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.3■
單片機的程序存儲器7.3.1整體結構10
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.3.2程序下載到哪里?11
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX以.HEX為后綴的執行代碼文件可通過下載線下載到單片機中(4.4節)。如果用記事本打開執行代碼文件會得到一串十六進制數,其中包含了每條指令的執行代碼。比如指令“MOVA,#88H”執行代碼為“74”、“88”,其他指令都可從附錄C中找到相應的執行代碼。執行代碼通過下載線下載到了單片機的片內ROM中。因為片內ROM中下載的是程序,所以也稱這個片內ROM為片內程序存儲器。第7章解剖單片機7.3.3片內程序存儲器12
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuXAT89S51單片機的片內程序存儲器容量為4Kbytes,即4×1024=4096bytes。
這4096bytes片內程序存儲器可用地址0000H~0FFFH來指向。在我們通過下載線往單片機下載程序時,執行代碼將從0000H開始,被依次存儲到單片機中。如圖示的執行代碼,存儲到0000H里的是74H,即“01110100”;0001H里的是88H,即“10001000”。按照這種方法直到程序全部下載完畢,根據程序的長短不同,程序存儲器被占用的空間多少也就不同。第7章解剖單片機7.3.4程序計數器PC13
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX程序計數器PC,它用于指示單片機下一條將要執行的代碼的地址。當單片機上電復位時,PC=0000H,即指向程序存儲器中的0000H,單片機就把0000H上的代碼取出執行。之后PC自動增加1,變成0001H,如圖示,接著單片機就執行0001H地址上的代碼。第7章解剖單片機7.3.4程序計數器PC14
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX由于程序計數器PC是個兩個字節(16位)的寄存器,于是受PC的制約,AT89S51單片機最大的尋址范圍是0000H~FFFFH,共64Kbytes。也就是說,除了AT89S51單片機片內的4Kbytes程序存儲器(地址0000H~0FFFH)外,單片機能尋址的外部擴展的程序存儲器空間最大為64Kbytes-4Kbytes=60Kbytes,即地址1000H~FFFFH。第7章解剖單片機7.3.5是片內還是片外程序存儲器?15
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX當
接高電平時,單片機復位時讀取片內程序存儲器中的程序,即從PC=0000H開始,依次讀取0000H~0FFFH上的程序。當PC增加到0FFFH時,PC再增加1等于1000H,單片機將自動轉到片外程序存儲器上執行其中的程序。而當
接低電平時,單片機則完全讀取片外程序存儲器中的程序,即從片外程序存儲器中的0000H開始,依次讀取程序來執行。由于受到程序計數器PC的位數限制,讀取片內或片外程序存儲器的最大地址范圍為0000H~FFFFH。第7章解剖單片機7.4■
單片機的數據存儲器7.4.1片內數據存儲器16
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX單片機的數據存儲器也有片內和片外之分。片內數據存儲器就是單片機中原有的數據存儲器,即片內RAM。片內數據存儲器可分成三個部分:工作寄存器區、位尋址區、開放區。這三個區都可用來保存單片機運行過程所產生的數據。但片內數據存儲器是一個RAM,即隨機訪問存儲器,在掉電后其中的數據將會丟失。第7章解剖單片機7.4.1片內數據存儲器17
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX單片機的128×8-bit的片內數據存儲器只有其中的20H~7FH共96個字節(開放區+位尋址區)給我們使用的,而00H~1FH則是工作寄存器區,一般通過工作寄存器R0~R7來使用。AT89S51單片機最大的數據存儲器(片內+片外)尋址范圍也為0000H~FFFFH,共64Kbytes的空間。第7章解剖單片機7.4.2工作寄存器區(00H~1FH)18
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX工作寄存器共有8個,分別為R0、R1、R2、R3、R4、R5、R6、R7,前面有許多程序已經涉及工作寄存器。這8個工作寄存器可以用來裝載1個字節長度的數據,在程序中可視為一個變量來使用,常常用來作為計數值、顯示值等。指令“MOVR0,#24H”,把立即數24H裝載到工作寄存器R0中。第7章解剖單片機7.4.2工作寄存器區(00H~1FH)19
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX工作寄存器R0~R7指向片內數據存儲器中的地址,當單片機上電復位時,R0~R7映射片內數據存儲器的00H~07H,即第0組。執行指令“MOVR0,#24H”,立即數24H裝載到R0,實際上被裝載到00H地址空間上。執行“MOVR5,#3FH”,那R5映射的片內數據存儲器05H地址上即被裝載3FH。第7章解剖單片機7.4.2工作寄存器區(00H~1FH)20
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX工作寄存器R0~R7除了映射片內數據存儲器的地址00H~07H外,還可以映射向其余的地址08H~1FH。工作寄存器可用不同組別來稱呼。第7章解剖單片機7.4.2工作寄存器區(00H~1FH)21
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuXAT89551單片機上電復位時工作寄存器默認的組別是第0組,即R0~R7映射00H~07H。如果想改變當前程序使用的工作寄存器組別,可以通過更改程序狀態字PSW中的第3位(RS0)和第4位(RS1)。第7章解剖單片機7.4.3位尋址區(20H~2FH)22
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX片內數據存儲器的20H~2FH(共16個字節)為位尋址區,這16個字節共有16×8=128位的空間可進行位尋址。位尋址的意思是可對某一位單獨進行操作,比如指令SETB可讓位尋址區的任何一位置1,指令CLR可清0位尋址區的任何一位。第7章解剖單片機7.4.3位尋址區(20H~2FH)23
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX在使用位尋址區時,并不是直接操作20H~2FH這16個地址,而是用圖示的映射地址來完成。假如程序中需要把20H上的B0位清0,就需要操作20H上的B0位所映射的地址——00H,于是指令可設計為:“CLR 00H”。再如想把2AH上的B4位置1,指令則為“SETB 54H”。第7章解剖單片機7.4.4開放區(30H~7FH)24
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX片內數據存儲器的地址30H~7FH是開放給用戶使用的空間,用戶可以在這段空間里存儲單片機運行時產生的數據,也可以讀取存儲的數據到工作寄存器、累加器等中。例如以下指令實現將累加器A的數據載入33H上,執行過后(33H)=8FH。第7章解剖單片機7.5■
單片機的特殊功能寄存器7.5.1特殊功能寄存器分布圖25
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuXAT89S51單片機共有26個特殊功能寄存器,位于地址80H~0FFH上。其中有前面使用過的累加器A、程序狀態字PSW、P0~P3口等。第7章解剖單片機7.5.2特殊功能寄存器的功能26
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuXAT89S51單片機多個內部功能模塊如中斷控制、Timer0/1、串行口等都由特殊功能寄存器控制。每個特殊功能寄存器的長度都是1個字節,它們的詳細介紹將在隨后的章節中詳細展開。第7章解剖單片機7.5.3特殊功能寄存器的字節操作27
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX操作特殊功能寄存器寄存器的過程,實際就是控制單片機充分發揮自身功能的過程。例如指令“MOVP1,#00H”,這條指令把立即數00H從P1口送出去。P1也是特殊功能寄存器的一份子,它的地址為90H。所以指令“MOVP1,#00H”就是對特殊功能寄存器的操作,會讓特殊功能寄存器區的(90H)=00H。以上這種操作我們稱為字節操作,因為在執行“MOVP1,#00H”時,P1就像一個符號,實際上立即數是送到P1對應的特殊功能寄存器地址空間上,也就是90H。所以,這和我們往片內數據存儲器的開放區某一個地址裝載1個字節的數據的過程是一樣的。第7章解剖單片機7.5.4特殊功能寄存器的位操作28
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX某些特殊功能寄存器還支持位操作,比較常用的是置1指令“SETB”和清0指令“CLR”。例如指令“CLRP2.0”將P2.0清0。執行這條指令后,只有P2.0=0,之相連的發光二極管點亮。而P2.1~P2.7仍然保持原來的狀態。支持位操作的特殊功能寄存器:P0(P0口鎖存器) P1(P1口鎖存器)P2(P2口鎖存器) P3(P3口鎖存器)ACC(累加器) B(B寄存器)PSW(程序狀態字寄存器) TCON(定時/計數器控制寄存器)SCON(串行口控制寄存器) IE(中斷使能寄存器)IP(中斷優先控制寄存器)第7章解剖單片機7.6■
應用體驗——用取表方式實現流水燈7.6.1取表法29
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX要實現流水燈需要在P2口按圖示依次輸出每一行數據,如果用十六進制表示每一行數據為:FEH、FDH、FBH、F7H、EFH、DFH、BFH、7FH。取表法的思路就是把這些數據預先放在一個數據表中,作為程序的一部分。單片機執行時每次取一個數據從P2口送出,延時后再取下一個數據送出,這樣就可以從發光二極管上看到流水燈的效果了。第7章解剖單片機7.6.1取表法30
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.6.1取表法31
歡迎訪問“電路飛翔網”獲取更多信息《實例解讀51單片機完全學習與應用》
Allyouneedtoknowaboutthe8051microcontroller編著:楊欣YangX張延強ZhangY主審:萊·諾克斯NokesL王玉鳳WangY劉湘黔LiuX第7章解剖單片機7.6.3體驗流水燈3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙江省生態環境廳所屬事業單位招聘考試備考題庫
- 2025年煤電鉆綜合保護器項目可行性研究報告
- 浙江省“六市六校”聯盟2025屆高三物理試題第一次月考含解析
- 遼寧石油化工大學《金屬基復合材料概論》2023-2024學年第一學期期末試卷
- 營口理工學院《出鏡報道與節目主持》2023-2024學年第二學期期末試卷
- 武漢大學《數據結構及算法》2023-2024學年第一學期期末試卷
- 山東師范大學《中醫學基礎2》2023-2024學年第二學期期末試卷
- 平涼市涇川縣2025屆六年級下學期小升初真題數學試卷含解析
- 朔州陶瓷職業技術學院《心理測量與人員甄選》2023-2024學年第二學期期末試卷
- 湖南中醫藥大學湘杏學院《軟件質量保證與測試》2023-2024學年第二學期期末試卷
- (一模)桂林市、來賓市2025屆高考第一次跨市聯合模擬考試地理試卷(含答案詳解)
- 2025-2030“一帶一路”之菲律賓礦業行業市場深度調研及發展趨勢與投資前景預測研究報告
- 飾品干貨知識培訓課件
- 2024-2030年中國高純銅行業發展監測及發展趨勢預測報告
- 2025-2030中國國防車輛行業市場發展趨勢與前景展望戰略研究報告
- 2025年03月荊門市“招碩引博”1412人筆試歷年參考題庫考點剖析附解題思路及答案詳解
- “育人為本,德育為先”在學校人才培養方案中的具體體現
- 獸醫病理學基礎試題及答案
- 電力電纜及通道檢修規程QGDW 11262-2014(文字版)
- 軟件研制總結報告范文
- 我是安全守法小公民
評論
0/150
提交評論