汽車(chē)單片機(jī)原理及應(yīng)用 第二章 MCU的基本結(jié)構(gòu)課件_第1頁(yè)
汽車(chē)單片機(jī)原理及應(yīng)用 第二章 MCU的基本結(jié)構(gòu)課件_第2頁(yè)
汽車(chē)單片機(jī)原理及應(yīng)用 第二章 MCU的基本結(jié)構(gòu)課件_第3頁(yè)
汽車(chē)單片機(jī)原理及應(yīng)用 第二章 MCU的基本結(jié)構(gòu)課件_第4頁(yè)
汽車(chē)單片機(jī)原理及應(yīng)用 第二章 MCU的基本結(jié)構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩119頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二講 MCU的基本結(jié)構(gòu)主要內(nèi)容包括:內(nèi)部硬件構(gòu)成存儲(chǔ)器結(jié)構(gòu)寄存器復(fù)位第二講 MCU的基本結(jié)構(gòu)主要內(nèi)容包括:1NEC微處理器PD78F0547D的基本結(jié)構(gòu)PD78F0547D的基本特性

指令最短執(zhí)行時(shí)間根據(jù)CPU的操作頻率可以在高速(0.1μs-頻率為20MHz)和超低速(122μs-頻率為32.768kHz)之間改變通用寄存器:8位×32個(gè)寄存器(8位×8個(gè)寄存器×4組)內(nèi)置單電源閃存-128KB內(nèi)部高速RAM-1KB內(nèi)部擴(kuò)展RAM-6KB通過(guò)使用內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展RAM容量切換寄存器(IXS),可以改變內(nèi)部閃存,內(nèi)部高速RAM和內(nèi)部擴(kuò)展RAM的容量NEC微處理器PD78F0547D的基本結(jié)構(gòu)PD78F02緩沖RAM:32字節(jié)(可用于CSI模式的傳送,具有自動(dòng)發(fā)送/接收功能)自編程(具有啟動(dòng)交換功能)片上調(diào)試功能,主要用于產(chǎn)品開(kāi)發(fā)階段內(nèi)置上電復(fù)位(POC)電路和低電壓檢測(cè)電路(LVI)內(nèi)置看門(mén)狗定時(shí)器內(nèi)置乘法器/除法器(16位×16位,32位/16位)內(nèi)置按鍵中斷功能內(nèi)置時(shí)鐘輸出/蜂鳴器輸出控制器I/O端口:71(漏極開(kāi)路:4)NEC微處理器PD78F0547D的基本結(jié)構(gòu)緩沖RAM:32字節(jié)(可用于CSI模式的傳送,具有自動(dòng)發(fā)3定時(shí)器:有8通道 16位定時(shí)/計(jì)數(shù)器: 2通道 8位定時(shí)/計(jì)數(shù)器: 2通道 8位定時(shí)器: 2通道 時(shí)鐘定時(shí)器: 1通道 看門(mén)狗定時(shí)器: 1通道串行接口:有5通道 UART(支持LIN總線): 1通道 CSI/UART: 1通道 CSI: 1通道 自動(dòng)收發(fā)功能的CSI: 1通道 I2C: 1通道10位分辨率A/D轉(zhuǎn)換器(AVREF=2.3~5.5V):8通道電源電壓:VDD=1.8~5.5VNEC微處理器PD78F0547D的基本結(jié)構(gòu)定時(shí)器:有8通道串行接口:有5通道10位分辨率A/D4內(nèi)部結(jié)構(gòu)框圖[1]NEC微處理器PD78F0547D的基本結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖[1]NEC微處理器PD78F0547D的基本5內(nèi)部結(jié)構(gòu)框圖[2]NEC微處理器PD78F0547D的基本結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖[2]NEC微處理器PD78F0547D的基本6內(nèi)部結(jié)構(gòu)框圖[3]NEC微處理器PD78F0547D的基本結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖[3]NEC微處理器PD78F0547D的基本7NEC微處理器PD78F0547D的基本結(jié)構(gòu)NEC微處理器PD78F0547D的基本結(jié)構(gòu)8ANI0toANI7: AnaloginputAVREF: AnalogreferencevoltageAVSS: AnaloggroundBUSY0: SerialbusyinputBUZ: BuzzeroutputEVDD: PowersupplyforportEVSS: GroundforportEXCLK: Externalclockinput(mainsystemclock)EXCLKS: Externalclockinput(subsystemclock)EXLVI: Externalpotentialinput-forlow-voltagedetectorEXSCL0: ExternalserialclockinputFLMD0: FlashprogrammingmodeINTP0toINTP7: ExternalinterruptinputKR0toKR7: KeyreturnOCD0A,OCD0B,OCD1A,OCD1B:Onchipdebuginput/outputP00toP06: Port0P10toP17: Port1NEC微處理器PD78F0547D的基本結(jié)構(gòu)ANI0toANI7: AnaloginputNEC9P20toP27: Port2P30toP33: Port3P40toP47: Port4P50toP57: Port5P60toP67: Port6P70toP77: Port7P120toP124: Port12P130: Port13P140toP145: Port14PCL: ProgrammableclockoutputREGC: RegulatorcapacitanceRESET: ResetRxD0,RxD6: ReceivedataSCK10,SCK11,SCKA0: Serialclockinput/outputSCL0: Serialclockinput/outputSDA0: Serialdatainput/outputSI10,SI11,SIA0: SerialdatainputNEC微處理器PD78F0547D的基本結(jié)構(gòu)P20toP27: Port2NEC微處理器P10SO10,SO11,SOA0: SerialdataoutputSSI11: SerialinterfacechipselectinputSTB0: SerialstrobeTI000,TI010,TI001,TI011,TI50,TI51: TimerinputTO00,TO01,TO50,TO51,TOH0,TOH1: TimeroutputTxD0,TxD6: TransmitdataVDD: PowersupplyVSS: GroundX1,X2: Crystaloscillator(mainsystemclock)XT1,XT2: Crystaloscillator(subsystemclock)NEC微處理器PD78F0547D的基本結(jié)構(gòu)SO10,SO11,SOA0: Serialdat11微處理器的寄存器控制寄存器控制程序執(zhí)行的順序、狀態(tài)和堆棧空間。程序計(jì)數(shù)器(PC)、程序狀態(tài)字(PSW)和堆棧指針寄存器(SP)都屬于控制寄存器程序計(jì)數(shù)器是一個(gè)16位寄存器,用于存放下一條即將要執(zhí)行的指令的地址。在正常情況下,根據(jù)獲取的指令字節(jié)數(shù),程序計(jì)數(shù)器(PC)的值會(huì)自動(dòng)累加。當(dāng)執(zhí)行分支指令時(shí),則設(shè)置立即數(shù)和寄存器內(nèi)容復(fù)位后,將中斷向量表中地址為0000H和0001H中的值賦給程序計(jì)數(shù)器程序狀態(tài)字(PSW)是一個(gè)8位寄存器,由各種標(biāo)志位組成,通過(guò)指令執(zhí)行對(duì)其進(jìn)行設(shè)置或復(fù)位。根據(jù)中斷請(qǐng)求的產(chǎn)生或PUSHPSW指令執(zhí)行,程序狀態(tài)字的內(nèi)容自動(dòng)入棧;執(zhí)行RETB,RETI和POPPSW指令使程序狀態(tài)字的值自動(dòng)恢復(fù)微處理器的寄存器控制寄存器程序計(jì)數(shù)器程序狀態(tài)字(PSW)12復(fù)位將程序狀態(tài)字的內(nèi)容設(shè)置為02H堆棧指針SP是一個(gè)16位的寄存器,用來(lái)存放內(nèi)存堆棧區(qū)的起始地址。只有內(nèi)部高速RAM區(qū)域才能被設(shè)置為堆棧區(qū)堆棧是向下增長(zhǎng)的。向堆棧存入數(shù)據(jù)時(shí),堆棧指針SP累減,而從堆棧中恢復(fù)數(shù)據(jù)時(shí),堆棧指針累加復(fù)位時(shí),SP的內(nèi)容不確定,所以在使用堆棧前必須初始化SP微處理器的寄存器復(fù)位將程序狀態(tài)字的內(nèi)容設(shè)置為02H堆棧指針SP微處理器的寄存13微處理器的寄存器微處理器的寄存器14微處理器的寄存器微處理器的寄存器15通用寄存器通用寄存器映射到數(shù)據(jù)存儲(chǔ)器的地址空間為FEE0H-FEFFH。共有四組,每一組由8個(gè)8位寄存器(X,A,C,B,E,D,L和H)組成每個(gè)寄存器可作為一個(gè)8位寄存器使用,兩個(gè)成對(duì)的8位寄存器可作為一個(gè)16位寄存器(AX,BC,DE和HL)使用。描述通用寄存器可以使用功能名稱(X,A,C,B,E,D,L,H,AX,BC,DE和HL)或者絕對(duì)名稱(R0~R7,RP0~RP3)用于指令執(zhí)行的寄存器組由CPU控制指令(SELRBn)來(lái)設(shè)置微處理器的寄存器通用寄存器微處理器的寄存器16特殊功能寄存器(SFRs)與通用寄存器不同,每個(gè)特殊功能寄存器都有特定的功能。從FF00H到FFFFH總共256字節(jié)的區(qū)域分配給特殊功能寄存器。特殊功能寄存器可以像通用寄存器那樣使用操作指令、轉(zhuǎn)移指令以及位操作指令進(jìn)行操作。根據(jù)特殊功能寄存器的類型不同,可操作的位單元可以是1位、8位和16位。每種位單元操作的描述如下:

1位操作:操作指令的操作數(shù)(sfr.bit)被描述為匯編程序的保留符號(hào),該操作也可由一個(gè)地址來(lái)定義

8位操作:操作指令的操作數(shù)(sfr)被描述為匯編程序的保留符號(hào),該操作也可由一個(gè)地址來(lái)定義

16位操作:位操作指令的操作數(shù)(sfrp)被描述為匯編程序的保留符號(hào),該操作也可由一個(gè)地址來(lái)定義。尋址時(shí)表示為一個(gè)偶地址微處理器的寄存器特殊功能寄存器(SFRs)微處理器的寄存器17微處理器的存儲(chǔ)器結(jié)構(gòu)78K0/KF2系列可以訪問(wèn)64KB的存儲(chǔ)空間。內(nèi)存容量切換寄存器(IMS)和所有78K0/KF2產(chǎn)品的內(nèi)部擴(kuò)展RAM容量切換寄存器(IXS)的初始值固定為(IMS=CFH,IXS=0CH)芯片初始化時(shí)需要依次設(shè)置IMS和IXS微處理器的存儲(chǔ)器結(jié)構(gòu)78K0/KF2系列可以訪問(wèn)64KB18設(shè)置內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展RAM容量切換寄 存器(IXS)的值微處理器的存儲(chǔ)器結(jié)構(gòu)設(shè)置內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展RAM容量切換寄19μPD78F0547D的微處理器的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)μPD78F0547D的微處理器的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)20

