單片機(jī)期末復(fù)習(xí)資料完全_第1頁
單片機(jī)期末復(fù)習(xí)資料完全_第2頁
單片機(jī)期末復(fù)習(xí)資料完全_第3頁
單片機(jī)期末復(fù)習(xí)資料完全_第4頁
單片機(jī)期末復(fù)習(xí)資料完全_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、主要復(fù)習(xí)知識(shí)點(diǎn):第一章 微機(jī)計(jì)算機(jī)系統(tǒng)的基本知識(shí)1.單片機(jī)就是在一片硅片上集成了中央處理器、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器和多種I/O口的微型計(jì)算機(jī)系統(tǒng),該系統(tǒng)不帶外部設(shè)備。從組成和功能上看,它已經(jīng)具備了計(jì)算機(jī)系統(tǒng)的基本屬性,所以也可以稱其為單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。2.微型處理器是單片機(jī)的核心。它主要由三部分組成:寄存器陣列、運(yùn)算器和控制器、3.程序計(jì)數(shù)器PC,專門用于存放現(xiàn)行指令的16位地址。CPU就是根據(jù)PC中的地址到ROM中讀取程序指令。每當(dāng)取出現(xiàn)行指令一個(gè)字節(jié)后,PC就自動(dòng)加1,PC+1PC,當(dāng)遇到轉(zhuǎn)移指令或子程序時(shí),PC內(nèi)容會(huì)被指定的地址取代,實(shí)現(xiàn)程序轉(zhuǎn)移。PC用

2、于存放CPU下一條要執(zhí)行的指令地址,是一個(gè)16位的專用寄存器。(PC的功能與作用)4.運(yùn)算器用來完成算術(shù)運(yùn)算和邏輯運(yùn)算操作,是處理信息的主要部件。運(yùn)算器主要由累加器A、狀態(tài)寄存器PSW、算術(shù)運(yùn)算單元ALU組成。累加器A,用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的一個(gè)操作數(shù)和運(yùn)算結(jié)果。狀態(tài)字寄存器,用來保存ALU操作運(yùn)算的條件標(biāo)志,如進(jìn)位標(biāo)志、奇偶標(biāo)志等。算術(shù)運(yùn)算單元ALU,由加法器和其他邏輯電路組成,其基本功能是進(jìn)行加法和移位運(yùn)算,由此實(shí)現(xiàn)其他各種算術(shù)和邏輯運(yùn)算。5.控制器是分析和執(zhí)行指令的部件,控制器只要由程序計(jì)數(shù)器PC、指令寄存器和指令譯碼器 組成。6.總線是用于傳送信息的公共途徑??偩€可以分為數(shù)據(jù)

3、總線、地址總線、控制總線。7.數(shù)據(jù)總線DB:數(shù)據(jù)線D0D7共8位,由P0提供,分時(shí)輸送低8位地址(通過地址鎖存器鎖存)和8位數(shù)據(jù)信息。數(shù)據(jù)總線是雙向的,可以從CPU輸出,也可以從外部輸入到CPU。8.地址總線AB:地址線A0A15共16位,P2口提供高8位地址A8A15,P0口經(jīng)地址鎖存器提供低8位地址A0A7。片外存儲(chǔ)器可尋址范圍達(dá)到64KB(即65536字節(jié))。9.控制總線CB:控制總線由P3口的第二功能P3.6、P3.7H和3根獨(dú)立的控制線ALE、和組成。10.存儲(chǔ)器是用來存儲(chǔ)數(shù)據(jù)和程序的部件。按其功能來分,存儲(chǔ)器可以分為隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)兩大類。11.RAM:可

4、以隨機(jī)寫入讀出,讀寫速度快,讀寫方便。缺點(diǎn)是電源斷電后,被存儲(chǔ)的信息會(huì)丟失。RAM主要用于存放各種數(shù)據(jù)。12.ROM:一般用來存放固定的數(shù)據(jù)和程序。其特點(diǎn)是信息寫入后,能長(zhǎng)期保存,不會(huì)因斷電而 丟失。所謂“只讀”指不能寫入。13.(基本了解)ROM的5種不同形式:MaskROM(淹膜ROM) OTPROM EPROM E²PROM FlashROM14.單片機(jī)程序設(shè)計(jì)語言可分為三類:機(jī)器語言、匯編語言和高級(jí)語言機(jī)器語言:機(jī)器語言是計(jì)算機(jī)可以識(shí)別和直接執(zhí)行的語言,它由一組二進(jìn)制代碼組成,不同的微處理器機(jī)器語言也不同。匯編語言:用助記符替代機(jī)器語言中的操作碼,用十六進(jìn)制數(shù)代替二進(jìn)制數(shù)。計(jì)

5、算執(zhí)行時(shí),必須將匯編語言翻譯成機(jī)器語言。匯編語言和機(jī)器語言一樣,微處理器不同,匯編語言也不同,即不同的微處理器采用不同的匯編語言。思考與練習(xí):Ø 1.1什么是單片機(jī)?答:?jiǎn)纹瑱C(jī)就是在一片硅片上集成了中央處理器、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器和多種I/O口的微型計(jì)算機(jī)系統(tǒng),該系統(tǒng)不帶外部設(shè)備。從組成和功能上看,它已經(jīng)具備了計(jì)算機(jī)系統(tǒng)的基本屬性,所以也可以稱其為單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。Ø 1.2單片機(jī)的基本組成有哪些?答:?jiǎn)纹瑱C(jī)由中央處理器、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器和多種I/O口組成。第二章 單片機(jī)的硬件結(jié)構(gòu)(重點(diǎn)復(fù)習(xí))15.(簡(jiǎn)答題)

6、80C51單片機(jī)有4個(gè)8位的雙向并行輸入/輸出(I/O)端口,稱為P0口、P1口、P2口和P3口。P0口:P0口是一個(gè)雙功能的8位并行I/O口,可用作輸入/輸出端口,又可作地址/數(shù)據(jù)總線分時(shí)傳輸時(shí)低8位地址和8位數(shù)據(jù)。P1口:P1口是單一功能的并行I/O口,只用作通用的數(shù)據(jù)輸入/輸出口。P2口:P2口是一個(gè)雙功能的8位并行I/O,可用作通用的輸入/輸出口,又可用作高8位地址總線。P3口:P3口是一個(gè)雙功能的8位并行I/O口,它的第一功能是通用輸入/輸出口,作第二功能用時(shí),各引腳定義如下:P3.0:RXD串行口輸入;P3.1:TXD串行口輸出;P3.2:外部中斷0輸入;P3.3:外部中斷1輸入;

