【正文】
: 定時(shí)器1中斷入口地址0023H: 外部中斷2中斷入口地址 數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器用于放程序運(yùn)算的中間結(jié)果、狀態(tài)標(biāo)志等。2.做一般I/O使用,其內(nèi)部有上拉電阻。2.外部擴(kuò)充存儲(chǔ)器時(shí),當(dāng)作低8位地址總線(A0~A7)。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖 ALE功能:用來鎖存P0口送出的低8位地址 PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。8.時(shí)鐘電路CPU執(zhí)行指令的一系列動(dòng)用都是在時(shí)序電路的控制下一拍一拍進(jìn)行的,時(shí)鐘電路用于產(chǎn)生單片機(jī)中最基本的時(shí)間單位。4.并行I/O口P0~P3是四個(gè)8位并行I/O口,每個(gè)口既可作為輸入,也可作為輸出。RS0、RS1與寄存器組的對(duì)應(yīng)關(guān)系見表13。表12 PSW各位定義D7D6D5D4D3D2D1D0CyACF0RS1RS0OVF1PCy:進(jìn)位/借位標(biāo)志位。PC是一個(gè)16位的專用寄存器,用來存放CPU要執(zhí)行的存放在程序存儲(chǔ)器中的下一條指令地地址。圖21為8051單片機(jī)內(nèi)部基本結(jié)構(gòu)框圖。表11 二進(jìn)制、十進(jìn)制、十六進(jìn)制對(duì)應(yīng)轉(zhuǎn)換表十進(jìn)制二進(jìn)制十六進(jìn)制000000100011200102300113401004501015601106701117810008910019101010A111011B121100C131101D141110E151111F例如:1000101B=45H ASCLL碼對(duì)于計(jì)算機(jī)非數(shù)值型數(shù)據(jù)不能直接裝入計(jì)算機(jī),必須將其轉(zhuǎn)換為特定的二進(jìn)制代碼(即將其編碼),以二進(jìn)制代碼所表示的字符數(shù)據(jù)的形式裝入計(jì)算機(jī)。其中整數(shù)部分可采用“除2取余法”進(jìn)行轉(zhuǎn)換,小數(shù)部分可采用“乘2取整法”進(jìn)行轉(zhuǎn)換。十六進(jìn)制數(shù)有16個(gè)數(shù)字符號(hào),其中0~9與十進(jìn)制數(shù)相同,剩6個(gè)為A~F,分別表示十六進(jìn)制數(shù)的確10~15,計(jì)數(shù)時(shí)按“逢十六進(jìn)一”的原則進(jìn)行計(jì)數(shù)。計(jì)數(shù)時(shí)按“逢二進(jìn)一”的原則進(jìn)行計(jì)數(shù)。第一章 計(jì)算機(jī)基礎(chǔ)知識(shí)及MCS51單片機(jī)硬件結(jié)構(gòu) 數(shù)制與編碼 在計(jì)算機(jī)中,任何命令和信息都是以二進(jìn)制數(shù)據(jù)的形式存儲(chǔ)的。在計(jì)算機(jī)中,二進(jìn)制數(shù)的每一位是數(shù)據(jù)的最小存儲(chǔ)單位。為了便于區(qū)別不同進(jìn)制的數(shù)據(jù),一般情況下可在數(shù)據(jù)后跟一后綴:二進(jìn)制數(shù)用“B”表示(如1001111B)十六進(jìn)制數(shù)用“H”表示(如3AH)十進(jìn)制數(shù)用“D”表示(如39D或39) 不同數(shù)制之間的轉(zhuǎn)換計(jì)算機(jī)中的數(shù)只能用二進(jìn)制數(shù)表示,十六進(jìn)制數(shù)適合讀寫方便的需要,日常生活使用的是十六進(jìn)制數(shù),計(jì)算機(jī)根據(jù)需要對(duì)各種進(jìn)制進(jìn)轉(zhuǎn)換。例如:將37D轉(zhuǎn)換為二進(jìn)制數(shù)。ASCLL碼是一種國際標(biāo)準(zhǔn)信息交換碼,它利用7位二進(jìn)制代碼來表示字符,再加上1位校驗(yàn)位,故在計(jì)算機(jī)中用1個(gè)字節(jié)8位二進(jìn)制數(shù)來表示一個(gè)字符。外部事件計(jì)數(shù)外時(shí)鐘源振蕩器和時(shí)序OSC程序存儲(chǔ)器4KB ROM數(shù)據(jù)存儲(chǔ)器256B RAM/SFR振蕩器和時(shí)序OSC8051CPU64KB 總線擴(kuò)展控制器可編程I/O可編程全雙工串行口外中斷內(nèi)中斷控制并行口串行通信圖11 8051單片機(jī)內(nèi)部基本結(jié)構(gòu)框圖1.CPUCPU是單片機(jī)內(nèi)部的核心部件,是單片機(jī)的指揮和控制中心。當(dāng)系統(tǒng)上電復(fù)位后,PC的內(nèi)容為0000H,所以單片機(jī)主控制程序的首地址自然應(yīng)定位為0000H。AC:輔助進(jìn)位標(biāo)志。表13RS0、RS1與寄存器組的對(duì)應(yīng)關(guān)系見表RS1RS2寄存器組片內(nèi)RAM地址指令助符000組00H~07HR0~R7011組08H~0FHR0~R7102組10H~17HR0~R7113組18H~1FHR0~R7OV:溢出標(biāo)志。5.定時(shí)器/計(jì)數(shù)器6.中斷系統(tǒng)MCS51單片機(jī)有5個(gè)中斷源。 MCS51 引腳功能VCC:芯片電源,接+5V。PSEN:外ROM讀選通信號(hào)。P0、PPP3口,共32個(gè)引腳。3.不擴(kuò)充時(shí),可做一般I/O使用,但內(nèi)部無上拉電阻,作為輸入輸出時(shí)應(yīng)在外部接上拉電阻。 CS51存儲(chǔ)結(jié)構(gòu)及位處理器由于時(shí)間有限,這一部分內(nèi)容只作簡要介紹。數(shù)據(jù)存儲(chǔ)器由RAM構(gòu)成,一旦掉電,其數(shù)據(jù)將丟失。堆棧區(qū)一般設(shè)在些區(qū)域。表14 特殊功能寄存器(SFR)地址寄存器位地址及位名字節(jié)地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HACCE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HCyACF0RS1RS0OVF1PIPBFHBEHBDHBCHBBHBAHB9HB8HB8HPSPT1PX1PT0PX0P3B7HB6HB5HB4HB3HB2HB1HB0HB0HIEAFHAEHADHACHABHAAHA9HA8HA8HEAESET1EX1ET0EX0P2A7HA6HA5HA4HA3HA2HA1HA0HA0HSBUF99HSCON9FH9EH9DH9CH9BH9AH99H98H98HSM0SM1SM2RENTB8RB8TIRIP197H96H95H94H93H92H91H90H90HTH18DHTH08CHTL18BHTL08AHTMODGATEC/TM1M0GATEC/TM1M089HTCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0PCON87HDPH83HDPL82HSP81HP087H86H85H84H83H82H81H80H80H MCS51工作方式MCS51單片機(jī)的工作方式包括:復(fù)位方式、程序執(zhí)行方式、節(jié)電方式和EPROM的編程和校驗(yàn)方式。 MCS51單片機(jī)的時(shí)序計(jì)算機(jī)執(zhí)行指令的過程分為取指令、分析指令、和執(zhí)行指令三個(gè)步驟,每個(gè)步驟又由許多微操作組成,這些微操作必須在一個(gè)統(tǒng)一的時(shí)鐘脈沖的控制下才能按照正確的順序執(zhí)行。例如:時(shí)鐘頻率為6MHz。3.指令周期指令周期定義為執(zhí)行一條指令所用的時(shí)間。MCS51匯編語言指令格式由以下向個(gè)部分組成:[標(biāo)號(hào):] 操作碼 [目的操作數(shù)] [源操作數(shù)] [:注釋]其中,[]中的項(xiàng)表示為可選項(xiàng)例如:LOOP: MOV A,Ri :A←Ri 尋址方式;所謂尋址方式就是尋找或獲得操作數(shù)的方式。1.立即尋址在立即尋址方式中,操作數(shù)直接出現(xiàn)在指令中,指令的操作數(shù)可以是8位或16位數(shù)。例如:MOV TCON,AMOV A, P1⑵.內(nèi)部RAM的低128字節(jié)例如:MOV A,76H3.寄存器尋址在寄存器尋址方式中,寄存器中的內(nèi)容就是操作數(shù)。例如:MOV A,R05.變址尋址 變址尋址方式是以程序指針PC或數(shù)據(jù)指針DPTR為基址寄存器,以累加器A作為變址寄存器,兩者內(nèi)容相加(即基地址+偏移量)形成16位的操作數(shù)地址,變址尋址方式主要用于訪問固化在程序存儲(chǔ)器中的某個(gè)字節(jié)。相對(duì)偏移量rel是一個(gè)用補(bǔ)碼表示的8位有符號(hào)數(shù),rel的范圍為+127~128字節(jié)之間。 ★執(zhí)行后不影響任何標(biāo)志位。如:MOV SP, 70H算術(shù)運(yùn)算類(24條形碼)屬于這一類的助記符有: ADD,ADDC,INC SUBB,DEC MUL,DIV,DA①、ADD Rn ②、INC A ADDC A ,Ri Rn SUBB DATA Ri DIRECT DIRECT DPTR③、DEC A ④、 MUL AB Rn DIV AB Ri DA A DIRECT邏輯運(yùn)算類(24條)屬于這一類的助記符有:ANL,ORL,XRL,CPL,CLR① ANL A Rn ANL A,Ri ANL A DIRECT ANL A DATA ② ANL direct, A ANL direct, data③ ORL A, Rn ORL A, direct ORL A, Ri ORL A, data④ ORL direct, data ORL direct, A⑤ XRL A, Rn XRL A, direct XRL A, data XRL A, Ri⑥ XRL direct, A XRL direct, data③ CPL A CLR A RL A RLC A RR A RRC A SWAP A 控制轉(zhuǎn)移類(17條)屬于這一類的助記符有:JMP,LJMP,AJMP, LCALL,ACALL,SJMPJZ,JNZ,DJNZ,CJNE①、JMP A+DPTR ②、NOPLJMP addr16 RETAJMP addr11 RETILCALL addr16 ③、JZ relACALL addr11 JNZ relSJMP rel (地址范圍為) DJNZ Rn , rel Direct , rel④、CJNE Rn , DATA, rel A, DATA, rel Ri, DATA, rel A, Direct, rel位操作指令(17條)屬于這一類的助記符有:JB,JNB,JBC,CLR,SETB,CPL,ANL,ORL,MOV①、CLR C ②、SETB C BIT BIT③、CPL C ④、ANL C ,BIT BIT /BIT⑤、ORL C ,BIT ⑥、MOV C ,BIT C ,/BIT BIT ,C⑦、JB BIT ,REL ⑧、JC rel JNB BIT ,REL JNC rel JBC BIT , REL、 匯編語言程序設(shè)計(jì)基礎(chǔ);程序設(shè)計(jì)語言可分為三類:機(jī)器語言、匯編語言、高級(jí)語言。匯編語言:是一種采用助記符來表示的機(jī)器語言,即用助符號(hào)來代表指令的操作碼和操作數(shù),用標(biāo)號(hào)或符號(hào)代表地址、常數(shù)或變量。 偽指令MCS51單片機(jī)匯編語言中常用的偽指令如下:1.ORG(匯編起始地址)格式:ORG 16位地址2.END(