當(dāng)不使用引導(dǎo)交換功能的時(shí):設(shè)置選項(xiàng)字節(jié)區(qū)域:0080H~0084H,以及片上調(diào)試安全I(xiàn)D區(qū)域:0085H~008EH當(dāng)使用引導(dǎo)交換功能的時(shí):設(shè)置選項(xiàng)字節(jié)0080H~0084H和1080H~1084,以及片上調(diào)試安全I(xiàn)D區(qū)域:0085H~008EH和1085H~-108EH

根據(jù)安全設(shè)置可以禁止寫(xiě)入引導(dǎo)簇0內(nèi)部程序存儲(chǔ)空間內(nèi)部程序存儲(chǔ)空間用于存儲(chǔ)程序和表數(shù)據(jù),一般通過(guò)程序計(jì)數(shù)器(PC)來(lái)尋址。內(nèi)部程序存儲(chǔ)空間主要分為以下幾個(gè)區(qū)域:向量表區(qū)域:從0000H到003FH總共64字節(jié)作為向量表區(qū)域。在向量表中存放的是系統(tǒng)復(fù)位后或每個(gè)中斷請(qǐng)求的產(chǎn)生進(jìn)行轉(zhuǎn)移的程序的起始地址。在16位地址中,低8位是偶地址,高8位是奇地址。是一個(gè)散轉(zhuǎn)表,也類似與中斷向量表微處理器的存儲(chǔ)器結(jié)構(gòu)當(dāng)不使用引導(dǎo)交換功能的時(shí):設(shè)置選項(xiàng)字節(jié)區(qū)域:0080H~21微處理器的存儲(chǔ)器結(jié)構(gòu)微處理器的存儲(chǔ)器結(jié)構(gòu)22CALLT指令表區(qū)域:0040H至007FH共64字節(jié)的區(qū)域,可存放單

字 節(jié)調(diào)用指令(CALLT)的子程序入口地址選項(xiàng)字節(jié)區(qū)域:0080H~0084H和1080H~1084H各5字節(jié)的區(qū)域 可以用作選項(xiàng)字節(jié)區(qū)域。不使用引導(dǎo)交換功能時(shí),在0080H~ 0084H設(shè)置選項(xiàng)字節(jié);使用引導(dǎo)交換功能時(shí),在0080H~ 0084H和1080H~1084設(shè)置選項(xiàng)字節(jié)CALLF指令入口區(qū)域:0800H~0FFFH的區(qū)域,是CALLF指令的 入口區(qū)域。用于子程序的直接調(diào)用,通過(guò)一個(gè)2字節(jié)的調(diào)用指令 (CALLF)實(shí)現(xiàn)