7、P3.4:T0定時(shí)/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入;P3.5:T1定時(shí)/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入;P3.6:片外數(shù)據(jù)存儲(chǔ)器寫選通訊號(hào)輸出;P3.7:片外數(shù)據(jù)存儲(chǔ)器讀選通訊號(hào)輸出。16.基本時(shí)序單位單片機(jī)的時(shí)序單位有:振蕩周期:晶振的振蕩周期,又稱時(shí)鐘周期,為最小的時(shí)序單位。狀態(tài)周期:振蕩頻率經(jīng)單片機(jī)內(nèi)的二分頻器分頻后提供給片內(nèi)CPU的時(shí)鐘周期。因此,一個(gè) 狀態(tài)周期包含2個(gè)振蕩周期。機(jī)器周期:1個(gè)機(jī)器周期由6個(gè)狀態(tài)周期即12個(gè)振蕩周期組成。是計(jì)算機(jī)執(zhí)行一種基本操作(如取指令,讀存儲(chǔ)器,寫存儲(chǔ)器等)的時(shí)間單位。指令周期:執(zhí)行一條指令所需的時(shí)間。一個(gè)指令周期由14個(gè)機(jī)器周期組成,依據(jù)指令不同而不同。 4種

8、時(shí)序單位中,振蕩周期和機(jī)器周期是單片機(jī)內(nèi)計(jì)算其他時(shí)間值(例如,波特率、定時(shí)器的定時(shí)時(shí)間等)的基本時(shí)序單位。 例:?jiǎn)纹瑱C(jī)外接晶振頻率fosc= 12MHZ時(shí)的各種時(shí)序單位:振蕩周期=1/fosc=1/12MHZ=0.0833us;狀態(tài)周期=2/fosc=2/12MHZ=0.167us;機(jī)器周期=12/fosc=12/12MHZ=1us;指令周期=(14)機(jī)器周期=14us 。 17. MCS-51的存儲(chǔ)器結(jié)構(gòu)與常見的微型計(jì)算機(jī)的配置方法不同,采用哈佛結(jié)構(gòu)它將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開,各有自己的尋址方式、控制信號(hào)和功能。程序存儲(chǔ)器用來存放程序、始終要保留的表格、常數(shù)。數(shù)據(jù)存儲(chǔ)器存放程序運(yùn)行中所需

9、要的數(shù)據(jù)和結(jié)果(常數(shù)和變量)。18. 從物理空間(實(shí)際結(jié)構(gòu))看,MCS-51有四個(gè)存儲(chǔ)器地址空間: 片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器、片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器19. 從邏輯上(使用角度)看,MCS-51有三個(gè)存儲(chǔ)器空間:片內(nèi)、片外統(tǒng)一編址的程序存儲(chǔ)器,片外數(shù)據(jù)存儲(chǔ)器,片內(nèi)數(shù)據(jù)存儲(chǔ)器20. 程序存儲(chǔ)器中的幾個(gè)特殊地址的使用:地址 用途0000H 復(fù)位操作后的程序入口0003H 外部中斷0服務(wù)程序入口000BH 定時(shí)器0中斷服務(wù)程序入口0013H 外部中斷1服務(wù)程序入口001BH 定時(shí)器1中斷服務(wù)程序入口0023H 串行口中斷服務(wù)程序入口21. 外部數(shù)據(jù)存儲(chǔ)器作用:用于存放隨機(jī)讀寫的數(shù)據(jù)。外部

10、數(shù)據(jù)存儲(chǔ)器包括兩部分空間:外部RAM 擴(kuò)展的I/O口地址內(nèi)部數(shù)據(jù)存儲(chǔ)器(單元數(shù)少,但最復(fù)雜)特殊功能寄存器空間,離散分布,作數(shù)據(jù)緩沖器、標(biāo)志位等22. 程序存儲(chǔ)器與外部數(shù)據(jù)存儲(chǔ)器的比較相同:地址線A15A0不同:訪問的指令不同,讀寫信號(hào)不同。訪問程序寄存器的指令為MOVC指令,訪問外部數(shù)據(jù)存儲(chǔ)器的指令為MOVX指令;程序寄存器:只讀,PSEN作為外部ROM讀信號(hào);外部數(shù)據(jù)存儲(chǔ)器:可讀寫,RD作為讀信號(hào),WR作為寫信號(hào)。23.工作寄存器區(qū)的選擇RS1:程序狀態(tài)寄存器PSW的D4位;RS0:程序狀態(tài)寄存器PSW的D3位;RS1 RS0寄存器區(qū)R0R7所占單元的地址0 00區(qū)00H07H0 11區(qū)0

11、8H0FH1 02區(qū)10H17H1 13區(qū)18H1FH復(fù)位時(shí),自動(dòng)選中0區(qū)。一旦選中其中一個(gè)區(qū),其它三區(qū)只能作為普通RAM單元使用,而不能作為工作寄存器使用。設(shè)置多個(gè)工作寄存器區(qū)可以方便保護(hù)現(xiàn)場(chǎng)。24. 字節(jié)地址與位地址在使用上如何區(qū)別?例: MOV C,20H MOV A,20H 位操作指令 MOV C,20H 位地址只有1bit(小圓區(qū)域)字節(jié)操作指令 MOV A,20H 字節(jié)地址共8bit(大橢圓區(qū)域)25. 位地址空間組成及位地址表示法 內(nèi)部數(shù)據(jù)存儲(chǔ)器的20H2FH共16個(gè)單元可按位尋址,128位;例1:位地址 1EH= 23H . 6即字節(jié)單元23H的D6位 專用寄存器地址能被8整除

