版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、知識目標1) 掌握MCS-51系列單片機原理與內部結構,掌握其存儲器結構、總線結構、指令系統(tǒng)、定時器/計數器、中斷系統(tǒng)和串行接口的相關知識點。2) 掌握MCS-51系列單片機的最小系統(tǒng)構成及外圍接口技術。3) 掌握MCS-51系列單片機匯編指令和C51語言的指令格式、編程方法。4) 掌握MCS-51系列單片機應用設計的基本步驟、思路和方法。5) 掌握MCS-51系列單片機系統(tǒng)開發(fā)平臺的使用方法。第1章 單片機基礎知識概述單片機及其發(fā)展概況;單片機的特點和應用;單片機的發(fā)展趨勢;單片機學習的預備知識;Proteus應用簡介。第2章 MCS-51單片機的結構及原理MCS-51單片機的結構;引腳
2、功能;存儲器結構;CPU時序和工作方式;并行I/O口。第3章 單片機的匯編語言與程序設計MCS-51指令系統(tǒng)概述;尋址方式;數據傳送類、算術運算類、邏輯運算與移位類控制轉移類、位操作類和I/O口訪問指令。第4章 單片機的C51語言C51的程序結構;C51的數據結構;C51與匯編語言的混合編程;C51仿真開發(fā)環(huán)境。第5章 單片機的中斷系統(tǒng)中斷的概念;中斷控制系統(tǒng);中斷處理過程;中斷的編程和應用舉例。第6章 單片機的定時/計數器定時/計數器的結構與工作原理;定時/計數器的控制;定時/計數器的工作方式;定時/計數器的編程和應用。第7章 單片機的串行口及應用 串行通信概述;MCS-51的串行口控制器;
3、串口工作方式及其應用。第8章 單片機接口技術單片機的系統(tǒng)總線;簡單并行I/O口擴展;可編程并行I/O口擴展;D/A轉換與DAC0832應用;A/D轉換與ADC0809應用;開關量功率接口技術。第9章 單片機應用系統(tǒng)的設計與開發(fā)單片機系統(tǒng)的設計開發(fā)過程;單片機系統(tǒng)的可靠性技術;單片機系統(tǒng)設計開發(fā)應用舉例智能儀器;單片機串行擴展單元介紹。6.2教學重點、難點一、教學重點本課程教材的重點章是第18章,重點的知識點具體如下所列。1) 單片機的概念、特點和應用;單片機的發(fā)展趨勢;單片機學習的預備知識。2) MCS-51單片機的結構;引腳功能;存儲器結構;CPU時序和工作方式;并行I/O口。3) MCS-
4、51指令系統(tǒng)概述;尋址方式;數據傳送類、算術運算類、邏輯運算與移位類控制轉移類、位操作類和I/O口訪問指令。4) C51的程序結構;C51的數據結構;C51語言的編程應用。5) 中斷的概念;中斷控制系統(tǒng);中斷處理過程;中斷的編程和應用。6) 定時/計數器的結構與工作原理;定時/計數器的控制;定時/計數器的工作方式;定時/計數器的編程和應用。7) 串行通信基本概念;MCS-51的串行口控制器;串口工作方式及其應用。8) 單片機的系統(tǒng)總線;簡單并行I/O口擴展;D/A轉換與DAC0832應用;A/D轉換與ADC0809應用。二、教學難點本課程屬于較為基礎的專業(yè)課,對于微機原理和C語言學得好的同學來
5、說應該不困難,下文所列的只是相對較難的知識點。1) 單片機的特點和應用;單片機的發(fā)展趨勢。2) MCS-51單片機的基本結構;引腳功能;存儲器結構;CPU時序和工作方式。3) MCS-51指令系統(tǒng)概述;尋址方式;數據傳送類、算術運算類、邏輯運算與移位類控制轉移類、位操作類和I/O口訪問指令。4) C51的程序結構;C51的數據結構;C51語言的編程應用。5) 中斷控制系統(tǒng);中斷處理過程;中斷的編程和應用。6) 定時/計數器的結構與工作原理;定時/計數器的控制;定時/計數器的工作方式;定時/計數器的編程和應用。7) 串行通信基本概念;MCS-51的串行口控制器;串口工作方式及其應用。8) D/A
6、轉換與DAC0832應用;A/D轉換與ADC0809應用。教學內容重點:單片機的概念和特點;單片機的主要發(fā)展方向和主流技術;幾種常見的單片機產品。難點:單片機基本概念;單片機、微控制器、嵌入式系統(tǒng)等概念的區(qū)分與聯系。教學方法多媒體演示、實物演示作業(yè)安排及課后反思作業(yè):P16,第1、2題。思考:試分析一下今后單片機將向那個方向發(fā)展,為什么?課前準備情況及其他相關特殊要求預習1.1參考資料(具體到哪一章節(jié)或頁碼)教材第1-3頁謝維成,楊加國. 單片機原理與應用及C51程序設計(第3版)M. 北京: 清華大學出版社,2014. 第1章7.2教學單元二教學日期第2次課教學目標梳理單片機學習的基本知識,
7、掌握數制、編碼等基礎知識;了解單片機開發(fā)環(huán)境Proteus及Keil的使用方法。教學內容1.2 單片機學習的預備知識1.3 Proteus應用簡介重點:十進制、二進制、十六進制直接的轉換;基礎門電路的功能和使用方法。難點:十進制小數和整數轉換為二進制數。教學過程1.2 單片機學習的預備知識一、計算機中數的表示計算機只識別和處理數字信息,數字是以二進制數表示的;它易于物理實現,同時,資料存儲、傳送和處理簡單可靠;運算規(guī)則簡單,使邏輯電路的設計、分析、綜合、方便,使計算器具有邏輯性。(一)數制及數制之間的轉換1、各種進位計數及其表示方法數字符號:0、1、2、9 數碼。數碼的個數基數。進位規(guī)則:逢十
8、進一例如,十進制數,10個數碼;采用“逢十進一”30681 = 3×104+0×103+6×102+8×101+1×100例如,二進制數,2個數碼,采用“逢二進一”(11010100)2 = 1×27+1×26+0×25+1×24+0×23+1×22+0×21+0×20總之,N進制數,N個數碼,“逢N進一”二進制數與十六進制數的相互轉換a)二進制轉換十六進制:規(guī)律是:以小數點為界限,分別往前往后每四位二進制數一組進行分組,(整數部分不夠的位直接在高位補0,小數部分不
9、夠的位在往其低位補0),之后把每一組轉換成對應得到十六進制數碼即可。b)十六進制轉換二進制: 規(guī)律是:上述轉換的“逆”,即把每位十六進制數碼都轉換成對應四位二進制數,按照十六進制數正常的順序排列即可。c)十進制轉換十六進制: 方法:可以先轉換成二進制數,在轉換成十六進制數(較簡單些)。(二) 有符號數表示方法1、 機器數與真值機器只認識二進制數:0、1。這是因為,電路狀態(tài)常有兩個,如通、斷;高電平、低電平;可用0、1表示。這種0、1、0、11在機器中的表現形式機器數。一般為8位。 無符號數:00000000B、11111111B即00H FFH機器數有:帶符號數:+1010110B、-1101
10、001 真值符號位和數值位:計算機中通常都是用最高位來表示一個數的符號。并且分別用“0”和“1”表示正和負。有符號數有三種表示方法。原碼、反碼和補碼。a)、原碼(Primary Code)正數的原碼與原來的數相同。負數的原碼符號位“置1”,數值位不變。舉例(略:+5、-5、+0、-0)原碼數的范圍:-127+127b)、反碼(Diminished Radix Complement)正數的反碼與原來的數相同。負數的反碼符號位“置1”,數值位按位取反得到。舉例(略:+5、-5、+0、-0)反碼數的范圍:-127+127c)、補碼(Complementary Code)正數的補碼與原來的數相同。負數
11、的補碼由它的絕對值求反加1后得到,符號位“置1”。舉例(略:+5、-5、0)數的范圍:-128+127(三)8421BCD碼(Binary Coded Decimal Code)由于人們習慣上用十進制數通過計算機輸入輸出數據,而計算機需要用二進制進行分析計算,因此需要計算機將十進制轉換成二進制,影響計算機的工作速度。用二進制數對每位十進制數進行編碼稱為BCD碼,或叫二十進制數。用標識符 BCD表示1、 BCD碼與十進制數的轉換BCD碼與二進制不能直接轉換,一般先轉換成十進制,再轉成二進制。0100 0011B=67D=0110 0111BCD注意:不能將BCD碼看成是二進制數。1.3 Prot
12、eus應用簡介開發(fā)工具PROTEUS單片機仿真軟件開發(fā)工具 Keil集成開發(fā)環(huán)境軟件仿真運行效果教學方法多媒體演示,仿真軟件演示。作業(yè)安排及課后反思作業(yè):P16,第5、6、7題。思考:試分析一下今后單片機將向那個方向發(fā)展,為什么?課前準備情況及其他相關特殊要求預習1.2,1.3節(jié);閱讀教材204頁(閱讀材料1)參考資料(具體到哪一章節(jié)或頁碼)教材第3-16頁。謝維成, 楊加國. 單片機原理與應用及C51程序設計(第3版)M. 北京: 清華大學出版社, 2014. 第1章。單片機課程學習網站(各大電子類專業(yè)網站。7.3教學單元三教學日期第3次課教學目標掌握MCS-51單片機的存儲器結構與復位方式
13、,引腳功能,內部結構和工作原理。教學內容第2章 MCS-51單片機的結構及原理2.1 MCS-51單片機的結構2.2 MCS-51的存儲器結構2.3 單片機的復位、時鐘與時序2.4 并行I/O口重點:80C51單片機的引腳功能和內部結構,單片機的存儲器結構與復位方式。難點:單片機的內部結構和工作原理。教學過程MCS-51單片機的基本結構2.1.1 MCS-51單片機硬件結構特點1內部程序存儲器(ROM)和內部數據存儲器(RAM)容量(如表2-1所示)。2輸入/輸出(I/O)端口3外部程序存儲器和外部數據存儲器尋址空間4中斷與堆棧5定時/計數器與寄存器區(qū)6指令系統(tǒng)2.1.2 MCS-51單片機內
14、部結構1運算器運算器由8位算術邏輯運算單元ALU(Arithmetic Logic Unit)、8位累加器ACC(Accumulator)、8位寄存器B、程序狀態(tài)字寄存器PSW(Program Status Word)、8位暫存寄存器TMP1和TMP2等組成。2控制器主要由程序計數器PC、指令寄存器IR、指令譯碼器ID、堆棧指針SP、數據指針DPTR、時鐘發(fā)生器及定時控制邏輯等組成。2.2 MCS-51單片機的存儲器配置2.2.1 片內數據存儲器2.2.2 片外數據存儲器2.2.3 程序存儲器2.2.1 片內數據存儲器片內數據存儲器結構如圖2-9(a)所示;其具體位地址單元如表2-3所示;專用
15、寄存器的地址映像如表2-4所示。單片機復位電路及復位狀態(tài)1復位電路單片機復位電路包括片內、片外兩部分。外部復位電路就是為內部復位電路提供兩個機器周期以上的高電平而設計的。MCS-51單片機通常采用上電自動復位和按鍵手動復位兩種方式。如圖2-14所示。2單片機復位后的狀態(tài)單片機運行出錯或進入死循環(huán)時,可按復位鍵重新運行。21個特殊功能寄存器復位后的狀態(tài)為確定值,如表2-6所示。 3、時鐘電路(1)振蕩周期 / 時鐘周期:為單片機提供時鐘信號的振蕩源的周期。(3)機器周期:通常將完成一個基本操作所需的時間稱為機器周期。(4)指令周期:是指CPU執(zhí)行一條指令所需要的時間。一個指令周期通常含有14個機
16、器周期。若80C51單片機外接晶振為12MHz時,則單片機的四個周期的具體值為:振蕩周期1/12MHz1/12s0.0833s時鐘周期1/6s0.167s機器周期1s指令周期14s4、80C51指令時序特殊功能寄存器通用RAM區(qū)位尋址區(qū)00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位尋址外部ROM內部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH內部數據存儲器(a)外部數據存儲器(b)程序存儲器(c)工作寄存器
17、區(qū)P1P2S1P2振蕩周期時鐘周期機器周期機器周期指令周期(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2二、80C51單片機的引腳功能結構框圖(如上圖)1主電源引腳VCC和VSS2外接晶振引腳XTAL1和XTAL23控制或其他電源復用引腳RST/ VPD、ALE/、和/VPP4輸入/輸出引腳P0、P1、P2、P3(共32根)三、引腳功能(1) 主電源引腳Vcc和Vss VCC: 接+5 V電源正端; VSS: 接+5 V電源地端。 (2) 外接晶體引腳XTAL1和XTAL2 XTAL1: 接外部石英
18、晶體的一端。 在單片機內部, 它是一個反相放大器的輸入端, 這個放大器構成了片內振蕩器。 當采用外部時鐘時, 對于HMOS單片機, 該引腳接地; 對于CHMOS單片機, 該引腳作為外部振蕩信號的輸入端。 XTAL2: 接外部晶體的另一端。 在單片機內部, 接至片內振蕩器的反相放大器的輸出端。 當采用外部時鐘時, 對于HMOS單片機, 該引腳作為外部振蕩信號的輸入端; 對于CHMOS芯片, 該引腳懸空不接。(3)輸入/輸出(I/O)引腳P0口、 P1口、 P2口及P3口 (a) P0口(39腳32腳): P0.0P0.7統(tǒng)稱為P0口。 (b) P1口(1腳8腳): P1.0P1.7統(tǒng)稱為P1口,
19、可作為準雙向I/O接口使用。 (c) P2口(21腳28腳): P2.0P2.7統(tǒng)稱為P2口,一般可作為準雙向I/O接口。 (d) P3口(10腳17腳): P3.0P3.7統(tǒng)稱為P3口。教學方法多媒體演示作業(yè)安排及課后反思作業(yè):P34,第5、6、8、9題。 課前準備情況及其他相關特殊要求預習第2章參考資料(具體到哪一章節(jié)或頁碼)教材第17-34頁。謝維成, 楊加國. 單片機原理與應用及C51程序設計(第3版)M. 北京: 清華大學出版社, 2014. 第2章。單片機課程學習網站(7.4教學單元四教學日期第4次課教學目標掌握單片機的尋址方式,指令特點,功能和使用。教學內容第3章 單片機的匯編語
20、言與程序設計3.1 匯編語言概述3.2 MCS-51指令系統(tǒng)簡介重點:51單片機匯編語言的指令系統(tǒng);指令表的查閱方法和指令功能的描述。難點:51單片機匯編語言的指令系統(tǒng)。教學過程3.1 匯編語言概述MCS-51單片機指令系統(tǒng)有如下特點:(1)指令執(zhí)行時間快。(2)指令短,約有一半的指令為單字節(jié)指令。(3)用一條指令即可實現2個一字節(jié)的相乘或相除。(4)具有豐富的位操作指令。 (5)可直接用傳送指令實現端口的輸入輸出操作。3.1 MCS-51指令系統(tǒng)的分類、格式及一般說明3.1.1 指令分類3.1.2 指令格式3.1.3 指令描述符號介紹3.1.1 指令分類按指令功能,MCS-51指令系統(tǒng)分為數
21、據傳遞與交換、算術運算、邏輯運算、程序轉移、布爾處理操作、CPU控制等6類。布爾處理操作類指令又稱位操作指令。3.1.2 指令格式在MCS-51指令中,一般指令主要由操作碼、操作數組成。指令應具有以下功能:(1)操作碼指明執(zhí)行什么性質和類型的操作。例如,數的傳送、加法、減法等。(2)操作數指明操作的數本身或者是操作數所在的地址。(3)指定操作結果存放的地址。3.1.3 指令描述符號介紹Rn當前選中的寄存器區(qū)中的8個工作寄存器R0R7(n=07)。Ri當前選中的寄存器區(qū)中的2個工作寄存器R0、R1(i=0,1)。direct8位的內部數據存儲器單元中的地址。#data包含在指令中的8位常數。#d
22、ata16包含在指令中的16位常數。addr1616位目的地址。addr1111位目的地址。rel8位帶符號的偏移字節(jié),簡稱偏移量。DPTR數據指針,可用作16位地址寄存器。bit內部RAM或專用寄存器中的直接尋址位。A累加器。B專用寄存器,用于乘法和除法指令中。C進位標志或進位位,或布爾處理機中的累加器。間址寄存器或基址寄存器的前綴,如Ri,DPTR。/ 位操作數的前綴,表示對該位操作數取反,如/bit。×片內RAM的直接地址或寄存器。(×)由×尋址的單元中的內容。箭頭左邊的內容被箭頭右邊的內容所代替。3.2 尋址方式3.2.1 立即尋址3.2.2 直接尋址3.
23、2.3 寄存器尋址3.2.4 寄存器間接尋址3.2.5 變址尋址3.2.6 相對尋址3.2.7 位尋址3.2.1 立即尋址指令中直接給出操作數的尋址方式。立即操作數用前面加有#號的8位或16位數來表示。例如:MOVA,# 60H;A#60H MOVDPTR,# 3400H;DPTR#3400HMOV30H,# 40H;30H單元#40H 上述三條指令執(zhí)行完后,累加器A中數據為立即數據60H,DPTR寄存器中數據為3400H,30H單元中數據為立即數40H。3.2.2 直接尋址指令中直接給出操作數地址的尋址方式,能進行直接尋址的存儲空間有SFR寄存器和內部數據RAM。例如:MOVPSW,# 20
24、H; PSW#20H PSW為直接尋址寄存器的符號地址。 MOVA,30H;A30H內部RAM單元中的內容30H為直接給出的內部RAM的地址。3.2.3 寄存器尋址以通用寄存器的內容為操作數的尋址方式。通用寄存器指A、B 、DPTR以及R0R7 。 例如:CLR A;A0 INC DPTR;DPTRDPTR+1 ADDR5,# 20H;R5#20H+R53.2.4 寄存器間接尋址以寄存器中內容為地址,以該地址中內容為操作數的尋址方式。間接尋址的存儲器空間包括內部數據RAM和外部數據RAM。能用于寄存器間接尋址的寄存器有R0,R1,DPTR,SP。其中R0、R1必須是工作寄存器組中的寄存器。SP
25、僅用于堆棧操作。例如:MOV R0,A ;內部RAM(R0)A其指令操作過程示意圖如圖3-1所示。又如:MOVX A,R1;A外部RAM(P2R1)其指令操作過程示意圖如圖3-2所示。再如:MOVX DPTR,A;外部RAM(DPTR)A 其指令操作過程示意圖如圖3-3所示。3.2.5 變址尋址變址尋址只能對程序存儲器中數據進行操作。由于程序存儲器是只讀的,因此變址尋址只有讀操作而無寫操作,在指令符號上采用MOVC的形式(如圖3-4所示)。例如:MOVC A, A+DPTR;A(A+DPTR)又如,MOVC A, A+PC ;A(A+PC) 這條指令與上條指令不同的是,基址寄存器是PC。3.2
26、.6 相對尋址以當前程序計數器PC的內容為基礎,加上指令給出的一字節(jié)補碼數(偏移量)形成新的PC值的尋址方式。相對尋址用于修改PC值,主要用于實現程序的分支轉移。 例如,SJMP 08H ;PCPC+2+08H 指令操作示意圖如圖3-5所示。3.2.7 位尋址位尋址只能對有位地址的單元作位尋址操作。位尋址其實是一種直接尋址方式,不過其地址是位地址。 例如:SETB 10H ;將10H位置1若22H單元中存放著數據40H,22H單元的D0位的位地址為10H,執(zhí)行上述指令后(22H)=41H。 又如:MOV 32H,C ;32H進位位C ORL C ,32H ;CC32H教學方法多媒體演示,借助軟
27、件做演示實驗,增強學生對知識的理解,提高他們對本課程的興趣。作業(yè)安排及課后反思作業(yè):P56,第1、6題。課前準備情況及其他相關特殊要求課前預習3.1,3.2節(jié)參考資料(具體到哪一章節(jié)或頁碼)教材第35-51頁。謝維成, 楊加國. 單片機原理與應用及C51程序設計(第3版)M. 北京: 清華大學出版社, 2014. 第3章。各大電子類專業(yè)網站。7.5教學單元五教學日期第5次課教學目標掌握單片機的尋址方式,指令特點,功能和使用。教學內容3.3匯編語言的編程方法重點:51單片機匯編語言的指令系統(tǒng);指令表的查閱方法和指令功能的描述。難點:51單片機匯編語言的指令系統(tǒng)。教學過程3.3.1 數據傳送類指令
28、數據傳送類指令共28條,是將源操作數送到目的操作數。指令執(zhí)行后,源操作數不變,目的操作數被源操作數取代。數據傳送類指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8種。源操作數可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數可以采用寄存器、寄存器間接、直接尋址3種尋址方式。MCS-51單片機片內數據傳送途徑如圖3-6所示。1以A為目的操作數MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;A #data2以Rn為目的操作數MOV Rn,A;Rn AMOV Rn
29、,direct;Rn (direct)MOV Rn,#data;Rn #data3以直接地址為目的操作數MOV Ri,A;(Ri) AMOV Ri,direct;(Ri) (direct)MOV Ri,#data;(Ri) #data4以間接地址為目的操作數MOV Ri,A;(Ri) AMOV Ri,direct;(Ri) (direct)MOV Ri,#data;(Ri) #data例如:設(30H)=6FH,R1=40H,執(zhí)行MOV R1,30H后,30H單元中數據取出送入R1間接尋址的40H單元,(40H)=6FH。5以DPTR為目的操作數MOV DPTR,#data16 ;DPTR #
30、data16例如執(zhí)行 MOV DPTR,#2000H 后,(DPTR)= 2000H。 6訪問外部數據RAM MOVX A,DPTR;A (DPTR)MOVX DPTR,A;(DPTR) AMOVX A,Ri;A (P2Ri)MOVX Ri,A;(P2Ri) A7讀程序存儲器MOVC A,A+DPTR;A (A+DPTR)MOVC A,A+PC;A (A+PC)例如已知A=30H,DPTR=3000H, 程序存儲器單元(3030H)=50H,執(zhí)行MOVC A, A+DPTR后,A=50H。8數據交換l 字節(jié)交換XCH A,Rn;A<=> RnXCH A ,direct;A<=
31、>(direct)XCH A,Ri;A<=>(Ri)l 半字節(jié)交換XCHD A,Ri;A03<=>(Ri)03SWAP A;A03<=>A479堆棧操作所謂堆棧是在片內RAM中按“先進后出,后進先出”原則設置的專用存儲區(qū)。數據的進棧出棧由指針SP統(tǒng)一管理。堆棧的操作有如下兩條專用指令: PUSH direct;SP(SP+1),(SP)(direct) POPdirect;(direct)(SP),SP SP-1PUSH是進棧(或稱為壓入操作)指令。指令執(zhí)行過程如圖3-7所示?!纠?.1】 將片內RAM 30H單元與40H單元中的內容互換。方法1(直接
32、地址傳送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2(間接地址傳送法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$方法3(字節(jié)交換傳送法): MOVA,30H XCHA,40H MOV30H,A SJMP$方法4(堆棧傳送法): PUSH30H PUSH40H POP30H POP40H SJMP$3.3.2 算術運算類指令1加法指令ADD A,Rn;A A + RnADD A,direct;A A +(direct)ADD A,Ri;A A +(Ri)ADD A,#da
33、ta;A A + #data2帶進位加指令ADDC A,Rn;A A + Rn + CADDC A,direct;A A +(direct)+ CADDC A,Ri;A A +(Ri)+ CADDC A,#data;A A + #data + CC為來自PSW狀態(tài)寄存器中的進位位C。例如,設A=20H,R0=21H,C=1,執(zhí)行指令 ADDC,R0后,A=42H。 3帶借位減指令SUBB A,Rn;A A - Rn - CSUBB A,direct;A A -(direct)- CSUBB A,Ri;A A -(Ri)- CSUBB A,#data;A A - #data C例如,設A=39H
34、,R0=20H,(20H)=32H,C=1,執(zhí)行指令 SUBB,R0后,A=06H。4乘法指令MUL AB;BA A×BA和B中各存放一個8位無符號數,指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。例如,A=30H,B=60H,執(zhí)行 MUL AB 后,A=00H,B=12H。 5除法指令 DIV AB;A÷B商在A中,余數在B中 A和B中各存放一個8位無符號數,A放被除數,B放除數。指令執(zhí)行后,A中存放商,B中存入余數。若B=00H,則指令執(zhí)行后OV=1,A與B不變。 例如,A=30H,B=07H,執(zhí)行 DIV AB 后,A=06H,B=06H。6加1指令INC A;
35、A A + 1INC Rn;Rn Rn + 1INC direct;(direct) (direct)+ 1INC Ri;(Ri)(Ri)+ 1INC DPTR;DPTR DPTR + 1例如,(30H)=22H,執(zhí)行 INC 30H 后,(30H)=23H。7減1指令DEC A;A A - 1DEC Rn;Rn Rn - 1DEC direct;direct (direct)- 1DEC Ri;(Ri)(Ri)- 1例如,R0=30H,(30H)=22H,執(zhí)行 DEC R0 后,(30H)=21H。8十進制調整指令DA A ;把A中按二進制相加的結果調整成按BCD碼相加的結果例如,A=65B
36、CD,B=78BCD,C=0,執(zhí)行下列語句ADDA,BDAA后,A=43 BCD,C=1?!纠?.2】 試把存放在R1R2和R3R4中的兩個16位數相加,結果存于R5R6中。解:參考程序如下: MOVA,R2;取第一個數的低8位 ADDA,R4;兩數的低8位相加 MOVR6,A;保存和的低8位 MOVA,R1;取第一個數的高8位 ADDCA,R3;兩數的高8位相加,并把低8位相加時的進位位加進來 MOVR5,A;把相加的高8位存入R5寄存器中 SJMP $ 教學方法多媒體演示,借助軟件做演示實驗,增強學生對知識的理解,提高他們對本課程的興趣。作業(yè)安排及課后反思作業(yè):P56,第8、9題。課前準備
37、情況及其他相關特殊要求課前預習3.3節(jié)。參考資料(具體到哪一章節(jié)或頁碼)教材第51-56頁。謝維成, 楊加國. 單片機原理與應用及C51程序設計(第3版)M. 北京: 清華大學出版社, 2014. 第3章。7.6教學單元六教學日期第6次課。教學目標掌握C51語言的指令格式,數據結構,功能和使用。教學內容第4章單片機的C51語言 4.1C51的程序結構重點:C51語言的指令格式,數據結構。難點:C51語言與通用C語言的區(qū)別。教學過程一、C51 概述C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。目前,使用C語言進行程序設計已經成為軟件開發(fā)的一個主流。用C語言開發(fā)
38、系統(tǒng)既可以大大縮短開發(fā)周期,明顯增強程序的可讀性,又便于改進和擴充。而且針對8051的C語言(C51)日趨成熟,已成為了專業(yè)化的實用高級語言。一般來說,C51有如下特點:1)C語言作為一種非常方便的語言而得到廣泛的支持,國內最通用的是Keil C51;2)C語言程序本身不依賴于機器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機中移植過來;3)C提供了很多數學函數并支持浮點運算,開發(fā)效率高,故可縮短開發(fā)時間,增加程序可讀性和可維護性。而C51與ASM-51相比,有如下優(yōu)點:1)對單片機的指令系統(tǒng)不要求了解,僅要求對8051 的存貯器結構有初步了解;2)寄存器分配、不同存貯器的尋址及數據類型等細
39、節(jié)可由編譯器管理;3)程序有規(guī)范的結構,可分成不同的函數,這種方式可使程序結構化;4)具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;5)提供的庫包含許多標準子程序,具有較強的數據處理能力;6)由于具有方便的模塊化編程技術,使已編好程序可容易地移植。正是上述這些優(yōu)點,C51如今已成為51 系列單片機的主流開發(fā)語言。二、 C51的語法C51的語法與C語言基本相同,因此本書將著重介紹C51與C語言的不同之處,從而有利于讀者更好地把握兩者的相同之處與不同之處,為以后寫C51源程序打好基礎。1)C51的常量和變量C51的常量和變量與C語言的常量和變量基本相同,其不同之處主要在于變量的聲
40、明的形式,C語言的變量聲明的一般格式是:(存儲種類) 數據類型變量而在C51中,變量聲明的一般格式則是:(存儲種類) 數據類型(存儲器類型)變量其中,“存儲種類”和“存儲器類型”是可選項。變量的存儲種類有四種:自動(auto)、外部(extern)、靜態(tài)(static)和寄存器(register)。在定義一個變量時如果省略存儲種類選項,則該變量將為自動(auto)變量。定義一個變量時除了需要說明其數據類型之外,C51編譯器還允許說明變量的存儲器類型。存儲器類型的說明就是指定該變量在C51硬件系統(tǒng)中所使用的存儲區(qū)域,并在編譯時準確的定位。關于C51的存儲器類型,我們將在本章后面的小節(jié)做詳細的介紹
41、。2)C51的數據類型類型符號關鍵字所占位數數的表示范圍整型有(signed) int16-3276832767(signed) short16-3276832767(signed) long32-2147483648247483647無unsigned int16065535unsigned short int16065535unsigned long int3204294967295實型有Float323.4e-383.4e38有Double641.7e-3081.7e308字符型有Char8-128127無unsigned char80255除了上述的數據類型,C51還有以下四種數據類型
42、擴充定義:bit 位變量 位變量是C51的一種擴充數據類型,利用它可以定義一個位變量,但不能定義位指針,也不能定義位數組。它的值是一個二進制位,不是就是0就是,類似一些高級語言中的布爾類型中的True和Flase。Sfr特殊功能寄存器Sfr也是一種擴充數據類型,占用一個內存單元,值域為0255。利用它可以訪問51單片機內部的所有特殊功能寄存器。例如Sfr=0X90上述語句定義了P1為P1端口在片內的寄存器,在后面的語句中用P1=255(或P1=0FFH,對P1端口的所有引腳置高電平)之類的語句來操作特殊功能寄存器。Sfr16 16位特殊功能寄存器Sfr16占用兩個內存單元,值域為065535。
43、sfr16和sfr一樣用于操作特殊功能寄存器,所不同的是它用于操作占兩個字節(jié)的寄存器,比如定時器T0和T1。當然sfr16也可以像sfr一樣用一個字的方式訪問,比如定時器T2,可以分別以TL2和TH2進行訪問。Sbit 可尋址位位是C51中的一種擴充數據類型,利用它可以訪問芯片內部的RAM中的可位尋址位或特殊功能寄存器中的可位尋址位。例如定義sfr P1=0X90;sbit P1_1=P11;這樣在以后的程序語句中就可以用P1_1來對P1.1引腳進行讀寫操作了。3)C51的存儲類型在C51中,存儲器類型指定了該變量在硬件系統(tǒng)中所使用的存儲區(qū)域,并在編譯時準確的定位。存儲類型存儲位置長度數據范圍
44、Data直接尋址片內RAM8位0255Bdata可位尋址片內RAM1位0/1Idata間接尋址片內RAM8位0255Pdata片外頁RAM8位0255Xdata片外RAM16位065535Code程序ROM16位065535data 區(qū) data區(qū)的尋址是最快的,所以應該把經常使用的變量放在data區(qū);但是data區(qū)的空間是有限的。Data區(qū)聲明中的存儲器類型標識符為data ,通常指低128字節(jié)的內部數據區(qū)存儲的變量,可直接尋址。bdata區(qū) bdata區(qū)實際就是data區(qū)的位尋址區(qū),在這個區(qū)聲明變量就可進行位尋址。bdata區(qū)聲明中的存儲器類型標識符為bdata,指內部可位尋址的16字節(jié)存
45、儲區(qū)可位尋址的變量的數據類型。idata區(qū) idata區(qū)也用于存放使用比較頻繁的變量,使用寄存器作為指針進行尋址,即在存儲器中設置8位地址進行間接尋址。Idata區(qū)聲明中的存儲類型標識符為idata,指內部的256字節(jié)的存儲區(qū),但是只能間接尋址,速度比直接尋址慢。pdata區(qū)和xdata區(qū) pdata和xdata區(qū)屬于外部存儲區(qū),外部數據區(qū)是可讀寫的存儲區(qū),最多可有64KB。Pdata和xdata區(qū)聲明中的存儲器類型標識符分別為pdata和xdata,xdata存儲器類型標識符可以指定外部數據區(qū)64KB內的任何地址,而pdata存儲器類型標識符僅指定1頁或256字節(jié)的外部數據區(qū)。code區(qū) 程
46、序儲存器的數據是不可改變的,程序存儲器區(qū)code 聲明中的標識符為code,在C51中用code存儲器類型標識符來訪問程序存儲區(qū)。4)C51的運算符C51的運算符與C語言的運算符基本相同,以下為C51常用的運算符:算術運算符:+ - * / % + -(加 減 乘 除 取模 自增自減)關系運算符:> >= < <= = !=(大于 大于等于 小于 小于等于等于 不等于)邏輯運算符:&& | ! (邏輯與 邏輯或 邏輯非 )位運算符:>> << (位右移 位左移)& | (按位與 按位或 按位異或 按位取反)5)C51的基本
47、語句C51的基本語句與C語言的基本語句基本相同,如下所示:If-else 選擇語句 switch/case 多分支選擇語句 while 循環(huán)語句 do-while 循環(huán)語句 for 循環(huán)語句C51的基本語句與C語言的基本語句的使用方法和注意事項基本相同,在此不作多余敘述。6)C51的程序結構與一般C語言的結構相同,以main()函數為程序人口,程序體中包含若干語句還可以包含若干函數,以下為C51函數的一般格式: 類型 函數名(參數表) 數據說明部分 語句執(zhí)行部分 其中,類型指定函數值的類型,即函數帶回來的值類型。7)C51的頭文件C51的頭文件與C語言的頭文件基本相同。但由于51系列單片機的結
48、構特點,常有的頭文件主要有reg51.h math.h ctype.h stdio.h stdlib.h absacc.h。reg51.h主要定義了51系列單片機的特殊功能寄存器和位寄存器;math.h 主要定義了常用的數學運算函數;ctype.h主要定義了常用的字符函數;stdio.h主要定義了一般I/O函數;stdlib.h主要定義了常用的標準函數;absacc.h則定義了絕對地址訪問的函數。如果想進一步了解上述各個頭文件包含的函數,可以參照C51頭文件的相關技術手冊。例:include <reg51.h>void main( )數據說明部分;語句執(zhí)行部分;8)中斷服務程序51
49、單片機的中斷系統(tǒng)非常重要,可以用C51來聲明中斷和編寫中斷服務程序,中斷過程通過使用interrupt關鍵字和中斷編號04實現。中斷服務程序聲明的一般格式為:返回值 函數名()interrupt n 其中,對應著中斷源的編號,中斷編號告訴編譯器中斷程序的入口地址,它對應著IE寄存器的使能位,即IE寄存器中的0位對應著外部中斷0,相應的外部中斷0的中斷編號是0。8051單片機的中斷源以及中斷編號如下表所示:中斷編號中斷源入口地址0外部中斷00003H1定時器/計數器0溢出000BH2外部中斷10013H3定時器/計數器1溢出001BH4串行口中斷0023H當正在執(zhí)行一個特定的任務時,可能有更緊急
50、的事情需要CPU處理,這就涉及到了中斷優(yōu)先級。高的優(yōu)先級中斷可以中斷正在處理的低的優(yōu)先級中斷程序,因而最好給每種優(yōu)先程序分配不同的寄存器組。在C51中可使用using指定寄存器組,using后的變量為03的常整數,分別表示51單片機內的4個寄存器組。中斷服務程序的完整格式如下:返回值函數名()interrupt n using n 例:unsigned int interrputcnt;unsigned char second;void timer0 (void) interrupt 1 using 2if(+interruptcnt=4000)/*計數到4000*/second+;/*另一個計數器*/interruptcnt=0;/*計數器清零*/介紹完C51的基本語法之后,現在以兩個實例作為參考,兩個實例都分別給出它們的匯編源程序和C51程序以便作比較。例1:清零程序 (將2000H20FFH的內容清零) 匯編源程序 ORG 0000HSE01: MOV R0,#00H MOV DPTR,#2000H ;(0000H)送DPTRLOO1: CLR A MOVX DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1 INC R0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第24課《三顧茅廬》課件+2024-2025學年統(tǒng)編版語文九年級上冊
- 石河子大學《學前教育學》2022-2023學年第一學期期末試卷
- 社區(qū)精神衛(wèi)生服務與護理
- 石河子大學《社會統(tǒng)計學》2022-2023學年第一學期期末試卷
- 石河子大學《機械設計》2023-2024學年第一學期期末試卷
- 沈陽理工大學《中外建筑史》2021-2022學年第一學期期末試卷
- 沈陽理工大學《現代應用光學》2022-2023學年第一學期期末試卷
- 沈陽理工大學《計算機網絡技術基礎》2021-2022學年期末試卷
- 沈陽理工大學《光電檢測技術》2023-2024學年期末試卷
- 沈陽理工大學《單片機原理與接口技術》2023-2024學年期末試卷
- 輪對故障發(fā)生的原因和危害分析及其防范措施
- 汽修廠搞個優(yōu)惠活動
- 底棲生物調查方法與分類鑒定
- GNSS定位測量-GNSS定位原理(工程測量)
- 雨污分流管網施工組織設計方案
- 噴口送風計算
- 2023年土石方運輸車隊合同(4份范本)
- 連續(xù)性腎臟替代治療CRRT血液凈化常見報警及對策
- 地鐵工程機電安裝施工組織設計
- 三極管課件完整版
- 心靈捕手心理影析PPT
評論
0/150
提交評論