片上調(diào)試安全I(xiàn)D設(shè)置區(qū)域:0085H~008EH和1085H~108EH各 10字節(jié)區(qū)域可用作片上調(diào)試安全I(xiàn)D設(shè)置區(qū)域。不使用引導(dǎo)交換 功能時(shí),在0085H~008EH區(qū)域設(shè)置片上調(diào)試安全I(xiàn)D;當(dāng)使 用引導(dǎo)交換功能時(shí),在0085H~008EH和1085H~108EH區(qū) 域設(shè)置微處理器的存儲(chǔ)器結(jié)構(gòu)CALLT指令表區(qū)域:0040H至007FH共64字23存儲(chǔ)器組對(duì)于78F0547D,8000H~BFFFH共16KB的空間分配給存儲(chǔ)器組0~5。并且通過(guò)存儲(chǔ)器組選擇寄存器(BANK)進(jìn)行選擇。在操作存儲(chǔ)器組時(shí),要注意如下規(guī)則:1.

不能在不同的存儲(chǔ)器組之間獲取指令2.

不能在不同的存儲(chǔ)器組之間直接進(jìn)行轉(zhuǎn)移和訪問(wèn)。必須通過(guò)共享區(qū)域執(zhí)行不同存儲(chǔ)器組之間的轉(zhuǎn)移或訪問(wèn)操作3.

在共享區(qū)域中分配中斷服務(wù)程序4.

擴(kuò)展到7FFFH~8000H的指令只能在存儲(chǔ)器組0中執(zhí)行微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組微處理器的存儲(chǔ)器結(jié)構(gòu)24存儲(chǔ)器組選擇寄存器(BANK):由8位存儲(chǔ)器操作指令進(jìn)行設(shè) 置。復(fù)位信號(hào)將BANK清零(00H)BANK寄存器的格式如下:微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組選擇寄存器(BANK):由8位存儲(chǔ)器操作指令進(jìn)行設(shè)25存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)兩個(gè)存儲(chǔ)器組之間的數(shù)值不能直接關(guān)聯(lián),要從一個(gè)存儲(chǔ)器組訪問(wèn)另一個(gè)存儲(chǔ)器組,應(yīng)進(jìn)行一次轉(zhuǎn)移操作,指向公共區(qū)域(0000H~7FFFH),修改那里的BANK設(shè)置,然后關(guān)聯(lián)一個(gè)值微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)微處理器的存儲(chǔ)器結(jié)構(gòu)26存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)-程序示例存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)-程序示例27存儲(chǔ)器組之間的指令轉(zhuǎn)移存儲(chǔ)器組之間不能直接轉(zhuǎn)移指令,要在存儲(chǔ)器組之間轉(zhuǎn)移指令,應(yīng)先轉(zhuǎn)向公共區(qū)域(0000H~7FFFH),修改相關(guān)的BANK寄存器的設(shè)置,然后再執(zhí)行轉(zhuǎn)移指令微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組之間的指令轉(zhuǎn)移微處理器的存儲(chǔ)器結(jié)構(gòu)28存儲(chǔ)器組之間的指令轉(zhuǎn)移-程序示例存儲(chǔ)器組之間的指令轉(zhuǎn)移-程序示例29存儲(chǔ)器組之間不能直接調(diào)用子程序,要在存儲(chǔ)器組之間調(diào)用子程序,應(yīng)先轉(zhuǎn)向公共區(qū)域(0000H~7FFFH),通過(guò)使用相關(guān)的BANK寄存器指定調(diào)用目的地的存儲(chǔ)器組,然后執(zhí)行CALL指令,通過(guò)該指令轉(zhuǎn)向調(diào)用目的地。將BANK的當(dāng)前值存入RAM。在執(zhí)行RET指令前恢復(fù)BANK的值(相當(dāng)于現(xiàn)場(chǎng)保護(hù))存儲(chǔ)器組之間的子程序調(diào)用微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組之間不能直接調(diào)用子程序,要在存儲(chǔ)器組之間調(diào)用子程序,30存儲(chǔ)器組之間的子程序調(diào)用-程序示例存儲(chǔ)器組之間的子程序調(diào)用-程序示例31當(dāng)中斷產(chǎn)生時(shí),通過(guò)使用向量表,指令可以轉(zhuǎn)向由BANK指定的存儲(chǔ)器組。如果中斷時(shí)識(shí)別BANK寄存器比較難,可以通過(guò)公共區(qū)域(0000H~7FFFH)的向量表指定轉(zhuǎn)移目的地的地址,通過(guò)使用公共區(qū)域中的BANK寄存器指定轉(zhuǎn)移目的地的存儲(chǔ)器組,并執(zhí)行CALL指令。此時(shí)在修改RAM之前保存BANK寄存器的內(nèi)容,并在執(zhí)行RETI指令前恢復(fù)BANK的值通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域微處理器的存儲(chǔ)器結(jié)構(gòu)當(dāng)中斷產(chǎn)生時(shí),通過(guò)使用向量表,指令可以轉(zhuǎn)向由BANK指定的32通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域33通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域-程序示例通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域-程序示例34內(nèi)部數(shù)據(jù)存儲(chǔ)空間包括以下幾種RAM:內(nèi)部高速RAM 共有1024×8位(FB00H~FEFFH)的內(nèi)部高速RAM,F(xiàn)EE0H~FEFFH共32字節(jié)的區(qū)域分配給4組通用寄存器,每組都由8個(gè)8位寄存器組成。這個(gè)區(qū)域不可以用作寫(xiě)和執(zhí)行指令的程序區(qū)域??梢宰鳛槎褩4鎯?chǔ)器使用內(nèi)部擴(kuò)展RAM 共有6144×8位(E000H~F7FFH)的內(nèi)部擴(kuò)展RAM,可作為普通數(shù)據(jù)區(qū)域,同時(shí)也可作為寫(xiě)和執(zhí)行指令的程序存儲(chǔ)區(qū)域。但不能用作堆棧微處理器的存儲(chǔ)器結(jié)構(gòu)內(nèi)部數(shù)據(jù)存儲(chǔ)空間微處理器的存儲(chǔ)器結(jié)構(gòu)35特殊功能寄存器(SFR)區(qū)域片內(nèi)外圍硬件的特殊功能寄存器(SFR)被分配在: FF00H~FFFFH的區(qū)域WDTE的復(fù)位值由選項(xiàng)字節(jié)的設(shè)置決定,