12、的可按位尋址。例2: 位地址 D4H= D0H . 4= PSW. 4= RS126.特殊功能寄存器的地址分配(名稱必須記?。?7.累加器ACC:累加器為8位的寄存器,是程序中使用最頻繁的寄存器,是用于存放中間結(jié)果和數(shù)據(jù)傳送的渠道。程序狀態(tài)字寄存器PSW:PSW也稱為標(biāo)志寄存器CY:進(jìn)/借位標(biāo)志。CY=1,有進(jìn)/借位 ;CY=0,無進(jìn)/借位。AC:輔助進(jìn)位標(biāo)志,反映高半字節(jié)與低半字節(jié)之間的進(jìn)/借位。AC=1有進(jìn)/借位;AC=0無進(jìn)/借位 。F0:用戶標(biāo)志位RS1,RS0:工作寄存器的控制位OV:溢出標(biāo)志位。有溢出 OV=1,無溢出OV=0。P:奇偶標(biāo)志位。運(yùn)算結(jié)果有奇數(shù)個(gè)“1”,P=1;偶數(shù)個(gè)

13、“1”,P=0。D1:無效位,一般不用。數(shù)據(jù)指針DPTR:數(shù)據(jù)指針DPTR是一個(gè)16位的專用寄存器,DPTR主要用來存放16位地址。PC用于存放CPU下一條要執(zhí)行的指令地址,是一個(gè)16位的專用寄存器。27. 訪問不同的存儲(chǔ)器空間使用不同的指令:程序存儲(chǔ)器,使用MOVC指令;外部數(shù)據(jù)存儲(chǔ)器,使用MOVX指令;內(nèi)部數(shù)據(jù)存儲(chǔ)器,使用MOV指令;特殊功能寄存器,使用MOV指令;位地址空間,使用MOV、SETB、CLR等指令。28. 堆棧是在單片機(jī)內(nèi)部RAM中從某個(gè)選定的存儲(chǔ)單元開始劃定的一個(gè)地址連續(xù)的區(qū)域。堆棧操作是在內(nèi)存RAM區(qū)專門開辟出來的按照“先進(jìn)后出”原則進(jìn)行數(shù)據(jù)存取的一種工作方式,主要用于子

14、程序調(diào)用及返回和中斷處理斷點(diǎn)的保護(hù)和返回。SP用來指示堆棧所處的位置。當(dāng)數(shù)據(jù)堆入棧區(qū)后,SP的值也自動(dòng)隨之變化。51單片機(jī)屬于向上生長(zhǎng)型堆棧(即向高地址方向生成)。29. 用一個(gè)稱為堆棧指針SP的特殊功能寄存器來給出棧頂存儲(chǔ)單元的地址。堆棧指針SP中存儲(chǔ)的總是堆棧棧頂存儲(chǔ)單元的地址,即堆棧指針SP總是指向堆棧棧頂。30. 向上生長(zhǎng)型堆棧出棧入棧的操作原則是“先進(jìn)后出”或“后進(jìn)先出”。31. 實(shí)現(xiàn)復(fù)位操作,必須使RST引腳(9)保持兩個(gè)機(jī)器周期以上的高電平。32. 復(fù)位是單片機(jī)的初始化操作,其主要功能是程序計(jì)數(shù)器PC值變?yōu)?000好,使單片機(jī)從0000H開始執(zhí)行程序。上電復(fù)位后,RAM的內(nèi)容是隨

15、機(jī)的。寄存器 初始狀態(tài) 寄存器 初始狀態(tài)PC 0000H ACC 00H PSW 00H SP 07H思考與練習(xí):2.1 51單片機(jī)內(nèi)部包括哪些主要部件?答:51單片機(jī)包括中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、并行輸入輸出口P1P3口、串行口、并行口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器等8個(gè)部件。2.2 80C51單片機(jī)的存儲(chǔ)器有哪幾種類型?可以劃分為哪幾個(gè)部分?答:80C51單片機(jī)的存儲(chǔ)器按功能可以劃分為兩大類:隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)??梢詣澐譃橐韵挛宀糠郑浩瑑?nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器、片外數(shù)據(jù)存儲(chǔ)器。Ø 2

16、.3 80C51如何確定和改變當(dāng)前工作寄存器區(qū)?答:在選擇工作寄存器區(qū)時(shí),可通過對(duì)特殊功能寄存器中的程序狀態(tài)寄存器PSW的RS1和RS0的狀態(tài)設(shè)置,來選擇哪一組工作寄存器作為當(dāng)前的工作寄存器組。單片機(jī)復(fù)位時(shí),當(dāng)前工作寄存器默認(rèn)為0組。Ø 2.4 位地址和字節(jié)地址如何區(qū)分?位地址00H7FH與片內(nèi)RAM的字節(jié)地址編址相同,容易混淆。區(qū)分方法:在80C51的指令系統(tǒng)中,有專門的位操作指令和字節(jié)操作指令來區(qū)分。(位操作指令 MOV C,20H 位地址只有1bit;字節(jié)操作指令 MOV A,20H 字節(jié)地址共8bit)。Ø 2.6 PC在執(zhí)行指令過程中,起什么作用?答:PC在執(zhí)行指

17、令過程中,PC用于存放CPU下一條要執(zhí)行的指令地址,是一個(gè)16位的專用寄存器。第三章 51單片機(jī)的指令系統(tǒng)33. 計(jì)算機(jī)所有的指令集合稱為該計(jì)算機(jī)的指令系統(tǒng)。34. 指令是基本格式:標(biāo)號(hào): 操作碼 目的操作數(shù) ,源操作數(shù) ;注釋標(biāo)號(hào):指令的符號(hào)地址;操作碼:規(guī)定指令的操作功能,是指令格式中唯一不能空缺的部分;操作數(shù):用于給指令的操作提供數(shù)據(jù)或地址。把左邊的操作數(shù)稱為目的操作數(shù),右邊的操作 數(shù)稱為源操作數(shù);注釋:注釋是對(duì)語句或程序段功能的說明。注釋用“:”開頭,可空缺。35. 按指令的功能分類:數(shù)據(jù)傳送指令(28條)、算術(shù)運(yùn)算類指令(24條)、邏輯運(yùn)算與移位類指令(25條)、控制轉(zhuǎn)移類指令(17

18、條)、位操作類指令(17條)。36.尋址方式立即尋址指令中跟在操作碼后面的數(shù)據(jù)就是實(shí)際參與運(yùn)算的操作數(shù),稱為立即數(shù)。MCS-51指令系統(tǒng)中允許使用8位和16位立即數(shù),立即數(shù)之前加“#”予以標(biāo)識(shí)。例:MOV A,#6DH MOV A,#3AH MOV DPTR,#0DFFFH MOV 40H,#30HMOV A,#60H MOV DPTR,#3400H MOV 30H,#40H直接尋址指令中包含了操作數(shù)的地址,該地址直接給出了參加運(yùn)算或傳送的單元的地址。 直接尋址可訪問兩種地址空間: 特殊功能寄存器SFR(又叫做專用寄存器) 內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM中的128個(gè)字節(jié)單元。例:MOV A,52H MO

