




已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單 片 機 原 理 及 應 用教 案機電工程學院電氣工程系第一章 緒論第一節(jié) 單片機單片機即單片機微型計算機,是將計算機主機(CPU、內存和I/O接口)集成在一小塊硅片上的微型機。第二節(jié) 單片機的歷史與現狀第一階段(19761978年):低性能單片機的探索階段。以Intel公司的MCS-48為代表,采用了單片結構,即在一塊芯片內含有8位CPU、定時/計數器、并行I/O口、RAM和ROM等。主要用于工業(yè)領域。第二階段(19781982年):高性能單片機階段,這一類單片機帶有串行I/O口,8位數據線、16位地址線可以尋址的范圍達到64K字節(jié)、控制總線、較豐富的指令系統(tǒng)等。這類單片機的應用范圍較廣,并在不斷的改進和發(fā)展。第三階段(19821990年):16位單片機階段。16位單片機除CPU為16位外,片內RAM和ROM容量進一步增大,實時處理能力更強,體現了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內RAM為232字節(jié),ROM為8K字節(jié),中斷處理能力為8級,片內帶有10位A/D轉換器和高速輸入/輸出部件等。第四階段(1990年):微控制器的全面發(fā)展階段,各公司的產品在盡量兼容的同時,向高速、強運算能力、尋址范圍大以及小型廉價方面發(fā)展。第三節(jié) 單片機的應用領域一、 單片機在儀器儀表中的應用二、 單片機在機電一體化中的應用三、 單片機在智能接口和多機系統(tǒng)中的應用四、 單片機在生活中的應用第二章 硬件結構第一節(jié) MCS-51單片機及其演變特點(1)一個8位微處理器CPU。(2)數據存儲器RAM和特殊功能寄存器SFR。(3)內部程序存儲器ROM。(4)兩個定時/計數器,用以對外部事件進行計數,也可用作定時器。(5)四個8位可編程的I/O(輸入/輸出)并行端口,每個端口既可做輸入,也可做輸出。(6)一個串行端口,用于數據的串行通信。(7)中斷控制系統(tǒng)。(8)內部時鐘電路。第二節(jié) 80C51單片機的基本結構1) 中央處理器(CPU)中央處理器是單片機的核心,完成運算和控制功能。MCS-51的CPU能處理8位二進制數或代碼。2) 內部數據存儲器(內部RAM)8051芯片中共有256個RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數據。因此通常所說的內部數據存儲器就是指前128單元,簡稱內部RAM。3) 內部程序存儲器(內部ROM)8051共有4 KB掩膜ROM,用于存放程序、原始數據或表格,因此,稱之為程序存儲器,簡稱內部ROM。4) 定時/計數器8051共有兩個16位的定時/計數器,以實現定時或計數功能,并以其定時或計數結果對計算機進行控制。5) 并行I/O口MCS-51共有4個8位的I/O口(P0、P1、P2、P3),以實現數據的并行輸入/輸出。在實訓中我們已經使用了P1口,通過P1口連接8個發(fā)光二極管。第三節(jié) 80C51單片機的引腳功能 MCS-51是標準的40引腳雙列直插式集成電路芯片,引腳排列請參見圖P0.0 P0.7: P0口8位雙向口線。P1.0 P1.7 :P1口8位雙向口線。P2.0 P2.7 :P2口8位雙向口線。P3.0 P3.7 :P3口8位雙向口線。 ALE:地址鎖存控制信號。在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址鎖存起來,以實現低位地址和數據的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用。 PSEN:外部程序存儲器讀選通信號。在讀外部ROM時,PSEN有效(低電平),以實現外部ROM單元的讀操作。 EA:訪問程序存儲控制信號。當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;當信號為高電平時,對ROM的讀操作是從內部程序存儲器開始,并可延至外部程序存儲器。 RST:復位信號。當輸入的復位信號延續(xù)兩個機器周期以上的高電平時即為有效,用以完成單片機的復位初始化操作。 XTAL1和XTAL2:外接晶體引線端。當使用芯片內部時鐘時,此二引線端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。 VSS:地線。 VCC:+5 V電源。 以上是MCS-51單片機芯片40條引腳的定義及簡單功能說明,讀者可以對照實訓電路找到相應引腳,在電路中查看每個引腳的連接使用。 P3口線的第二功能。P3的8條口線都定義有第二功能第四節(jié) 存儲器結構MCS-51單片機的芯片內部有RAM和ROM兩類存儲器,即所謂的內部RAM和內部ROMMCS-51內部程序存儲器MCS-51的程序存儲器用于存放編好的程序和表格常數。8051片內有4 KB的ROM,8751片內有4 KB的EPROM,8031片內無程序存儲器。 MCS-51的片外最多能擴展64 KB程序存儲器,片內外的ROM是統(tǒng)一編址的。如端保持高電平,8051的程序計數器PC在0000H0FFFH地址范圍內 (即前4 KB地址) 是執(zhí)行片內ROM中的程序,當PC在1000HFFFFH地址范圍時,自動執(zhí)行片外程序存儲器中的程序;當保持低電平時,只能尋址外部程序存儲器,片外存儲器可以從0000H開始編址。MCS-51的程序存儲器中有些單元具有特殊功能,使用時應予以注意。 其中一組特殊單元是0000H0002H。系統(tǒng)復位后,(PC)=0000H,單片機從0000H單元開始取指令執(zhí)行程序。如果程序不從0000H單元開始,應在這三個單元中存放一條無條件轉移指令,以便直接轉去執(zhí)行指定的程序。 還有一組特殊單元是0003H002AH,共40個單元。這40個單元被均勻地分為5段,作為5個中斷源的中斷地址區(qū)。其中:0003H000AH 外部中斷0中斷地址區(qū)000BH0012H 定時/計數器0中斷地址區(qū)0013H001AH 外部中斷1中斷地址區(qū)001BH0022H 定時/計數器1中斷地址區(qū)0023H002AH 串行中斷地址區(qū)中斷響應后,按中斷種類,自動轉到各中斷區(qū)的首地址去執(zhí)行程序,因此在中斷地址區(qū)中理應存放中斷服務程序。但通常情況下,8個單元難以存下一個完整的中斷服務程序,因此通常也是從中斷地址區(qū)首地址開始存放一條無條件轉移指令,以便中斷響應后,通過中斷地址區(qū),再轉到中斷服務程序的實際入口地址。MCS-51內部數據存儲器內部數據存儲器低128單元 8051的內部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址00H7FH)和高128單元(單元地址80HFFH)。如圖所示為低128單元的配置圖。 寄存器區(qū) 8051共有4組寄存器,每組8個寄存單元(各為8),各組都以R0R7作寄存單元編號。寄存器常用于存放操作數中間結果等。由于它們的功能及使用不作預先規(guī)定,因此稱之為通用寄存器,有時也叫工作寄存器。4組通用寄存器占據內部RAM的00H1FH單元地址。 在任一時刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中RS1、RS0位的狀態(tài)組合來決定。 通用寄存器為CPU提供了就近存儲數據的便利,有利于提高單片機的運算速度。此外,使用通用寄存器還能提高程序編制的靈活性,因此,在單片機的應用編程中應充分特殊功能寄存器通用RAM區(qū)位尋址區(qū)00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位尋址外部ROM內部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH內部數據存儲器(a)外部數據存儲器(b)程序存儲器(c)工作寄存器區(qū)利用這些寄存器,以簡化程序設計,提高程序運行速度。 位尋址區(qū) 內部RAM的20H2FH單元,既可作為一般RAM單元使用,進行字節(jié)操作,也可以對單元中每一位進行位操作,因此把該區(qū)稱之為位尋址區(qū)。位尋址區(qū)共有16個RAM單元,計128位,地址為00H7FH。MCS-51具有布爾處理機功能,這個位尋址區(qū)可以構成布爾處理機的存儲空間。這種位尋址能力是MCS-51的一個重要特點。 用戶RAM區(qū) 在內部RAM低128單元中,通用寄存器占去32個單元,位尋址區(qū)占去16個單元,剩下80個單元,這就是供用戶使用的一般RAM區(qū),其單元地址為30H7FH。對用戶RAM區(qū)的使用沒有任何規(guī)定或限制,但在一般應用中常把堆棧開辟在此區(qū)中。 內部數據存儲器高128單元 內部RAM的高128單元是供給專用寄存器使用的,其單元地址為80HFFH。因這些寄存器的功能已作專門規(guī)定,故稱之為專用寄存器(Special Function Register),也可稱為特殊功能寄存器。第五節(jié) 特殊功能存儲器SFR8051共有21個專用寄存器,現把其中部分寄存器簡單介紹如下:程序計數器(PCProgram Counter)。在實訓中,我們已經知道PC是一個16位的計數器,它的作用是控制程序的執(zhí)行順序。其內容為將要執(zhí)行指令的地址,尋址范圍達64 KB。PC有自動加1功能,從而實現程序的順序執(zhí)行。PC沒有地址,是不可尋址的,因此用戶無法對它進行讀寫,但可以通過轉移、調用、返回等指令改變其內容,以實現程序的轉移。因地址不在SFR(專用寄存器)之內,一般不計作專用寄存器。累加器(ACCAccumulator)。累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。它既可用于存放操作數,也可用來存放運算的中間結果。MCS-51單片機中大部分單操作數指令的操作數就取自累加器,許多雙操作數指令中的一個操作數也取自累加器。B寄存器。B寄存器是一個8位寄存器,主要用于乘除運算。乘法運算時,B存乘數。乘法操作后,乘積的高8位存于B中,除法運算時,B存除數。除法操作后,余數存于B中。此外,B寄存器也可作為一般數據寄存器使用。 程序狀態(tài)字(PSWProgram Status Word)。程序狀態(tài)字是一個8位寄存器,用于存放程序運行中的各種狀態(tài)信息。其中有些位的狀態(tài)是根據程序執(zhí)行結果,由硬件自動設置的,而有些位的狀態(tài)則使用軟件方法設定。PSW的位狀態(tài)可以用專門指令進行測試,也可以用指令讀出。一些條件轉移指令將根據PSW有些位的狀態(tài),進行程序轉移。PSW的各位定義如下:PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H字節(jié)地址 CY ACF0RS1RS0OVF1P除PSW.1位保留未用外,其余各位的定義及使用如下:CY(PSW.7)進位標志位。CY是PSW中最常用的標志位。其功能有二:一是存放算術運算的進位標志,在進行加或減運算時,如果操作結果的最高位有進位或借位時,CY由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進位標志位。AC(PSW.6)輔助進位標志位。在進行加減運算中,當低4位向高4位進位或借位時,AC由硬件置“1”,否則AC位被清“0”。在BCD碼調整中也要用到AC位狀態(tài)。F0(PSW.5)用戶標志位。這是一個供用戶定義的標志位,需要利用軟件方法置位或復位,用以控制程序的轉向。RS1和RS0(PSW.4,PSW.3)寄存器組選擇位。它們被用于選擇CPU當前使用的通用寄存器組。通用寄存器共有4組,其對應關系如下:00:0組 01:1組 10:2組 11:3組這兩個選擇位的狀態(tài)是由軟件設置的,被選中的寄存器組即為當前通用寄存器組。但當單片機上電或復位后,RS1 RS0=00。OV(PSW.2)溢出標志位。在帶符號數加減運算中,OV=1表示加減運算超出了累加器A所能表示的符號數有效范圍(-128 +127),即產生了溢出,因此運算結果是錯誤的,否則,OV=0表示運算正確,即無溢出產生。P(PSW.0)奇偶標志位。表明累加器A中內容的奇偶性。如果A中有奇數個“1”,則P置“1”,否則置“0”。凡是改變累加器A中內容的指令均會影響P標志位。此標志位對串行通信中的數據傳輸有重要的意義。在串行通信中常采用奇偶校驗的辦法來校驗數據傳輸的可靠性。數據指針(DPTR)。數據指針為16位寄存器。編程時,DPTR既可以按16位寄存器使用,也可以按兩個8位寄存器分開使用,即:DPH DPTR高位字節(jié),DPL DPTR低位字節(jié)。DPTR通常在訪問外部數據存儲器時作地址指針使用。由于外部數據存儲器的尋址范圍為64 KB,故把DPTR設計為16位。堆棧指針(SPStack Pointer)。堆棧是一個特殊的存儲區(qū),用來暫存數據和地址,它是按“先進后出”的原則存取數據的。堆棧共有兩種操作:進棧和出棧。由于MCS-51單片機的堆棧設在內部RAM中,因此SP是一個8位寄存器。系統(tǒng)復位后,SP的內容為07H,從而復位后堆棧實際上是從08H單元開始的。但08H1FH單元分別屬于工作寄存器13區(qū),如程序要用到這些區(qū),最好把SP值改為1FH或更大的值。對專用寄存器的字節(jié)尋址問題作如下幾點說明: (1)21個可字節(jié)尋址的專用寄存器是不連續(xù)地分散在內部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。 (2) 程序計數器PC不占據RAM單元,它在物理上是獨立的,因此是不可尋址的寄存器。 (3) 對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器。第六節(jié) 輸入輸出端口單片機芯片內還有一項主要內容就是并行I/O口。MCS-51共有4個8位的并行I/O口,分別記作P0、P1、P2、P3。每個口都包含一個鎖存器、一個輸出驅動器和輸入緩沖器。實際上,它們已被歸入專用寄存器之列,并且具有字節(jié)尋址和位尋址功能。 在訪問片外擴展存儲器時,低8位地址和數據由P0口分時傳送,高8位地址由P2口傳送。在無片外擴展存儲器的系統(tǒng)中,這4個口的每一位均可作為雙向的I/O端口使用。第七節(jié) 時鐘電路在MCS-51芯片內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2 。而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調電容,從而構成一個穩(wěn)定的自激振蕩器,這就是單片機的時鐘電路。XTAL2XTAL1MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSSTTL外部時鐘源1振蕩周期:為單片機提供時鐘信號的振蕩源的周期。2時鐘周期:是振蕩源信號經二分頻后形成的時鐘脈沖信號。 3機器周期:通常將完成一個基本操作所需的時間稱為機器周期。4指令周期:是指CPU執(zhí)行一條指令所需要的時間。一個指令周期通常含有14個機器周期。 P1P2S1P2振蕩周期時鐘周期機器周期機器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2第八節(jié) 復位電路單片機復位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復位后PC=0000H,使單片機從第一個單元取指令。實訓中已經看出,無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復位,所以我們必須弄清楚MCS-51型單片機復位的條件、復位電路和復位后狀態(tài)。 第三章MCS-51指令系統(tǒng)第一節(jié) 指令格式采用助記符表示的匯編語言指令格式如下:標號是程序員根據編程需要給指令設定的符號地址,可有可無;標號由18個字符組成,第一個字符必須是英文字,不能是數字或其它符號;標號后必須用冒號。 操作碼表示指令的操作種類,如MOV表示數據傳送操作,ADD表示加法操作等。操作數或操作數地址表示參加運算的數據或數據的有效地址。操作數一般有以下幾種形式:沒有操作數項,操作數隱含在操作碼中,如RET指令;只有一個操作數,如CPL A指令;有兩個操作數,如MOV A,#00H指令,操作數之間以逗號相隔;有三個操作數,如CJNE A,#00H,NEXT指令,操作數之間也以逗號相隔。注釋是對指令的解釋說明,用以提高程序的可讀性;注釋前必須加分號。 第二節(jié) 尋址方式尋找操作數地址的方式稱為尋址方式。1. 寄存器尋址 寄存器尋址是指將操作數存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的數據傳送到寄存器R1中,其操作數存放在累加器A中,所以尋址方式為寄存器尋址。如果程序狀態(tài)寄存器PSW的RS1RS0=01(選中第二組工作寄存器,對應地址為08H0FH),設累加器A的內容為20H,則執(zhí)行MOV R1,A指令后,內部RAM 09H單元的值就變?yōu)?0H。2. 直接尋址 直接尋址是指把存放操作數的內存單元的地址直接寫在指令中。在MCS-51單片機中,可以直接尋址的存儲器主要有內部RAM區(qū)和特殊功能寄存器SFR區(qū)。例如,指令MOV A,3AH執(zhí)行的操作是將內部RAM 中地址為3AH的單元內容傳送到累加器A中,其操作數3AH就是存放數據的單元地址,因此該指令是直接尋址。3. 立即數尋址 立即數尋址是指將操作數直接寫在指令中。 例如,指令MOV A,#3AH執(zhí)行的操作是將立即數3AH送到累加器A中,該指令就是立即數尋址。4. 寄存器間接尋址 寄存器間接尋址是指將存放操作數的內存單元的地址放在寄存器中,指令中只給出該寄存器。執(zhí)行指令時,首先根據寄存器的內容,找到所需要的操作數地址,再由該地址找到操作數并完成相應操作。 在MCS-51指令系統(tǒng)中,用于寄存器間接尋址的寄存器有R0、R1和DPTR,稱為寄存器間接尋址寄存器。設R0=3AH,內部RAM 3AH中的值是65H,則指令MOV A,R0的執(zhí)行結果是累加器A的值為65H。5. 變址尋址 變址尋址是指將基址寄存器與變址寄存器的內容相加,結果作為操作數的地址。DPTR或PC是基址寄存器,累加器A是變址寄存器。該類尋址方式主要用于查表操作。 例如,指令MOVC A,A+DPTR執(zhí)行的操作是將累加器A和基址寄存器DPTR的內容相加,相加結果作為操作數存放的地址,再將操作數取出來送到累加器A中。 設累加器A=02H,DPTR=0300H,外部ROM中,0302H單元的內容是55H,則指令MOVC A,A+DPTR的執(zhí)行結果是累加器A的內容為55H。6. 相對尋址 相對尋址是指程序計數器PC的當前內容與指令中的操作數相加,其結果作為跳轉指令的轉移地址(也稱目的地址)。該類尋址方式主要用于跳轉指令。 例如,指令SJMP 54H執(zhí)行的操作是將PC當前的內容與54H相加,結果再送回PC中,成為下一條將要執(zhí)行指令的地址。 設指令SJMP 54H的機器碼80H 54H存放在2000H處,當執(zhí)行到該指令時,先從2000H和2001H單元取出指令,PC自動變?yōu)?002H;再把PC的內容與操作數54H相加,形成目標地址2056H,再送回PC,使得程序跳轉到2056H單元繼續(xù)執(zhí)行。7. 位尋址 位尋址是指按位進行的尋址操作,而上述介紹的指令都是按字節(jié)進行的尋址操作。MCS-51單片機中,操作數不僅可以按字節(jié)為單位進行操作,也可以按位進行操作。當我們把某一位作為操作數時,這個操作數的地址稱為位地址。位尋址區(qū)包括專門安排在內部RAM中的兩個區(qū)域:一是內部RAM的位尋址區(qū),地址范圍是20H2FH,共16個RAM單元,位地址為00H7FH;二是特殊功能寄存器SFR中有11個寄存器可以位尋址,參見有關章節(jié)中位地址定義。 第三節(jié) 數據操作和指令類型MCS-51單片機指令系統(tǒng)包括111條指令,按功能可以劃分為以下5類數據傳送指令(29條)算術運算指令(24條)邏輯運算指令(24條)控制轉移指令(17條)位操作指令(17條)第四節(jié) 數據傳送指令數據傳送指令是MCS-51單片機匯編語言程序設計中使用最頻繁的指令,包括內部 RAM、寄存器、外部RAM以及程序存儲器之間的數據傳送。 數據傳送操作是指把數據從源地址傳送到目的地址,源地址內容不變。 1. 以累加器A為目的操作數的指令MOV A, data ; A data MOV A, Rn ; n=07, A (Rn) MOV A, Ri ; i=0,1 , A (Ri) MOV A, direct ; A (Rn) direct為內部RAM或SFR地址2. 以Rn為目的操作數的指令MOV Rn, A ;Rn (A) , n=07MOV Rn , direct ;Rn (direct) MOV Rn ,data ;Rn data 3.以直接地址為目的操作數的指令 MOV direct, A ;direct (A) MOV direct, Rn ; direct (Rn) , n=07MOV direct, Ri ; direct ( Ri ) ) , i=0,1MOV direct, direct ;direct (direct) MOV direct, #data ;direct data 4. 以寄存器間接地址為目的操作數指令MOV Ri, A ; (Ri) ) (A) ,i=0,1MOV Ri , direct ; (Ri) ) (direct) MOV Ri ,data ; (Ri) ) data字節(jié)交換指令XCH A , Rn ; (A) (Ri)XCH A , direct ; (A) (direct)XCH A , Ri ; (A) (Ri)半字節(jié)交換指令XCHD A, Ri ;(A)0-3 (Ri ) 0-3累加器A與外部數據傳輸指令MOVX A, DPTR ; A (DPTR) 地址范圍64KMOVX A, Ri ; A (Ri) 地址范圍0255MOVX DPTR, A ; (DPTR) (A)MOVX Ri , A ; (Ri) (A)查表指令1)MOVC A, A+DPTR ; A (A)+(DPTR)2)MOVC A, A+PC ; A (A)+(pc)第五節(jié) 算術運算指令加法指令(Addtion)ADD A, Rn ; A(A)+(Rn)ADD A, Ri ;A(A)+((Ri))ADD A, direct ;A(A)+(direct)ADD A, data ;A(A)+#data帶進位加法指令ADDC A, Rn ; A(A)+(Rn)+(Cy)ADDC A, Ri ;A(A)+(Ri ) +(Cy)ADDC A, direct ;A(A)+(direct) +(Cy)ADDC A, data ;A(A)+#data +(Cy)加1指令INC A ;A(A)+1INC Ri ;Ri(A)+1INC direct ;direct(direct)+1INC Ri ;(Ri)(Ri)+1INC DPTR ;DPTR(DPTR)+1十進制調整指令DA A帶借位減法指令(Subtraction)SUBB A, Rn ; A(A)-(Rn)-(Cy)SUBB A, Ri ;A(A)-(Ri) ) -(Cy)SUBB A, direct ;A(A)-(direct) -(Cy)SUBB A, data ;A(A)-#data -(Cy)減1指令(Decrease)DEC A ;A(A)1DEC Ri ;Ri(A)1DEC direct ;direct(direct)1DEC Ri ;(Ri)(Ri)1乘法指令(Multiplication)MUL AB 除法指令(Division)DIV AB 第六節(jié) 邏輯運算指令簡單邏輯操作指令CLR A ; A “0”CPL A ; A ASWAP A ; A03 A47左循環(huán)指令 (Rotate Accumulator Left)RL A帶進位左循環(huán)指令(Rotate Accumulator Left through Carry flag) RLC A右循環(huán)指令(Rotate Accumulator Right)RR A帶進位右循環(huán)指令(Rotate A Right with C)RRC A邏輯與指令ANL A, Rn ANL A, direct ANL A, dataANL A, RiANL direct, AANL direct, data邏輯或指令ORL A, Rn ORL A, direct ORL A, dataORL A, RiORL direct, AORL direct, data邏輯異或指令XRL A, Rn XRL A, direct XRL A, dataXRL A, RiXRL direct, AXRL direct, data第七節(jié) 位操作指令數據位傳送指令MOV C, bit ;bit 可直接尋址位 C(bit)MOV bit,C ;C 進位位 (bit) C 位變量修改指令CLR C ; 將C0CLR bitCPL C ; 將C求反再存入CCPL bit ; 將bit求反再存入bitSETB C ; 將C1SETB bit ; (bit) 1 位變量邏輯指令ANL C, bit ANL C, bit ORL C, bit ORL C, bit第八章 控制轉移指令跳轉指令短跳指令 AJMP addr11 PCaddr11,跳轉范圍2k長跳指令 LJMP addr16 PCaddr16,跳轉范圍64k間接跳轉指令 JMP A+DPTR PC(A)(DPTR)相對轉移指令 SJMP rel 條件轉移指令JZ rel ;(A)0,轉移JNZ rel ;(A)0,轉移JC rel ;如 C=1, 轉移JNC rel ;如 C=0, 轉移JB bit,rel ;如 bit=1, 轉移JNB bit,rel ;如 bit=0, 轉移JBC bit,rel ;如 bit=1, 轉移并 bit0比較不相等轉移指令CJNE A,#data,rel;(A)=#data,繼續(xù)C0 (A)#data,轉C0 (A)#data,轉C1 特點:只有時, C1CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel減 1 不為 0 轉移指令DJNZ Rn,rel ; DJNZ direct,rel例:延時子程序 delay: MOV R7, #03H delay0: MOV R6, #19H delay1: DJNZ R6, delay1 DJNZ R7, delay0 RET調用子程序指令短調用指令 ACALL addr11長調用指令 LCALL addr16子程序返回指令 RET中斷返回指令 RETI空操作指令 NOP第四章 定時器/計數器第一節(jié) 概述第二節(jié) 結構和工作原理實質是計數器,脈沖每一次下降沿,計數寄存器數值將加1。計數的脈沖如果來源于單片機內部的晶振,由于其周期極為準確,這時稱為定時器。計數的脈沖如果來源于單片機外部的引腳,由于其周期一般不準確,這時稱為計數器。定時/計數器方式寄存器TMOD(1) M1和M0:方式選擇位。(2) c/T :功能選擇位。時,設置為定時器工作方式;時,設置為計數器工作方式。(3) GATE:門控位。當GATE=0時,軟件控制位TR0或TR1置1即可啟動定時器;當GATE=1時,軟件控制位TR0或TR1須置1,同時還須(P3.2)或(P3.3)為高電平方可啟動定時器,即允許外中斷、啟動定時器。定時器/計數器控制寄存器TCON(1) TCON.7 TF1:定時器1溢出標志位。當定時器1計滿數產生溢出時,由硬件自動置TF1=1。在中斷允許時,向CPU發(fā)出定時器1的中斷請求,進入中斷服務程序后,由硬件自動清0。在中斷屏蔽時,TF1可作查詢測試用,此時只能由軟件清0。(2) TCON.6 TR1:定時器1運行控制位。由軟件置1或清0來啟動或關閉定時器1。當GATE=1,且為高電平時,TR1置1啟動定時器1;當GATE=0時,TR1置1即可啟動定時器1。(3) TCON.5 TF0:定時器0溢出標志位。其功能及操作情況同TF1。(4) TCON.4 TR0:定時器0運行控制位。其功能及操作情況同TR1。(5) TCON.3 IE1:外部中斷1( )請求標志位。(6)TCON.2 IT1:外部中斷1觸發(fā)方式選擇位。(7)TCON.1 IE0:外部中斷0 ( )請求標志位。 (8) TCON.0 IT0:外部中斷0觸發(fā)方式選擇位。 第三節(jié) 定時/計數器的工作方式1方式0方式0構成一個13位定時/計數器。圖是定時器0在方式0時的邏輯電路結構,定時器1的結構和操作與定時器0完全相同。2方式1定時器工作于方式1時。由圖可知,方式1構成一個16位定時/計數器,其結構與操作幾乎完全與方式0相同,惟一差別是二者計數位數不同。3方式2 定時/計數器工作于方式2時,。由圖可知,方式2中,16位加法計數器的TH0和TL0具有不同功能,其中,TL0是8位計數器,TH0是重置初值的8位緩沖器。4方式3定時/計數器工作于方式3時,其邏輯結構圖如圖所示。第四節(jié) 編程和使用1計數器初值的計算把計數器計滿為零所需要的計數值設定為C,計數初值設定為TC,由此可得到公式:TC=M-C式中,M為計數器模值,該值和計數器工作方式有關。在方式0時M為213;在方式1時M為216;在方式2和方式3時M為28。2定時器初值的計算在定時器模式下,計數器由單片機主脈沖經12分頻后計數。因此,定時器定時時間T的公式:T=(M-TC)T計數,上式也可寫成:TC=M-T/ T計數。式中,M為模值,和定時器的工作方式有關;T計數是單片機振蕩周期TCLK的12倍;TC為定時器的定時初值。 第五章 串行通訊基礎第一節(jié) 串行通信基礎在計算機系統(tǒng)中,CPU和外部通信有兩種通信方式:并行通信和串行通信。并行通信,即數據的各位同時傳送;串行通信,即數據一位一位順序傳送。串行通信的分類按照串行數據的時鐘控制方式,串行通信可分為同步通信和異步通信兩類。1. 異步通信(Asynchronous Communication) 在異步通信中,數據通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數據均是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨立的時鐘來控制數據的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。 在異步通信中,接收端是依靠字符幀格式來判斷發(fā)送端是何時開始發(fā)送,何時結束發(fā)送的。字符幀格式是異步通信的一個重要指標。字符幀(Character Frame)字符幀也叫數據幀,由起始位、數據位、奇偶校驗位和停止位等4部分組成,波特率(baud rate)異步通信的另一個重要指標為波特率。 波特率為每秒鐘傳送二進制數碼的位數,也叫比特數,單位為b/s,即位/秒。波特率用于表征數據傳輸的速度,波特率越高,數據傳輸速度越快。但波特率和字符的實際傳輸速率不同,字符的實際傳輸速率是每秒內所傳字符幀的幀數,和字符幀格式有關。2. 同步通信(Synchronous Communication) 同步通信是一種連續(xù)串行傳送數據的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個數據字符,如圖8.4所示。圖8.4(a)為單同步字符幀結構,圖8.4(b)為雙同步字符幀結構,但它們均由同步字符、數據字符和校驗字符CRC三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標準格式,也可以由用戶約定。 第二節(jié) 串行通訊口的工作方式1.數據緩沖器SBUF發(fā)送SBUF和接收SBUF共用一個地址99H。 1)發(fā)送SBUF存放待發(fā)送的8位數據,寫入SBUF將同時啟動發(fā)送。發(fā)送指令:MOVSBUF,A2)接收SBUF存放已接收成功的8位數據,供CPU讀取。讀取串行口接收數據指令:MOV A,SBUF2.串行口控制/狀態(tài)寄存器SCON(98H)SM0,SM1:選擇串行口4種工作方式。SM2:多機控制位,用于多機通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8發(fā)送的第9位數據位,可用作校驗位和地址/數據標識位RB8:接收的第9位數據位或停止位TI:發(fā)送中斷標志,發(fā)送一幀結束,TI=1,必須軟件清零RI:接收中斷標志,接收一幀結束,RI=1,必須軟件清零3.節(jié)電控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍, SMOD=0,則不加倍。串行接口的工作方式SM0,SM1選擇四種工作方式。(1) 方式0:同步移位寄存器方式。用于擴展并行I/O接口。1.一幀8位,無起始位和停止位。2.RXD:數據輸入/輸出端。TXD:同步脈沖輸出端,每個脈沖對應一個數據位。3.波特率B = fosc/12如: fosc=12MHz,B=1MHz,每位數據占1ms。4.發(fā)送過程:寫入SBUF,啟動發(fā)送,一幀發(fā)送結束,TI=1。接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1。(2) 方式1:8位數據異步通訊方式。1.一幀10位:8位數據位,1個起始位(0),1個停止位(1)。 2.RXD:接收數據端。 TXD:發(fā)送數據端。3.波特率:用T1作為波特率發(fā)生器,B=(2SMOD/32)T1溢出率。4.發(fā)送:寫入SBUF,同時啟動發(fā)送,一幀發(fā)送結束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且停止位為1 (或SM2=0),將接收數據裝入SBUF,停止位裝入RB8,并使RI=1;否則丟棄接收數據,不置位RI。(3) 方式2和方式3:9位數據異步通訊方式。1.一幀為11位:9位數據位,1個起始位(0),1個停止位(1)。第9位數據位在TB8/RB8中,常用作校驗位和多機通訊標識位。2.RXD:接收數據端,TXD:發(fā)送數據端。3.波特率: 方式2:B=(2SMOD/64)fosc 。 方式3:B=(2SMOD/32)T1溢出率 。4.發(fā)送:先裝入TB8,寫入SBUF并啟動發(fā)送,發(fā)送結束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1 (或SM2=0),將接收數據裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數據,不置位RI。第三節(jié) 波特率的設置方法方式0為固定波特率:B=fosc/12方式2可選兩種波特率: B=(2SMOD /64)fosc 方式1、3為可變波特率,用T1作波特率發(fā)生器。B=(2SMOD/32)T1溢出率T1為方式2的時間常數: X = 28 - t/T溢出時間: t= (28 -X)T = (28 -X)12/ foscT1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32)fosc/12(28-X)串行口方式1、3,根據波特率選擇T1工作方式,計算時間常數。T1選方式2: TH1=X= 28-fosc/122SMOD/(32B)T1選方式1用于低波特率,需考慮T1重裝時間常數時間。第六章 中斷系統(tǒng)第一節(jié) 概述中斷是通過硬件來改變CPU的運行方向的。計算機在執(zhí)行程序的過程中,當出現CPU以外的某種情況時,由服務對象向CPU發(fā)出中斷請求信號,要求CPU暫時中斷當前程序的執(zhí)行而轉去執(zhí)行相應的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來被中斷的程序。這種程序在執(zhí)行過程中由于外界的原因而被中間打斷的情況稱為“中斷”。與中斷有關的寄存器有4個,分別為中斷源寄存器TCON和SCON、中斷允許控制寄存器IE和中斷優(yōu)先級控制寄存器IP;中斷源有5個,分別為外部中斷0請求 、外部中斷1請求、定時器0溢出中斷請求TF0、定時器1溢出中斷請求TF1和串行中斷請求RI或TI。5個中斷源的排列順序由中斷優(yōu)先級控制寄存器IP和順序查詢邏輯電路共同決定,5個中斷源分別對應5個固定的中斷入口地址。 第二節(jié) 中斷源與中斷申請標志中斷源(1)外部中斷0請求,由P3.2腳輸入。通過IT0腳(TCON.0)來決定是低電平有效還是下跳變有效。一旦輸入信號有效,就向CPU申請中斷,并建立IE0標志。(2)外部中斷1請求,由P3.3腳輸入。通過IT1腳TCON.2)來決定是低電平有效還是下跳變有效。一旦輸入信號有效,就向CPU申請中斷,并建立IE1標志。 (3)TF0:定時器T0溢出中斷請求。當定時器0產生溢出時,定時器0中斷請求標志位(TCON.5)置位(由硬件自動執(zhí)行),請求中斷處理。(4)TF1:定時器1溢出中斷請求。當定時器1產生溢出時,定時器1中斷請求標志位(TCON.7)置位(由硬件自動執(zhí)行),請求中斷處理。(5) RI或TI:串行中斷請求。當接收或發(fā)送完一串行幀時,內部串行口中斷請求標志位RI(SCON.0)或TI(SCON.1)置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 28807.3-2025軌道交通機車車輛和列車檢測系統(tǒng)的兼容性第3部分:與計軸器的兼容性
- 個人購銷農機合同范本
- 辦證合同范本模板
- 2025年黑龍江貨運從業(yè)資格證模擬考試題目
- 2025年固原貨運從業(yè)資格證考試試題
- 農業(yè)招標合同范本
- 供水項目施工合同范本
- 分級銷售合同范本
- 做布料生意合同范本
- 辦公花卉采購合同范本
- 關于進一步加強路基路面施工質量的通知
- 新版蘇教版六年級數學上冊全冊解析
- AQ/T 2080-2023 金屬非金屬地下礦山在用人員定位系統(tǒng)安全檢測檢驗規(guī)范(正式版)
- GB/T 36548-2024電化學儲能電站接入電網測試規(guī)程
- JTT 1499-2024 公路水運工程臨時用電技術規(guī)程(正式版)
- 2024年甘肅省天水市中考生物·地理試題卷(含答案)
- 壓力變送器的拆卸及安裝 壓力變送器維護和修理保養(yǎng)
- 2024遼寧大連中遠海運川崎船舶工程限公司招聘73人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 2024年上海市法院系統(tǒng)輔助文員招聘筆試參考題庫附帶答案詳解
- 企業(yè)復產復工方案
- 妊娠期合并糖尿病護理
評論
0/150
提交評論