復(fù)位后該寄存器的 值立即變?yōu)?0H,但在等待高速內(nèi)部振蕩器的振蕩精確穩(wěn) 定后,該寄存器值會(huì)自動(dòng)變?yōu)?0H。RESF的復(fù)位值會(huì)根據(jù)復(fù)位源的變化而變化LVIM和LVIS的復(fù)位值隨著復(fù)位源而變化不管內(nèi)存容量有多大,內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展 RAM容量切換寄存器(IXS)的初始值都是固定的(IMS= CFH,IXS=0CH)微處理器的存儲(chǔ)器結(jié)構(gòu)特殊功能寄存器(SFR)區(qū)域微處理器的存儲(chǔ)器結(jié)構(gòu)36汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件37汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件38汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件39汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件40微處理器的通用I/O口微處理器的通用I/O口41微處理器的通用I/O口微處理器的通用I/O口42微處理器的通用I/O口微處理器的通用I/O口43未使用引腳的處理方式CMOS設(shè)備的輸入引腳保持開(kāi)路可能導(dǎo)致誤操作。如果一個(gè)輸入引腳未被連接,由于噪音等原因可能導(dǎo)致誤操 作。CMOS設(shè)備的操作特性與Bipolar或NMOS設(shè)備不同,CMOS 設(shè)備的輸入電平必須借助上拉或下拉電路固定在高電平 或低電平。即使可以作為輸出引腳,每個(gè)未被使用的引腳也應(yīng)該通過(guò)附 加電阻連接到VDD或GND。對(duì)未使用引腳的處理因設(shè)備而異,對(duì)于每種類型的微處理 器,必須遵循與設(shè)備相關(guān)的規(guī)定和說(shuō)明。μPD78F0547D的引腳I/O電路類型和未使用引腳的處理方 式如下:微處理器的通用I/O口未使用引腳的處理方式微處理器的通用I/O口44汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件45汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件46端口模式寄存器(PM0~PM7,PM12和PM14):

以1位單元的方式定義端口的輸入或輸出模式。可以由1位或8位存儲(chǔ)器操作指令設(shè)置這些寄存器端口控制端口模式寄存器(PM0~PM7,PM12和PM14)47端口控制引腳I/O模式選擇端口控制引腳I/O模式選擇48端口寄存器(P0~P7,P12~P14):