19、V A,P1 MOV 30H,20H MOV P0,P1寄存器尋址把指定的某一可尋址的工作寄存器R0R7或A,B(乘、除指令中),DPTR,的內(nèi)容作為操作數(shù)。例:MOV 53H,A MOV B,A MOV 20H,R1 MOV P0,R0寄存器間接尋址指令指定的某一寄存器的內(nèi)容作為操作數(shù)地址。可用來間接尋址的寄存器有R0、R1和數(shù)據(jù)指針DPTR,前面加表示間接尋址??稍L問內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器。堆棧指針SP在執(zhí)行指令中也起到寄存器間接尋址的作用,但它不出現(xiàn)在指令表達(dá)形式中。實(shí)現(xiàn)間接尋址的地址指針:(1)Ri(R0、R1):尋址對(duì)象為片內(nèi)RAM的128個(gè)單元;(1)DPTR:尋址對(duì)象為外部數(shù)

20、據(jù)存儲(chǔ)器 。例:MOV A,R0 MOV B,R1 MOVX A,DPTR PUSH 20H POP ACC MOV R0,A MOVX A,R1 MOVX DPTR,A變址尋址基址寄存器(DPTR或PC):存放基準(zhǔn)地址;變址寄存器(A):存放偏移量;基址寄存器的內(nèi)容與變址寄存器的內(nèi)容的和為可尋址單元的地址。該類尋址方式用于訪問程序存儲(chǔ)器,對(duì)查表訪問特別有用。注意:A中內(nèi)容為無符號(hào)數(shù)。例:MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR位尋址采用位尋址方式的操作數(shù)是8位二進(jìn)制數(shù)中的某1位,指令中給出的是位址。尋址對(duì)象:片內(nèi)數(shù)據(jù)存儲(chǔ)器位尋址區(qū)中,位地址為00H7FH的12

21、8位11個(gè)可位尋址的特殊功能寄存器中的82個(gè)有效可尋址位。例:MOV C,3AH SETB PSW,4 MOV C,00H MOV C,20H思考與練習(xí):Ø 3.4下列哪些指令是非法指令,并改正。CJNE A,#30H,ABC ;合法CJNE A,30H,ABC ;合法CJNE 30H,A,ABC;非法CJNE A,30H,ABCCJNE R7,#30H,ABC ;合法CJNE R5,#30H,ABC ;合法CJNE A,R4,ABC ;非法不存在這種格式CJNE A,R4,ABC ;非法不存在這種格式(CJNE A,#data,rel/CJNE A,direct,rel/CJNE

22、Ri,#data,rel/CJNE Rn,#data,rel)DJNZ ACC,ABC ;合法DJNZ 30H,ABC ;合法(DJNZ Rn,rel/DJNZ direct,rel)INC DPTR ;合法(INC A/INC direct/INC Ri/INC Rn/INC DPTR)MOV A,R3 ;合法MOVX A,DPTR ;非法MOVX A,DPTR (MOVX A,DPTR/MOVX A,Ri/MOVX DPTR,A/MOVX Ri,A)DEC DPTR ;非法不存在這種格式(DEC A/DEC direct/DEC Ri/DEC Rn)JB 70H ;非法不存在這種格式(JB