設(shè)置芯片端口要輸出的數(shù)據(jù)。如果在輸入模式下讀端口,則讀取的是引腳電平。如果在輸出模式下讀端口,則讀取的是輸出鎖存器的值??梢杂?位或8位存儲(chǔ)器操作指令設(shè)置這些寄存器端口控制端口寄存器(P0~P7,P12~P14):端口控制49輸入輸出數(shù)據(jù)控制端口控制輸入輸出數(shù)據(jù)控制端口控制50上拉電阻選擇寄存器(PU0,PU1,PU3~PU7,PU12和PU14):寄存器指定是否使用P00~P60、P10~P17、P30~P33、P40~P47、P50~P57、P60~P67、P70~P77、P120或P140~P145的內(nèi)部上拉電阻。內(nèi)部上拉電阻可以以1位單元的方式用于那些已設(shè)置為輸入模式的引腳,并且這些引腳已通過(guò)PU0、PU1、PU3~PU7、PU12和PU14指定為使用內(nèi)部上拉電阻。不論是否設(shè)置了PU0、PU1、PU3~PU7、PU12和PU14,設(shè)置為輸出模式的引腳和用作復(fù)用功能的輸出引腳都不連接內(nèi)部上拉電阻??梢杂?位或8位存儲(chǔ)器操作指令設(shè)置這些寄存器端口控制上拉電阻選擇寄存器(PU0,PU1,PU3~PU7,51端口控制上拉電阻選擇寄存器端口控制上拉電阻選擇寄存器52A/D端口配置寄存器(ADPC): 寄存器將P20/ANI0~P27/ANI7引腳切換為數(shù)字I/O端口或A/D轉(zhuǎn)換器的模擬輸入??捎?位或者8位存儲(chǔ)器操作指令對(duì)ADPC進(jìn)行設(shè)置通過(guò)使用端口模式寄存器2(PM2)將A/D轉(zhuǎn)換通道設(shè)置為輸入模式;在使用模擬輸入通道選擇寄存器(ADS)時(shí),不必通過(guò)ADPC將引腳設(shè)置為數(shù)字I/O引腳;如果將數(shù)據(jù)寫(xiě)入ADPC,產(chǎn)生一個(gè)等待周期。當(dāng)CPU使用子系統(tǒng)時(shí)鐘并且外部硬件時(shí)鐘停止時(shí),不要將數(shù)據(jù)寫(xiě)入ADPC端口控制A/D端口配置寄存器(ADPC):通過(guò)使用端口模式寄存器253寫(xiě)入I/O端口(1)輸出模式:使用傳送指令對(duì)輸出鎖存器進(jìn)行寫(xiě)操作,輸出鎖存器的內(nèi)容從引腳輸出。一旦數(shù)據(jù)寫(xiě)入輸出鎖存器,一直保存到新數(shù)據(jù)寫(xiě)入。通過(guò)復(fù)位將輸出鎖存器的內(nèi)容清零(2)輸入模式:使用傳送指令對(duì)輸出鎖存器進(jìn)行寫(xiě)操作,因?yàn)檩敵鼍彌_器處于關(guān)閉狀態(tài),所以引腳狀態(tài)不會(huì)改變。一旦數(shù)據(jù)寫(xiě)入輸出鎖存器,它將一直保存到新數(shù)據(jù)寫(xiě)入從I/O端口讀數(shù)據(jù)(1)輸出模式:使用傳送指令讀取輸出鎖存器的內(nèi)容。輸出鎖存器的內(nèi)容不會(huì)改變。(2)輸入模式:使用傳送指令讀取引腳狀態(tài)。輸出鎖存器的內(nèi)容不改變。注意:在使用1位存儲(chǔ)器操作指令的情況下,雖然操作的是1位,但仍以8 位的操作形式訪問(wèn)端口。因此,對(duì)于一個(gè)既有輸入引腳又有輸出引腳 的端口,所有定義為輸入引腳的輸出鎖存器的內(nèi)容是不確定的,而那 些未被操作的位也是如此端口控制寫(xiě)入I/O端口端口控制54有5種復(fù)位源:由RESET引腳引起的外部復(fù)位信號(hào)輸入由看門(mén)狗定時(shí)器引起的內(nèi)部復(fù)位由高速系統(tǒng)時(shí)鐘振蕩器停止檢測(cè)引起的內(nèi)部復(fù)位通過(guò)比較上電清零(POC)電路的供電電壓和檢測(cè)電壓 引起的內(nèi)部復(fù)位通過(guò)比較低電壓檢測(cè)電路(LVI)的供電電壓和檢測(cè)電壓引 起的內(nèi)部復(fù)位復(fù)位源有5種復(fù)位源:復(fù)位源55外部復(fù)位與內(nèi)部復(fù)位在功能上沒(méi)有什么區(qū)別。在這兩種情況中,當(dāng)輸入復(fù)位信號(hào)時(shí),程序都是從地址0000H和0001H處開(kāi)始執(zhí)行。當(dāng)RESET引腳輸入為低電平、看門(mén)狗定時(shí)器溢出、通過(guò)時(shí)鐘監(jiān)視器檢測(cè)到高速系統(tǒng)時(shí)鐘振蕩器停止、或POC和LVI電路的電壓檢測(cè)都可以引起復(fù)位。在復(fù)位輸入期間或在復(fù)位釋放后振蕩器穩(wěn)定時(shí)間內(nèi),除P130(低電平輸出)以外的每個(gè)引腳均為高阻抗。當(dāng)復(fù)位有效時(shí),P130引腳的輸出為低電平。如果在復(fù)位有效前將P130設(shè)置為高電平輸出,則P130的輸出信號(hào)可以作為CPU復(fù)位信號(hào)的虛擬輸出,可以用于外部硬件的復(fù)位操作當(dāng)RESET引腳輸入高電平時(shí),釋放復(fù)位操作,并在CPU時(shí)鐘操作停止了17/fR(s)(fR為內(nèi)部振蕩器時(shí)鐘頻率)后使用內(nèi)部振蕩器時(shí)鐘執(zhí)行程序。復(fù)位源外部復(fù)位與內(nèi)部復(fù)位在功能上沒(méi)有什么區(qū)別。在這兩種情況中,當(dāng)輸56對(duì)于外部復(fù)位,輸入RESET引腳的低電平的時(shí)間應(yīng)為10μs或更長(zhǎng)復(fù)位輸入期間,高速系統(tǒng)時(shí)鐘和內(nèi)部振蕩器時(shí)鐘停止振蕩復(fù)位電路對(duì)于外部復(fù)位,通常有下列幾種情況需要加外部復(fù)位電路。當(dāng)電源上升時(shí)間比較長(zhǎng)時(shí),通過(guò)RC電路來(lái)保證VDD達(dá)到最小工作電壓時(shí)由看門(mén)狗定時(shí)器和時(shí)鐘監(jiān)視器引起的復(fù)位在復(fù)位后自動(dòng)釋放,并在CPU時(shí)鐘操作停止了17/fR(s)后使用內(nèi)部振蕩器時(shí)鐘執(zhí)行程序。由POC和LVI電路供電檢測(cè)引起的復(fù)位,在復(fù)位后,當(dāng)VDD>VPOC或VDD>VLVI時(shí)自動(dòng)釋放,并在CPU時(shí)鐘操作停止了17/fR(s)后使用內(nèi)部振蕩器時(shí)鐘執(zhí)行程序復(fù)位源對(duì)于外部復(fù)位,輸入RESET引腳的低電平的時(shí)間應(yīng)為10μ57器件功能及取值原則:①R<40K(由于RESET吸入電流約50μA,為保證RESET端電壓不大于0.2V)②二極管D將使電容C在VDD掉電時(shí)能快速?gòu)氐追烹姠跼1取100~1K,為限流電阻,用來(lái)限制大的放電電流或靜電ESD對(duì)RESET的沖擊殘存電壓保護(hù)電路有些應(yīng)用中,例如供電電池在幾秒鐘內(nèi)掉電后又恢復(fù),此時(shí)將可能會(huì)在復(fù)位引腳上出現(xiàn)一個(gè)小于Vdd最小值,但不為0的殘存電壓,而使復(fù)位不正常,以下兩種電路可以用于解決這類問(wèn)題復(fù)位電路器件功能及取值原則:殘存電壓保護(hù)電路復(fù)位電路58當(dāng)VDD掉至VZ+0.7V時(shí)單片機(jī)復(fù)位(VZ為穩(wěn)壓管穩(wěn)壓值)復(fù)位電路當(dāng)VDD掉至VZ+0.7V時(shí)單片機(jī)復(fù)位(VZ為穩(wěn)壓管穩(wěn)59RESET復(fù)位時(shí)序RESET復(fù)位時(shí)序60看門(mén)狗復(fù)位時(shí)序看門(mén)狗復(fù)位時(shí)序61STOP模式下RESET復(fù)位時(shí)序STOP模式下RESET復(fù)位時(shí)序62第二講 MCU的基本結(jié)構(gòu)主要內(nèi)容包括:內(nèi)部硬件構(gòu)成存儲(chǔ)器結(jié)構(gòu)寄存器復(fù)位第二講 MCU的基本結(jié)構(gòu)主要內(nèi)容包括:63NEC微處理器PD78F0547D的基本結(jié)構(gòu)PD78F0547D的基本特性

指令最短執(zhí)行時(shí)間根據(jù)CPU的操作頻率可以在高速(0.1μs-頻率為20MHz)和超低速(122μs-頻率為32.768kHz)之間改變通用寄存器:8位×32個(gè)寄存器(8位×8個(gè)寄存器×4組)內(nèi)置單電源閃存-128KB內(nèi)部高速RAM-1KB內(nèi)部擴(kuò)展RAM-6KB通過(guò)使用內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展RAM容量切換寄存器(IXS),可以改變內(nèi)部閃存,內(nèi)部高速RAM和內(nèi)部擴(kuò)展RAM的容量NEC微處理器PD78F0547D的基本結(jié)構(gòu)PD78F064緩沖RAM:32字節(jié)(可用于CSI模式的傳送,具有自動(dòng)發(fā)送/接收功能)自編程(具有啟動(dòng)交換功能)片上調(diào)試功能,主要用于產(chǎn)品開(kāi)發(fā)階段內(nèi)置上電復(fù)位(POC)電路和低電壓檢測(cè)電路(LVI)內(nèi)置看門(mén)狗定時(shí)器內(nèi)置乘法器/除法器(16位×16位,32位/16位)內(nèi)置按鍵中斷功能內(nèi)置時(shí)鐘輸出/蜂鳴器輸出控制器I/O端口:71(漏極開(kāi)路:4)NEC微處理器PD78F0547D的基本結(jié)構(gòu)緩沖RAM:32字節(jié)(可用于CSI模式的傳送,具有自動(dòng)發(fā)65定時(shí)器:有8通道 16位定時(shí)/計(jì)數(shù)器: 2通道 8位定時(shí)/計(jì)數(shù)器: 2通道 8位定時(shí)器: 2通道 時(shí)鐘定時(shí)器: 1通道 看門(mén)狗定時(shí)器: 1通道串行接口:有5通道 UART(支持LIN總線): 1通道 CSI/UART: 1通道 CSI: 1通道 自動(dòng)收發(fā)功能的CSI: 1通道 I2C: 1通道10位分辨率A/D轉(zhuǎn)換器(AVREF=2.3~5.5V):8通道電源電壓:VDD=1.8~5.5VNEC微處理器PD78F0547D的基本結(jié)構(gòu)定時(shí)器:有8通道串行接口:有5通道10位分辨率A/D66內(nèi)部結(jié)構(gòu)框圖[1]NEC微處理器PD78F0547D的基本結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖[1]NEC微處理器PD78F0547D的基本67內(nèi)部結(jié)構(gòu)框圖[2]NEC微處理器PD78F0547D的基本結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖[2]NEC微處理器PD78F0547D的基本68內(nèi)部結(jié)構(gòu)框圖[3]NEC微處理器PD78F0547D的基本結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖[3]NEC微處理器PD78F0547D的基本69NEC微處理器PD78F0547D的基本結(jié)構(gòu)NEC微處理器PD78F0547D的基本結(jié)構(gòu)70ANI0toANI7: AnaloginputAVREF: AnalogreferencevoltageAVSS: AnaloggroundBUSY0: SerialbusyinputBUZ: BuzzeroutputEVDD: PowersupplyforportEVSS: GroundforportEXCLK: Externalclockinput(mainsystemclock)EXCLKS: Externalclockinput(subsystemclock)EXLVI: Externalpotentialinput-forlow-voltagedetectorEXSCL0: ExternalserialclockinputFLMD0: FlashprogrammingmodeINTP0toINTP7: ExternalinterruptinputKR0toKR7: KeyreturnOCD0A,OCD0B,OCD1A,OCD1B:Onchipdebuginput/outputP00toP06: Port0P10toP17: Port1NEC微處理器PD78F0547D的基本結(jié)構(gòu)ANI0toANI7: AnaloginputNEC71P20toP27: Port2P30toP33: Port3P40toP47: Port4P50toP57: Port5P60toP67: Port6P70toP77: Port7P120toP124: Port12P130: Port13P140toP145: Port14PCL: ProgrammableclockoutputREGC: RegulatorcapacitanceRESET: ResetRxD0,RxD6: ReceivedataSCK10,SCK11,SCKA0: Serialclockinput/outputSCL0: Serialclockinput/outputSDA0: Serialdatainput/outputSI10,SI11,SIA0: SerialdatainputNEC微處理器PD78F0547D的基本結(jié)構(gòu)P20toP27: Port2NEC微處理器P72SO10,SO11,SOA0: SerialdataoutputSSI11: SerialinterfacechipselectinputSTB0: SerialstrobeTI000,TI010,TI001,TI011,TI50,TI51: TimerinputTO00,TO01,TO50,TO51,TOH0,TOH1: TimeroutputTxD0,TxD6: TransmitdataVDD: PowersupplyVSS: GroundX1,X2: Crystaloscillator(mainsystemclock)XT1,XT2: Crystaloscillator(subsystemclock)NEC微處理器PD78F0547D的基本結(jié)構(gòu)SO10,SO11,SOA0: Serialdat73微處理器的寄存器控制寄存器控制程序執(zhí)行的順序、狀態(tài)和堆??臻g。程序計(jì)數(shù)器(PC)、程序狀態(tài)字(PSW)和堆棧指針寄存器(SP)都屬于控制寄存器程序計(jì)數(shù)器是一個(gè)16位寄存器,用于存放下一條即將要執(zhí)行的指令的地址。在正常情況下,根據(jù)獲取的指令字節(jié)數(shù),程序計(jì)數(shù)器(PC)的值會(huì)自動(dòng)累加。當(dāng)執(zhí)行分支指令時(shí),則設(shè)置立即數(shù)和寄存器內(nèi)容復(fù)位后,將中斷向量表中地址為0000H和0001H中的值賦給程序計(jì)數(shù)器程序狀態(tài)字(PSW)是一個(gè)8位寄存器,由各種標(biāo)志位組成,通過(guò)指令執(zhí)行對(duì)其進(jìn)行設(shè)置或復(fù)位。根據(jù)中斷請(qǐng)求的產(chǎn)生或PUSHPSW指令執(zhí)行,程序狀態(tài)字的內(nèi)容自動(dòng)入棧;執(zhí)行RETB,RETI和POPPSW指令使程序狀態(tài)字的值自動(dòng)恢復(fù)微處理器的寄存器控制寄存器程序計(jì)數(shù)器程序狀態(tài)字(PSW)74復(fù)位將程序狀態(tài)字的內(nèi)容設(shè)置為02H堆棧指針SP是一個(gè)16位的寄存器,用來(lái)存放內(nèi)存堆棧區(qū)的起始地址。只有內(nèi)部高速RAM區(qū)域才能被設(shè)置為堆棧區(qū)堆棧是向下增長(zhǎng)的。向堆棧存入數(shù)據(jù)時(shí),堆棧指針SP累減,而從堆棧中恢復(fù)數(shù)據(jù)時(shí),堆棧指針累加復(fù)位時(shí),SP的內(nèi)容不確定,所以在使用堆棧前必須初始化SP微處理器的寄存器復(fù)位將程序狀態(tài)字的內(nèi)容設(shè)置為02H堆棧指針SP微處理器的寄存75微處理器的寄存器微處理器的寄存器76微處理器的寄存器微處理器的寄存器77通用寄存器通用寄存器映射到數(shù)據(jù)存儲(chǔ)器的地址空間為FEE0H-FEFFH。共有四組,每一組由8個(gè)8位寄存器(X,A,C,B,E,D,L和H)組成每個(gè)寄存器可作為一個(gè)8位寄存器使用,兩個(gè)成對(duì)的8位寄存器可作為一個(gè)16位寄存器(AX,BC,DE和HL)使用。描述通用寄存器可以使用功能名稱(X,A,C,B,E,D,L,H,AX,BC,DE和HL)或者絕對(duì)名稱(R0~R7,RP0~RP3)用于指令執(zhí)行的寄存器組由CPU控制指令(SELRBn)來(lái)設(shè)置微處理器的寄存器通用寄存器微處理器的寄存器78特殊功能寄存器(SFRs)與通用寄存器不同,每個(gè)特殊功能寄存器都有特定的功能。從FF00H到FFFFH總共256字節(jié)的區(qū)域分配給特殊功能寄存器。特殊功能寄存器可以像通用寄存器那樣使用操作指令、轉(zhuǎn)移指令以及位操作指令進(jìn)行操作。根據(jù)特殊功能寄存器的類型不同,可操作的位單元可以是1位、8位和16位。每種位單元操作的描述如下:

1位操作:操作指令的操作數(shù)(sfr.bit)被描述為匯編程序的保留符號(hào),該操作也可由一個(gè)地址來(lái)定義

8位操作:操作指令的操作數(shù)(sfr)被描述為匯編程序的保留符號(hào),該操作也可由一個(gè)地址來(lái)定義

16位操作:位操作指令的操作數(shù)(sfrp)被描述為匯編程序的保留符號(hào),該操作也可由一個(gè)地址來(lái)定義。尋址時(shí)表示為一個(gè)偶地址微處理器的寄存器特殊功能寄存器(SFRs)微處理器的寄存器79微處理器的存儲(chǔ)器結(jié)構(gòu)78K0/KF2系列可以訪問(wèn)64KB的存儲(chǔ)空間。內(nèi)存容量切換寄存器(IMS)和所有78K0/KF2產(chǎn)品的內(nèi)部擴(kuò)展RAM容量切換寄存器(IXS)的初始值固定為(IMS=CFH,IXS=0CH)芯片初始化時(shí)需要依次設(shè)置IMS和IXS微處理器的存儲(chǔ)器結(jié)構(gòu)78K0/KF2系列可以訪問(wèn)64KB80設(shè)置內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展RAM容量切換寄 存器(IXS)的值微處理器的存儲(chǔ)器結(jié)構(gòu)設(shè)置內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展RAM容量切換寄81μPD78F0547D的微處理器的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)μPD78F0547D的微處理器的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)82

當(dāng)不使用引導(dǎo)交換功能的時(shí):設(shè)置選項(xiàng)字節(jié)區(qū)域:0080H~0084H,以及片上調(diào)試安全I(xiàn)D區(qū)域:0085H~008EH當(dāng)使用引導(dǎo)交換功能的時(shí):設(shè)置選項(xiàng)字節(jié)0080H~0084H和1080H~1084,以及片上調(diào)試安全I(xiàn)D區(qū)域:0085H~008EH和1085H~-108EH

根據(jù)安全設(shè)置可以禁止寫(xiě)入引導(dǎo)簇0內(nèi)部程序存儲(chǔ)空間內(nèi)部程序存儲(chǔ)空間用于存儲(chǔ)程序和表數(shù)據(jù),一般通過(guò)程序計(jì)數(shù)器(PC)來(lái)尋址。內(nèi)部程序存儲(chǔ)空間主要分為以下幾個(gè)區(qū)域:向量表區(qū)域:從0000H到003FH總共64字節(jié)作為向量表區(qū)域。在向量表中存放的是系統(tǒng)復(fù)位后或每個(gè)中斷請(qǐng)求的產(chǎn)生進(jìn)行轉(zhuǎn)移的程序的起始地址。在16位地址中,低8位是偶地址,高8位是奇地址。是一個(gè)散轉(zhuǎn)表,也類似與中斷向量表微處理器的存儲(chǔ)器結(jié)構(gòu)當(dāng)不使用引導(dǎo)交換功能的時(shí):設(shè)置選項(xiàng)字節(jié)區(qū)域:0080H~83微處理器的存儲(chǔ)器結(jié)構(gòu)微處理器的存儲(chǔ)器結(jié)構(gòu)84CALLT指令表區(qū)域:0040H至007FH共64字節(jié)的區(qū)域,可存放單