23、 bit,rel)ADDC B,DIRECT1 ;非法不存在這種格式(ADDC A,#data/ADDC A,direct/ADDC A,Ri/ADDC A,Rn)Ø 3.5指出源操作數(shù)的尋址方式。MOV A,#30H (立即尋址)MOV A,B (直接尋址)MOV P0,P1 (直接尋址) DIV AB (寄存器尋址)MOVC A,A+DPTR (變址尋址)MOV 30H,A (寄存器尋址)PUSH 30H (直接尋址)PUSH B (寄存器尋址)POP ACC (寄存器間接尋址)Ø 3.7寫出下列程序執(zhí)行的結(jié)果。(40H)=FFHMOV 50,#40H ;(50H)=4

24、0HMOV R1,#50H ;R1=50HMOV A,R1 ;A=40HMOV R0,A ;R0=40HMOV 60H,R0 ;(60H)=FFHMOV 30H,60H ;(30H)=FFHØ 3.9分析下面程序執(zhí)行的結(jié)果。MOV SP,#2FH ;SP=2FHMOV A,#30H ;A=30HMOV B,#31H ;B=31HPUSH A ;SP=30H,(30H)=30HPUSH B ;SP=31H,(31H)=31HPOP A ;SP=30H,A=31HPOP B ;SP=2FH,B=30HØ 3.10分析執(zhí)行下列程序后A和標(biāo)志位C,AC,OV及P的結(jié)果。MOV A,

25、#0DH ;A=0DHMOV R7,#3DH ;R7=3DHADD A,R7 ;A=4AH,C=0,AC=1,OV=0,P=1第四章 51單片機(jī)的匯編語言程序設(shè)計(jì)37.偽指令:在對(duì)匯編語言進(jìn)行翻譯的過程中,需要提供一些有關(guān)匯編的信息指令。這些指令在匯編時(shí)起到控制作用,但其自身不產(chǎn)生機(jī)器代碼。偽指令就是匯編程序能夠識(shí)別的匯編命令,它是程序員發(fā)給匯編程序的命令,只在匯編過程中起作用,它不是單片機(jī)要執(zhí)行的指令,所以沒有機(jī)器碼。起始偽指令ORG(ORIGIN)格式:<標(biāo)號(hào):>ORG<地址>功能:出現(xiàn)在源程序的開頭,用于規(guī)定目標(biāo)程序存放的起始地址。例:程序如下: ORG 0000

26、H START:MOV A,#20H ADD A,#08H MOV 20H,A HERE:SJMP HERE結(jié)束偽指令END(END OF ASSEMBLY)格式:<標(biāo)號(hào):>END<表達(dá)式>功能:匯編終止命令,本命令用于終止源程序的匯編工作。例:程序如下: ORG 0000H START:MOV A,#20H ADD A,#08H MOV 20H,A HERE:SJMP HERE END賦值偽指令EQU(EQUATE)格式:<字符名稱>EQU<賦值項(xiàng)>功能:本命令用于給標(biāo)號(hào)賦值。例:程序如下:PP EQO R0 QQ EQU 30H MOV A,

27、PP ;把R0中的值送給A MOV B,QQ ;把30H中的值送給直接地址F0H定義字節(jié)偽指令DB(DEFINE BYTE)格式:<標(biāo)號(hào):>DB<8位數(shù)表>功能:定義字節(jié)命令,本命令用于從指定的地址開始,在程序存儲(chǔ)器的連續(xù)單元中定義字節(jié)數(shù)據(jù)。例:程序如下:ORG 0000H TAB:DB 00H,45H,67H,78H DB 78H,58H,90H,57H 匯編后結(jié)果:(0000H)=00H (0001H)=45H (0002H)=67H (0003H)=78H (0004H) =78H (0005H)=58H (0006H)=90H (0007H)=57H定義字偽指令

28、DW(DEFINE WORD)格式:<標(biāo)號(hào):>DW<16位數(shù)表>功能:定義數(shù)據(jù)字命令,本命令用于從指定地址開始,在程序存儲(chǔ)器的連續(xù)單元中定義16位的數(shù)據(jù)字。該命令將字?jǐn)?shù)據(jù)表中的數(shù)據(jù)依從左到右的順序存放在指定的存儲(chǔ)單元中,數(shù)據(jù)字的高8位放在低地址單元,低8位放在高地址單元。例:程序如下:ORG 0030H TAB:DW 6789H,3456H DW 1234H,5678H 匯編后的結(jié)果:(0030H)=67H,(0031H)=89H (0032H) =34H,(0033H)=56H (0034H) =12H,(0035H)=34H (0036H) =56H,(0037H)

29、=87H位定義命令BIT格式:<字符名稱>BIT<位地址>功能:本命令用于給字符名稱賦以位地址。例:程序如下:AQ BIT P0.0 DEF BIT P1.0匯編結(jié)果:把P0.0的位地址賦給AQ,把P1.0的位地址賦給DEF。38. 程序設(shè)計(jì)舉例:【例4-2】設(shè)在片內(nèi)RAM中,20H和21H單元各存放有一個(gè)8位數(shù)據(jù),要求拼裝一個(gè)新字節(jié)并送30H保存,其低5位取自20H單元中的低5位,高3位取自21H單元中的低3位。實(shí)現(xiàn)程序如下:MOV 30H,20H ;20H單元中的數(shù)據(jù)送入30H單元ANL 30H,#00011111B ;屏幕高3位MOV A,21H ;21H單元中的

30、數(shù)據(jù)送入ASWAP A ;將A中的數(shù)據(jù)高低3位交換,循環(huán)左移4次RL A ;將A中數(shù)據(jù)再循環(huán)左移1次ANL A,#11100000B ;屏蔽A中數(shù)據(jù)的低5位ORL 30H,A ;完成拼裝【例4-6】設(shè)在外部RAM的3個(gè)連續(xù)存儲(chǔ)單元ST1/ST2和ST3中,ST1和ST2存放著兩個(gè)不帶符號(hào)的二進(jìn)制數(shù),請(qǐng)找出其中的大數(shù)并存在ST3中。程序如下:START:CLR C ;進(jìn)位位清0 MOV DPTR,#ST1 ;設(shè)置數(shù)據(jù)指針 MOVX A,DPTR ;取第一個(gè)數(shù) MOV R7,A ;暫存R7 INC DPTR ;數(shù)據(jù)指針加1 MOVX A,DPTR ;取第二個(gè)數(shù) SUBB R7 ;比較兩數(shù)的大小 J

31、NC BIG1 ;第二個(gè)數(shù)大轉(zhuǎn)移 XCH A,R7 ;第一個(gè)數(shù)大送ABIG0: INC DPTR ;數(shù)據(jù)指針加1 MOVX DPTR,A ;存大數(shù) RETBIG1: MOVX A,DPTR ;第二個(gè)數(shù)送A【例4-11】有一數(shù)據(jù)塊從片內(nèi)RAM的30H單元開始存入,設(shè)數(shù)據(jù)塊長(zhǎng)度為10個(gè)單元。根據(jù)下式:求出Y的值,將Y值存入31H單元。程序如下: ORG 1000H MOV A,30H ;取數(shù) JB ACC.7,NEG ;負(fù)數(shù),轉(zhuǎn)NEG JZ ZERO ;為零,轉(zhuǎn)ZERO ADD A,#02H ;為正數(shù),求X+2 AJMP SAVE ;轉(zhuǎn)到SAVE,保存數(shù)據(jù)ZERO:MOV A,#64H ;數(shù)據(jù)為零

32、,Y=100 AJMP SAVE ;轉(zhuǎn)到SAVE,保存數(shù)據(jù)NEG:DEC ACPL A ;求|X|SAVE:MOV 31H,A ;保存數(shù)據(jù) SJMP $ ;暫?!纠?-13】在外部RAM首地址為table的數(shù)據(jù)表中,有10個(gè)字節(jié)的數(shù)據(jù),編程將每個(gè)字節(jié)的最高位無條件的置1。實(shí)現(xiàn)程序如下: MOV DPTR,#table ;送數(shù)據(jù)表首地址 MOV R7,#OAH ;置處理次數(shù)LOOP:MOVX A,DPTR ;取數(shù)據(jù) ORL A,#10000000B ;最高位置1 MOV X DPTR,A ;送回 INC DPTR ;地址加1 DJNZ R7,LOOP ;未處理完返回 SJMP $【例4-20】編