字 節(jié)調(diào)用指令(CALLT)的子程序入口地址選項(xiàng)字節(jié)區(qū)域:0080H~0084H和1080H~1084H各5字節(jié)的區(qū)域 可以用作選項(xiàng)字節(jié)區(qū)域。不使用引導(dǎo)交換功能時(shí),在0080H~ 0084H設(shè)置選項(xiàng)字節(jié);使用引導(dǎo)交換功能時(shí),在0080H~ 0084H和1080H~1084設(shè)置選項(xiàng)字節(jié)CALLF指令入口區(qū)域:0800H~0FFFH的區(qū)域,是CALLF指令的 入口區(qū)域。用于子程序的直接調(diào)用,通過(guò)一個(gè)2字節(jié)的調(diào)用指令 (CALLF)實(shí)現(xiàn)

片上調(diào)試安全I(xiàn)D設(shè)置區(qū)域:0085H~008EH和1085H~108EH各 10字節(jié)區(qū)域可用作片上調(diào)試安全I(xiàn)D設(shè)置區(qū)域。不使用引導(dǎo)交換 功能時(shí),在0085H~008EH區(qū)域設(shè)置片上調(diào)試安全I(xiàn)D;當(dāng)使 用引導(dǎo)交換功能時(shí),在0085H~008EH和1085H~108EH區(qū) 域設(shè)置微處理器的存儲(chǔ)器結(jié)構(gòu)CALLT指令表區(qū)域:0040H至007FH共64字85存儲(chǔ)器組對(duì)于78F0547D,8000H~BFFFH共16KB的空間分配給存儲(chǔ)器組0~5。并且通過(guò)存儲(chǔ)器組選擇寄存器(BANK)進(jìn)行選擇。在操作存儲(chǔ)器組時(shí),要注意如下規(guī)則:1.

不能在不同的存儲(chǔ)器組之間獲取指令2.

不能在不同的存儲(chǔ)器組之間直接進(jìn)行轉(zhuǎn)移和訪問(wèn)。必須通過(guò)共享區(qū)域執(zhí)行不同存儲(chǔ)器組之間的轉(zhuǎn)移或訪問(wèn)操作3.

在共享區(qū)域中分配中斷服務(wù)程序4.