33、寫一程序,實(shí)現(xiàn)下圖中邏輯運(yùn)算電路。其中P3.1、P1.1、P1.0分別是單片機(jī)端口線上的信息,RS0、RS1是PSW寄存器的兩個(gè)標(biāo)志位,30H、31H是兩個(gè)位地址,運(yùn)算結(jié)果由P1.0輸出。程序如下:ORG 0000HMOV C,P3.1ANL C,P1.1CPL C MOV 20H,C;暫存數(shù)據(jù)MOV C,30HORL C,/31HANL C,RS1ANL C,20HANL C,RS0MOV P1.0,C ;輸出結(jié)果SJMP $思考與練習(xí):Ø 4.5編程:把內(nèi)部RAM20H單元開始有8個(gè)數(shù),試找出其中最大的數(shù),送入MAX單元。答:程序如下: MAX EQU 2AHSMAX:MOV R

34、0,#20H ;置數(shù)據(jù)區(qū)首地址 MOV MAX,R0 ;讀第一個(gè)數(shù)暫作最大數(shù) MOV R7,#7 ;置數(shù)據(jù)長(zhǎng)度(N-1)LOOP:INC R0 ;指向下一個(gè)數(shù) MOV A,R0 ;讀下一個(gè)數(shù) CJNE A,MAX,NEXT ;數(shù)值比較,在C中產(chǎn)生大小標(biāo)志NEXT:JC LOP1 ;C=1,表明A值小,轉(zhuǎn) MOV MAX,A ;C=0,表明A值大,大數(shù)送MAXLOP1:DJNZ R7,LOOP ;判數(shù)據(jù)比完否?未完比較下一個(gè) RET ;數(shù)據(jù)比完,退出循環(huán)Ø 4.11編程實(shí)現(xiàn)邏輯運(yùn)算:Y=G(H+C)+D(E+X)答:假設(shè)各個(gè)變量,對(duì)應(yīng)的計(jì)算機(jī)引腳如下兩式: Y = G (H + C)

35、+ D (E + X)P1.0=P1.1*(P1.2+P1.3)+P1.4*(P1.5+P1.6)程序如下 MOV C, P1.2 ;取來H ORL C, P1.3 ;或上 C ANL C, P1.1 ;與上G MOV PSW.5, C ;暫時(shí)存放 MOV C, P1.5 ;取來E ORL C, P1.6 ;或上X ANL C, P1.4 ;與上D ORL C, PSW.5 ;或上前面結(jié)果 MOV P1.0,C ;輸出到Y(jié)第五章 51單片機(jī)的中斷系統(tǒng)39.51單片機(jī)共有5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí),可以實(shí)現(xiàn)兩級(jí)中斷嵌套。40.中斷源就是引起中斷的來源,也可認(rèn)為是中斷的原因。51單片機(jī)提供了5個(gè)中

36、斷源:兩個(gè)外部中斷請(qǐng)求和,兩個(gè)片內(nèi)計(jì)數(shù)器/定時(shí)器中斷T0和T1,另一個(gè)為片內(nèi)串行口中斷。41.外部中斷源:表TCON寄存器位結(jié)構(gòu)位置D7D6D5D4D3D2D1D0位地址8F8E8D8C8B8A8988位符號(hào)TF1TR1TF0TR0IE1IT1IE0IT0IT0是觸發(fā)方式控制位,即選擇外部中斷0是電平觸發(fā)方式還是下降沿觸發(fā)方式,此位可由軟件置位和復(fù)位;IE0是中斷下降沿請(qǐng)求標(biāo)志位;IT1和IE1分別為外部中斷1的觸發(fā)方式控制位和下降沿中斷請(qǐng)求標(biāo)志位。42.內(nèi)部中斷源:(1)定時(shí)器/計(jì)數(shù)器中斷源TF0是片內(nèi)定時(shí)器/計(jì)數(shù)器0溢出時(shí)中斷申請(qǐng)標(biāo)志位。TF1是片內(nèi)定時(shí)器/計(jì)數(shù)器1溢出時(shí)中斷申請(qǐng)標(biāo)志位,功

37、能與TF0相同。(2)串行口中斷:表SCON寄存器位結(jié)構(gòu):位置D7D6D5D4D3D2D1D0位地址9FH9EH9DH9CH9BH9AH99H98H位符號(hào)SM0SM1SM2RENIB8RB8TIRI TI是串行口發(fā)送完畢中斷標(biāo)志位。當(dāng)TI=1時(shí),就向CPU申請(qǐng)中斷,表示數(shù)據(jù)發(fā)送完畢; RI是串行口接收完畢中斷標(biāo)志位。RI=1表示串行口接收器向CPU申請(qǐng)中斷。43.計(jì)算機(jī)中斷系統(tǒng)中有兩種不同類型的中斷:一種稱為非屏蔽中斷,另一種稱為可屏蔽中斷。對(duì)非屏蔽中斷,用戶不能用軟件方法加以禁止,一旦有中斷申請(qǐng),CPU必須予以響應(yīng)。但對(duì)可屏蔽中斷,用戶則可以通過軟件方法來控制是否允許某中斷源的中斷。51系列

38、單片機(jī)的5個(gè)中斷源都是可屏蔽中斷的。44.表中斷允許寄存器IE的位結(jié)構(gòu)位置D7D6D5D4D3D2D1D0位地址AFHADHACHABHAAHA9HA8H位符號(hào)EA-ESET1EX1ET0EX0EA是CPU中斷總允許位。當(dāng)EA=1時(shí),開放中斷,而每個(gè)中斷是開放還是屏蔽分別由各自的允許位確定。EA=0,禁止所有中斷,不論其他為是否為1。ES是串行口中斷允許位。ES=1,允許串行口的接收和發(fā)送中斷;ES=0,禁止串行口中斷。ET1是開放或禁止定時(shí)器1溢出中斷位。ET1=0則禁止定時(shí)器1中斷,置位則開啟其中斷。EX1是外部中斷1的中斷允許位。EX1=0,則禁止外部中斷1中斷,EX=1,則開啟其中斷。

39、ET0是開放或禁止定時(shí)器0溢出中斷位。ET0=0則禁止定時(shí)器0中斷,置位則開啟其中斷。EX0是外部中斷0的中斷允許位。EX0=0,則禁止外部中斷0中斷,置位則開啟其中斷。45. 表中斷優(yōu)先級(jí)寄存器IP的位結(jié)構(gòu)位置D7D6D5D4D3D2D1D0位地址BDHBCHBBHBAHB9HB8H位符號(hào)-PSPT1PX1PT0PX0PS:串行口優(yōu)先級(jí)設(shè)定位。PS=1時(shí),則編程為高優(yōu)先級(jí)。PT1:定時(shí)器1優(yōu)先級(jí)設(shè)定位。PT1=1時(shí),則編程為高優(yōu)先級(jí)。PX1:外部中斷1優(yōu)先級(jí)設(shè)定位。PX1=1時(shí),則編程為高優(yōu)先級(jí)。PT0: 定時(shí)器0優(yōu)先級(jí)設(shè)定位。PT0=1時(shí),則編程為高優(yōu)先級(jí)。PX0:外部中斷0優(yōu)先級(jí)設(shè)定位。

40、PX0=1時(shí),則編程為高優(yōu)先級(jí)。46.單片機(jī)對(duì)中斷優(yōu)先級(jí)的處理原則:CPU同時(shí)接收到幾個(gè)相同優(yōu)先級(jí)的中斷請(qǐng)求時(shí),首先響應(yīng)優(yōu)先權(quán)最高的中斷請(qǐng)求;低優(yōu)先級(jí)中斷可以被高優(yōu)先級(jí)中斷所中斷;中斷不能被與它同級(jí)和比它低級(jí)的中斷所中斷;當(dāng)同一級(jí)中斷同時(shí)申請(qǐng)中斷時(shí),按單片機(jī)系統(tǒng)內(nèi)部硬件查詢順序確定優(yōu)先級(jí),用戶無法自行更改。47.各中斷源的入口地址:(熟記)中斷源入口地址外部中斷00003H定時(shí)器/計(jì)數(shù)器T0000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器T1001BH串行口中斷0023H48.中斷響應(yīng)條件:相應(yīng)的中斷是開放的;沒有同級(jí)的中斷或更高級(jí)別的中斷正在處理;正在執(zhí)行的指令必須執(zhí)行完最后 1個(gè)機(jī)器周期若正在

41、執(zhí)行RETI,或正在訪問IE或IP寄存器,則必須執(zhí)行完當(dāng)前指令的下一條指令。后方能響應(yīng)中斷。49.設(shè)置中斷的初始化工作:?jiǎn)纹瑱C(jī)中斷系統(tǒng)初始化包括設(shè)置堆棧、選擇中斷觸發(fā)方式(對(duì)外中斷而言)、開中斷、設(shè)置中斷優(yōu)先級(jí)等,對(duì)定時(shí)器/計(jì)數(shù)器還要對(duì)運(yùn)行控制位TR置位。50. 中斷服務(wù)程序的編寫:在中斷入口地址處設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處;保護(hù)現(xiàn)場(chǎng);中斷服務(wù)主體程序;若是外中斷電平觸發(fā)方式,應(yīng)有中斷信號(hào)撤除操作;若是串行收發(fā)中斷,應(yīng)有對(duì)RI、TI清0指令;恢復(fù)現(xiàn)場(chǎng);中斷返回。思考與練習(xí):Ø 5.7簡(jiǎn)述中斷初始化過程。答: 設(shè)置堆棧指針SP;定義中斷優(yōu)先級(jí)(IP);選擇外中斷觸

42、發(fā)方式(TCON);開放相應(yīng)中斷允許(IE);安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的操作內(nèi)容,如設(shè)置計(jì)數(shù)器、串行口的有關(guān)參數(shù)等。Ø 5.8中斷服務(wù)程序的設(shè)計(jì)要考慮哪些因素?答:在中斷入口地址處設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處;保護(hù)現(xiàn)場(chǎng);中斷服務(wù)主體程序;若是外中斷電平觸發(fā)方式,應(yīng)有中斷信號(hào)撤除操作;若是串行收發(fā)中斷,應(yīng)有對(duì)RI、TI清0指令;恢復(fù)現(xiàn)場(chǎng);中斷返回。第六章 51單片機(jī)的定時(shí)器/計(jì)數(shù)器51. 定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)框圖從圖中可以看出,51計(jì)數(shù)器是一個(gè)加1計(jì)數(shù)器,其計(jì)數(shù)源來自兩個(gè),一個(gè)是端口T0的外部中斷源,另一個(gè)是系統(tǒng)振蕩器的12分頻,“計(jì)數(shù)源開關(guān)”可實(shí)現(xiàn)兩個(gè)

43、計(jì)數(shù)源的轉(zhuǎn)換,另一個(gè)開關(guān)為“控制開關(guān)”,用來決定加1計(jì)數(shù)器的開啟。這兩個(gè)模擬開關(guān)都是位開關(guān),通過對(duì)特殊功能寄存器(TMOD與TCON)的對(duì)應(yīng)位置1或清0來實(shí)現(xiàn)開關(guān)功能。52.所謂計(jì)數(shù)是指對(duì)外部事件進(jìn)行的計(jì)數(shù)。計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外部輸入脈沖進(jìn)行計(jì)數(shù)。53.定時(shí)功能實(shí)際上也是通過計(jì)數(shù)器的計(jì)數(shù)來實(shí)現(xiàn)的。此時(shí)的計(jì)數(shù)脈沖源是通過對(duì)振蕩器12分頻得到,即一個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,換句話說就是每個(gè)機(jī)器周期計(jì)數(shù)器加1,因此計(jì)數(shù)頻率為振蕩頻率的1/12。54.16位計(jì)數(shù)器,它的最大值為65535(16進(jìn)制數(shù)為0FFFFH),加1計(jì)數(shù)器不斷進(jìn)行對(duì)脈沖個(gè)數(shù)的累加,最終會(huì)達(dá)到這個(gè)最大值,如果此時(shí)計(jì)數(shù)器再加1,就