擴(kuò)展到7FFFH~8000H的指令只能在存儲(chǔ)器組0中執(zhí)行微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組微處理器的存儲(chǔ)器結(jié)構(gòu)86存儲(chǔ)器組選擇寄存器(BANK):由8位存儲(chǔ)器操作指令進(jìn)行設(shè) 置。復(fù)位信號(hào)將BANK清零(00H)BANK寄存器的格式如下:微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組選擇寄存器(BANK):由8位存儲(chǔ)器操作指令進(jìn)行設(shè)87存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)兩個(gè)存儲(chǔ)器組之間的數(shù)值不能直接關(guān)聯(lián),要從一個(gè)存儲(chǔ)器組訪問(wèn)另一個(gè)存儲(chǔ)器組,應(yīng)進(jìn)行一次轉(zhuǎn)移操作,指向公共區(qū)域(0000H~7FFFH),修改那里的BANK設(shè)置,然后關(guān)聯(lián)一個(gè)值微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)微處理器的存儲(chǔ)器結(jié)構(gòu)88存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)-程序示例存儲(chǔ)器組之間的數(shù)據(jù)關(guān)聯(lián)-程序示例89存儲(chǔ)器組之間的指令轉(zhuǎn)移存儲(chǔ)器組之間不能直接轉(zhuǎn)移指令,要在存儲(chǔ)器組之間轉(zhuǎn)移指令,應(yīng)先轉(zhuǎn)向公共區(qū)域(0000H~7FFFH),修改相關(guān)的BANK寄存器的設(shè)置,然后再執(zhí)行轉(zhuǎn)移指令微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組之間的指令轉(zhuǎn)移微處理器的存儲(chǔ)器結(jié)構(gòu)90存儲(chǔ)器組之間的指令轉(zhuǎn)移-程序示例存儲(chǔ)器組之間的指令轉(zhuǎn)移-程序示例91存儲(chǔ)器組之間不能直接調(diào)用子程序,要在存儲(chǔ)器組之間調(diào)用子程序,應(yīng)先轉(zhuǎn)向公共區(qū)域(0000H~7FFFH),通過(guò)使用相關(guān)的BANK寄存器指定調(diào)用目的地的存儲(chǔ)器組,然后執(zhí)行CALL指令,通過(guò)該指令轉(zhuǎn)向調(diào)用目的地。將BANK的當(dāng)前值存入RAM。在執(zhí)行RET指令前恢復(fù)BANK的值(相當(dāng)于現(xiàn)場(chǎng)保護(hù))存儲(chǔ)器組之間的子程序調(diào)用微處理器的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器組之間不能直接調(diào)用子程序,要在存儲(chǔ)器組之間調(diào)用子程序,92存儲(chǔ)器組之間的子程序調(diào)用-程序示例存儲(chǔ)器組之間的子程序調(diào)用-程序示例93當(dāng)中斷產(chǎn)生時(shí),通過(guò)使用向量表,指令可以轉(zhuǎn)向由BANK指定的存儲(chǔ)器組。如果中斷時(shí)識(shí)別BANK寄存器比較難,可以通過(guò)公共區(qū)域(0000H~7FFFH)的向量表指定轉(zhuǎn)移目的地的地址,通過(guò)使用公共區(qū)域中的BANK寄存器指定轉(zhuǎn)移目的地的存儲(chǔ)器組,并執(zhí)行CALL指令。此時(shí)在修改RAM之前保存BANK寄存器的內(nèi)容,并在執(zhí)行RETI指令前恢復(fù)BANK的值通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域微處理器的存儲(chǔ)器結(jié)構(gòu)當(dāng)中斷產(chǎn)生時(shí),通過(guò)使用向量表,指令可以轉(zhuǎn)向由BANK指定的94通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域95通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域-程序示例通過(guò)中斷將指令轉(zhuǎn)向存儲(chǔ)器組區(qū)域-程序示例96內(nèi)部數(shù)據(jù)存儲(chǔ)空間包括以下幾種RAM:內(nèi)部高速RAM 共有1024×8位(FB00H~FEFFH)的內(nèi)部高速RAM,F(xiàn)EE0H~FEFFH共32字節(jié)的區(qū)域分配給4組通用寄存器,每組都由8個(gè)8位寄存器組成。這個(gè)區(qū)域不可以用作寫(xiě)和執(zhí)行指令的程序區(qū)域??梢宰鳛槎褩4鎯?chǔ)器使用內(nèi)部擴(kuò)展RAM 共有6144×8位(E000H~F7FFH)的內(nèi)部擴(kuò)展RAM,可作為普通數(shù)據(jù)區(qū)域,同時(shí)也可作為寫(xiě)和執(zhí)行指令的程序存儲(chǔ)區(qū)域。但不能用作堆棧微處理器的存儲(chǔ)器結(jié)構(gòu)內(nèi)部數(shù)據(jù)存儲(chǔ)空間微處理器的存儲(chǔ)器結(jié)構(gòu)97特殊功能寄存器(SFR)區(qū)域片內(nèi)外圍硬件的特殊功能寄存器(SFR)被分配在: FF00H~FFFFH的區(qū)域WDTE的復(fù)位值由選項(xiàng)字節(jié)的設(shè)置決定,

復(fù)位后該寄存器的 值立即變?yōu)?0H,但在等待高速內(nèi)部振蕩器的振蕩精確穩(wěn) 定后,該寄存器值會(huì)自動(dòng)變?yōu)?0H。RESF的復(fù)位值會(huì)根據(jù)復(fù)位源的變化而變化LVIM和LVIS的復(fù)位值隨著復(fù)位源而變化不管內(nèi)存容量有多大,內(nèi)存容量切換寄存器(IMS)和內(nèi)部擴(kuò)展 RAM容量切換寄存器(IXS)的初始值都是固定的(IMS= CFH,IXS=0CH)微處理器的存儲(chǔ)器結(jié)構(gòu)特殊功能寄存器(SFR)區(qū)域微處理器的存儲(chǔ)器結(jié)構(gòu)98汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件99汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件100汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件101汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件102微處理器的通用I/O口微處理器的通用I/O口103微處理器的通用I/O口微處理器的通用I/O口104微處理器的通用I/O口微處理器的通用I/O口105未使用引腳的處理方式CMOS設(shè)備的輸入引腳保持開(kāi)路可能導(dǎo)致誤操作。如果一個(gè)輸入引腳未被連接,由于噪音等原因可能導(dǎo)致誤操 作。CMOS設(shè)備的操作特性與Bipolar或NMOS設(shè)備不同,CMOS 設(shè)備的輸入電平必須借助上拉或下拉電路固定在高電平 或低電平。即使可以作為輸出引腳,每個(gè)未被使用的引腳也應(yīng)該通過(guò)附 加電阻連接到VDD或GND。對(duì)未使用引腳的處理因設(shè)備而異,對(duì)于每種類型的微處理 器,必須遵循與設(shè)備相關(guān)的規(guī)定和說(shuō)明。μPD78F0547D的引腳I/O電路類型和未使用引腳的處理方 式如下:微處理器的通用I/O口未使用引腳的處理方式微處理器的通用I/O口106汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件107汽車(chē)單片機(jī)原理及應(yīng)用第二章MCU的基本結(jié)構(gòu)課件108端口模式寄存器(PM0~PM7,PM12和PM14):

以1位單元的方式定義端口的輸入或輸出模式。可以由1位或8位存儲(chǔ)器操作指令設(shè)置這些寄存器端口控制端口模式寄存器(PM0~PM7,PM12和PM14)109端口控制引腳I/O模式選擇端口控制引腳I/O模式選擇110端口寄存器(P0~P7,P12~P14):

設(shè)置芯片端口要輸出的數(shù)據(jù)。如果在輸入模式下讀端口,則讀取的是引腳電平。如果在輸出模式下讀端口,則讀取的是輸出鎖存器的值??梢杂?位或8位存儲(chǔ)器操作指令設(shè)置這些寄存器端口控制端口寄存器(P0~P7,P12~P14):端口控制111輸入輸出數(shù)據(jù)控制端口控制輸入輸出數(shù)據(jù)控制端口控制112上拉電阻選擇寄存器(PU0,PU1,PU3~PU7,PU12和PU14):寄存器指定是否使用P00~P60、P10~P17、P30~P33、P40~P47、P50~P57、P60~P67、P70~P77、P120或P140~P145的內(nèi)部上拉電阻。內(nèi)部上拉電阻可以以1位單元的方式用于那些已設(shè)置為輸入模式的引腳,并且這些引腳已通過(guò)PU0、PU1、PU

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論