44、會(huì)使16位計(jì)數(shù)器的值變?yōu)?,并使中斷標(biāo)志位置1,觸發(fā)中斷,這就是定時(shí)器/計(jì)數(shù)器的“溢出”。55.定時(shí)方式寄存器TMOD的位結(jié)構(gòu)位置D7D6D5D4D3D2D1D0位地址GATEC/M1M0GATE C/M1M0位符號(hào)定時(shí)器T1定時(shí)器T0GATE選通控制位。當(dāng)GATE=0時(shí),由寄存器TCON中的運(yùn)行控制位TRx啟動(dòng)定時(shí)器X;當(dāng)DATE=1時(shí),只有外中斷請(qǐng)求信號(hào)為高電平且TRx置位時(shí),才啟動(dòng)定時(shí)器X。C/定時(shí)方式或計(jì)數(shù)方式選擇位。C/=0為定時(shí)器工作方式;C/=1為計(jì)數(shù)器工作方式。M1M0工作方式選擇位。當(dāng)M1M0=00時(shí),為方式013位定時(shí)器/計(jì)數(shù)器工作方式;當(dāng)M1M0=01時(shí),為方式116位定

45、時(shí)器/計(jì)數(shù)器工作方式;當(dāng)M1M0=10時(shí),為方式2常數(shù)自動(dòng)裝入的8位定時(shí)器/計(jì)數(shù)器工作方式;當(dāng)M1M0=11時(shí),為方式3僅適用于定時(shí)器T0,為兩個(gè)8位定時(shí)器/計(jì)數(shù)器工作方式。在方式3時(shí),定時(shí)器T1停止計(jì)數(shù)。56.定時(shí)控制寄存器TCON既參與中斷控制又參與定時(shí)控制。TF0定時(shí)器0計(jì)數(shù)溢出標(biāo)志位。TR0定時(shí)器0運(yùn)行控制位。TR=0,關(guān)閉定時(shí)器/計(jì)數(shù)器0,反之則開啟。TF1定時(shí)器1計(jì)數(shù)溢出標(biāo)志位。TR1定時(shí)器1運(yùn)行控制位。57.定時(shí)器/計(jì)數(shù)器初值計(jì)算(1)計(jì)數(shù)初值計(jì)算:方式0:X=213S方式1:X=216S方式2或方式3:X= S(其中X值計(jì)數(shù)初值,即時(shí)間常數(shù);S指輸入脈沖數(shù))(2)定時(shí)初值計(jì)算:

46、定時(shí)時(shí)間 t=S*TM=(2N-X) * 12/fosc (其中t指計(jì)滿溢出時(shí)間;S指輸入脈沖數(shù); TM指機(jī)器周期; 2N指計(jì)數(shù)器位數(shù);X指計(jì)數(shù)初值即時(shí)間常數(shù);fosc指振蕩頻率)定時(shí)方式0 計(jì)數(shù)初值X= 213 t * fosc/12定時(shí)方式1 計(jì)數(shù)初值X= 216 t * fosc/12定時(shí)方式2或3 計(jì)數(shù)初值X= 28 t * fosc/1258.定時(shí)器/計(jì)數(shù)器初始化步驟:(1)根據(jù)定時(shí)器/計(jì)數(shù)器的工作方式,設(shè)置TMOD ;(2)計(jì)算定時(shí)器/計(jì)數(shù)器的初值,寫入T0(TH0、TL0), T1(TH1、TL1);(3)設(shè)置IE、IP,以開放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級(jí);(4)使TR0/TR1置

47、位,啟動(dòng)定時(shí)/計(jì)數(shù)器。59.定時(shí)器/計(jì)數(shù)器的工作方式:方式0:此時(shí)的計(jì)數(shù)器是一個(gè)13位寄存器結(jié)構(gòu);方式1:方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式;方式2:方式2與方式0、1的區(qū)別除了計(jì)數(shù)位數(shù)不一樣外(方式2是8位計(jì)數(shù)結(jié)構(gòu)),最顯著的區(qū)別就是計(jì)數(shù)器計(jì)數(shù)溢出時(shí),能夠自動(dòng)裝載初值。思考與練習(xí):Ø 6.7已知單片機(jī)系統(tǒng)時(shí)鐘頻率為6MHz,利用定時(shí)器0控制P2.1口,使其輸出周期為60ms,占空比為2:1的方波。答:設(shè)定時(shí)間基準(zhǔn)為20ms,即定時(shí)時(shí)間為20ms。則定時(shí)初值高電平的軟件計(jì)數(shù)為2,低電平的軟件計(jì)數(shù)為1.主程序如下:ORG 0000HLJMP MAINORG 000BHLJMP INT0M

48、AIN:SETB P2.1 MOV R2,#02H MOV TMOD,#01H MOV TH0,#D8H MOV TL0.#0F0H SETB ET0 SETB EA SETB TR0 SJMP $INT0:PUSH PSW PUSH ACC MOV TH0.#D8H MOV TL0,#0F0H DJNE R2,EXITCPL P2.1JNB P2.1MOV R2,#02HSJMP EXITL1:MOV R2.#01H POP ACC POP PSWEXIT:RETIENDØ 6.9利用定時(shí)器定0,循環(huán)點(diǎn)亮8個(gè)發(fā)光二極管,每個(gè)持續(xù)時(shí)間0.5s。試畫出電路圖并編寫程序。答:假設(shè)單片機(jī)晶振頻率為12MHZ,那么模式1最多能定時(shí)65.526ms,對(duì)于1秒的定時(shí),必須設(shè)置一個(gè)軟件計(jì)數(shù)器,進(jìn)行軟硬結(jié)合進(jìn)行定時(shí)。假定讓定時(shí)器定時(shí)50ms,軟件計(jì)數(shù)器R7初值為10,這樣定時(shí)中斷10次就是0.5秒,0.5秒后才讓P1閃一次,如此循環(huán)。ORG 0000H SJMP MAIN OR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論