義隆單片機(jī)EM78P153使用_第1頁(yè)
義隆單片機(jī)EM78P153使用_第2頁(yè)
義隆單片機(jī)EM78P153使用_第3頁(yè)
義隆單片機(jī)EM78P153使用_第4頁(yè)
義隆單片機(jī)EM78P153使用_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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)介

1、基于EM78P153S的應(yīng)用設(shè)計(jì)(V1.0)目 錄第一章 EM78P153S的初識(shí)11.1 EM78P152/3S特性11.2 EM78P152/3S引腳21.3 功能寄存器21.3.1 累加器與端口控制寄存器21.3.2中斷狀態(tài)寄存器與中斷使能寄存器31.3.3 操作寄存器41.3.4 特殊功能寄存器51.4 數(shù)據(jù)存儲(chǔ)器的配置71.5 休眠與喚醒71.6 分頻器81.7 定時(shí)器/計(jì)數(shù)器TCC9第二章 EM78系列單片機(jī)應(yīng)用軟件的編輯與仿真112.1 Simulator的下載與安裝112.2 Simulator的使用方法122.3 Simulator系統(tǒng)常用命令匯總142.4 Simulato

2、r仿真中的常見(jiàn)問(wèn)題16第三章 EM78系列單片機(jī)的匯編指令173.1 尋址方式173.2 偽指令183.3 指令速查表18第四章 EM78P153S應(yīng)用軟件設(shè)計(jì)204.1 外部中斷程序204.2 花樣燈程序224.2.1 設(shè)計(jì)需求224.2.2 軟件設(shè)計(jì)234.2.3 硬件設(shè)計(jì)374.2.4 元器件明細(xì)表38第五章 EM78系列單片機(jī)應(yīng)用程序的燒錄395.1 程序的轉(zhuǎn)換過(guò)程395.2 燒錄器與燒錄軟件395.3 燒錄步驟4146EM78P153S使用總結(jié)第一章 EM78P153S的初識(shí)EM78P152/3S是采用低功耗高速 CMOS工藝設(shè)計(jì)開(kāi)發(fā)的8位微控制器,它的內(nèi)部有一個(gè)1024×

3、13位一次性可編程只讀存儲(chǔ)器(OTP_ROM) ,可見(jiàn)1k的只讀存儲(chǔ)器(ROM)決定了應(yīng)用程序不能夠太多,否則應(yīng)用程序機(jī)器碼將無(wú)法燒錄到芯片中。硬件設(shè)計(jì)中,EM78P152/3S可以通過(guò)設(shè)置代碼選項(xiàng)寄存器使微處理器工作在內(nèi)部RC振蕩模式(IRC)下,此模式下采用上電復(fù)位模式而不需要外接時(shí)鐘電路;同時(shí)利用上電自動(dòng)復(fù)位而不需要外接復(fù)位電路,P63復(fù)位引腳可以直接作為輸入腳使用,充分提高了微處理器端口的利用率,這樣硬件應(yīng)用電路極為簡(jiǎn)化,節(jié)省了硬件成本。此外,EM78P153S單片機(jī)具有休眠模式,在一些不需要微處理器實(shí)時(shí)工作的應(yīng)用場(chǎng)合,可以節(jié)省用電量,特別是在使用電池供電時(shí),應(yīng)用此模式可以延長(zhǎng)電池的使

4、用時(shí)間;另外在休眠模式下避免了微處理器在運(yùn)行時(shí)受到來(lái)自外在雜波信號(hào)的干擾而導(dǎo)致程序跑飛。1.1 EM78P152/3S特性EM78P152/3S的性能如表1.1所示。表1.1 EM78P152/3S特性產(chǎn)品特性備注CPU配置 1K × 13位片內(nèi)ROM 32 × 8位片內(nèi)寄存器 5級(jí)堆棧用于子程序嵌套 小于1.5 mA 5V/4MHz 休眠模式下的典型值為1µA 。I/O 端口配置 2組雙向I/O 端口:P5,P6 11個(gè)I/O引腳 喚醒端口:P6 6個(gè)可編程下拉I/O 引腳 7個(gè)可編程上拉I/O 引腳 7個(gè)可編程漏極開(kāi)路I/O 引腳 外部中斷:P60 工作電壓范

5、圍 OTP 版本;工作電壓范圍:2.3V5.5V工作頻率范圍 IRC模式;振蕩模式:4MHz,8MHz,1MHz,455KHz外設(shè)配置 8位實(shí)時(shí)時(shí)鐘/ 計(jì)數(shù)器,可編程選擇其信號(hào)源、觸發(fā)邊沿,溢出產(chǎn)生中斷 三種中斷源 TCC 溢出中斷 輸入端口狀態(tài)改變中斷(可使微控制器從休眠模式喚醒) 外部中斷專有特性 省電模式 ( 休眠模式) 可選振蕩模式 封裝類型 14引腳DIP:EM78P153SP/S/J 14引腳SOP:EM78P153SN/S/J 10引腳SSOP:EM78P152SN/S/J 其它 具備一個(gè)保護(hù)寄存器以防止OTP_ROM中的程序代碼被竊取1.2 EM78P152/3S引腳EM78P

6、152/3S的引腳圖如圖1.1,引腳功能如表1.2所示。 圖1.1 EM78P152/3S引腳圖EM78P153SP/N/S/JEM78P152SP/N/S/J表1.2 EM78P152/3S引腳功能表引腳名稱序號(hào)類型功能備注P50P531、12、13、14I/O*通用的I/O引腳P60P62P64P672、3、56、8、9、10I/O*通用的I/O 引腳*引腳狀態(tài)發(fā)生改變時(shí),從休眠模式喚醒*可以設(shè)置為上拉P60/INT10I/O*下降沿觸發(fā)的外部中斷引腳P62/TCC8I/O*外部定時(shí)/ 計(jì)數(shù)器信號(hào)輸入引腳P63/RESET7I*若設(shè)置/RESET引腳并使其保持邏輯低,器件將產(chǎn)生復(fù)位*引腳狀

7、態(tài)改變時(shí),從休眠模式喚醒* P63 僅用作輸入引腳P64、P655、6I/O*外部時(shí)鐘信號(hào)輸入*晶體振蕩器的輸入引腳VDD4*電源正極VSS11*電源地1.3 功能寄存器期望微處理器按預(yù)期的性能工作,就需要對(duì)功能寄存器進(jìn)行有效的定義,這也是匯編編程初始化的基本任務(wù)。針對(duì)EM78P153單片機(jī),在匯編程序編寫(xiě)中,使用頻率相對(duì)較高的寄存器有累加器A、I/O端口控制寄存器IOC5IOC6、中斷狀態(tài)寄存器(RF)、中斷使能寄存器(IOCF)。1.3.1 累加器與端口控制寄存器示例1端口數(shù)值的傳送(讀取一個(gè)端口的值送給另一個(gè)端口)。源程序如下:;*;DIP輸入,LED輸出;*dip=5;定義dip輸入端

8、口的地址為5led=6;定義顯示端口的地址為6org 0x00;定義程序存放區(qū)的起始地址jmp main;跳轉(zhuǎn)到主程序org 0x50;聲明主程序開(kāi)始地址main:mov a,0x00;iow led ;設(shè)定顯示端口引腳全部輸出mov a,0xff;iow dip ;設(shè)定dip端口全部為輸入loopcoma dip;讀取dip狀態(tài)并取反送amov led,a;傳送到端口6上面顯示jmp loop;循環(huán)回去;* end;告知匯編器源程序結(jié)束1、累加器A累加器A用于內(nèi)部數(shù)據(jù)傳送或指令操作數(shù)暫存,它不可被尋址。寄存器之間的數(shù)據(jù)傳遞需要通過(guò)累加器A來(lái)過(guò)渡,即寄存器先傳送給A再由A傳送給另一個(gè)寄存器。2

9、、I/O 端口控制寄存器IOC5 IOC6I/O 端口控制寄存器IOC5 IOC6:為“1”時(shí),相關(guān)I/O 引腳置為高阻態(tài)(輸入);為“0”時(shí),相關(guān)I/O 引腳置為輸出。IOC5 寄存器僅低4 位可被有效定義,IOC5 和 IOC6 均為可讀/寫(xiě)寄存器。1.3.2中斷狀態(tài)寄存器與中斷使能寄存器示例2將寄存器0x20當(dāng)做計(jì)數(shù)器,每當(dāng)外部中斷產(chǎn)生,就自動(dòng)加1。源程序如下:;*;P60/INT外部中斷;將寄存器0x20當(dāng)做計(jì)數(shù)器,每當(dāng)外部中斷產(chǎn)生,就自動(dòng)加1;* ORG0x00 ;定義程序存放區(qū)的起始地址 CLR0x20 ;清除計(jì)數(shù)器 JMPEXT_PRO ;跳轉(zhuǎn)到主程序 ORG0x08 ;中斷的入

10、口地址INT_EXT:DISI ;使能中斷 CLR0x0F ;清除中斷狀態(tài)寄存器的標(biāo)志位 INC0x20 ;計(jì)數(shù)器加1 RETI ;返回主程序 ORG0x50 ;主程序的開(kāi)始地址EXT_PRO:CLR0x0F ;清除標(biāo)志位 MOVA,0x04 ;使能外部中斷信號(hào)產(chǎn)生 IOW0x0F ;把A的內(nèi)容送給0x0F MOVA,0x40 ;定義P60為外部中斷引腳 IOW0x0E ENI ;開(kāi)總中斷EXT_WAIT:NOP NOP JMPEXT_WAIT ;循環(huán)等待外部中斷;* END ;匯編器源程序結(jié)束1、中斷狀態(tài)寄存器(RF)中斷狀態(tài)寄存器(RF)地址0x0F,它反映三種中斷標(biāo)志情形,硬件自動(dòng)置1,

11、均需要通過(guò)軟件的方式清0,以清除中斷標(biāo)志。RF各位的含義如表1.3所示。表1.3 中斷狀態(tài)寄存器RF地址BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT00x0FEXIFICIFTCIF其中:Bit 2(EXIF) :外部中斷標(biāo)志位,/INT管腳輸入下降沿時(shí)置“1”,由軟件清“0”;Bit 1(ICIF):端口6輸入狀態(tài)改變標(biāo)志位,輸入狀態(tài)改變時(shí)置“1”,由軟件清“0”;Bit 0(TCIF):TCC 溢出中斷標(biāo)志位,TCC 溢出時(shí)置“1”,由軟件清“0”。2、中斷使能寄存器(IOCF)中斷使能寄存器(IOCF) 地址0x0F,與中斷狀態(tài)寄存器共用一個(gè)地址,它反映三種中斷的開(kāi)啟與

12、關(guān)閉,在程序運(yùn)行每個(gè)指令周期中,硬件自身判斷中斷使能位,當(dāng)中斷使能位為1時(shí)響應(yīng)相應(yīng)中斷,同時(shí)在中斷服務(wù)程序中務(wù)必清中斷狀態(tài)寄存器的相應(yīng)標(biāo)志位為0。IOCF各位的含義如表1.4所示。表1.4 中斷使能寄存器地址BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT00x0FEXIEICIETCIE功 能0:禁止EXIF中斷1:使能EXIF中斷0:禁止ICIF 中斷1:使能ICIF 中斷0:禁止TCIF中斷1:使能TCIF中斷其中:Bit 2 (EXIE)是外部中斷EXIF使能位;Bit 1 (ICIE)是端口6輸入狀態(tài)改變引發(fā)中斷ICIF使能位;Bit 0 (TCIE)是定時(shí)溢出中斷TC

13、IF使能位。1.3.3 操作寄存器1、間接尋址寄存器R0R0 并非實(shí)際存在的寄存器,它的主要功能是作為間接尋址指針,任何以R0為指針的指令,實(shí)際上是對(duì)RAM選擇寄存器R4所指向地址的數(shù)據(jù)內(nèi)容進(jìn)行操作。2、定時(shí)/計(jì)數(shù)器R1(1)TCC引腳的外部信號(hào)邊沿或內(nèi)部指令周期時(shí)鐘觸發(fā)( 由CONT寄存器的TE位設(shè)定) ,會(huì)使TCC寄存器加1;(2)像其它寄存器一樣可讀/寫(xiě);(3)通過(guò)復(fù)位PAB 位(CONT-3) 設(shè)定;(4)如果PAB bit (CONT-3) 被復(fù)位,預(yù)分頻器分配給TCC;(5)寫(xiě)入一個(gè)值到TCC寄存器后,TCC計(jì)數(shù)器的內(nèi)容會(huì)被刷新。3、程序計(jì)數(shù)器R2&堆棧復(fù)位時(shí),程序計(jì)數(shù)器R

14、2所有位均清0,它提供了程序指令代碼的片內(nèi)OTP_ROM地址。一個(gè)程序頁(yè)為1024字長(zhǎng)。在程序編譯調(diào)試時(shí),可以通過(guò)查看R2的值,判斷程序是否跳轉(zhuǎn)正常,或者通過(guò)對(duì)比某個(gè)程序的入口判斷是否進(jìn)入某個(gè)函數(shù)?!癑MP”指令直接加載程序計(jì)數(shù)器的低10位,因此,“JMP”允許PC跳轉(zhuǎn)到一個(gè)程序頁(yè)的任何位置?!癈ALL”指令首先加載PC的低10位,然后將PC+1推入堆棧,因此,子程序的入口地址可位于一個(gè)程序頁(yè)的任何位置。正常情況下,所有指令均是單指令周期(一個(gè)指令周期包含2個(gè)振蕩周期) ,但改變程序計(jì)數(shù)器(R2寄存器)內(nèi)容的指令,均為2個(gè)指令周期。EM78P153S有五級(jí)堆棧,這就決定了在程序編寫(xiě)的時(shí)候,子程

15、序的嵌套調(diào)用不能夠超過(guò)5次,否則編譯會(huì)出錯(cuò)。4、狀態(tài)寄存器R3(程序)狀態(tài)寄存器R3的地址為0x03,如表1.5所示。表1.5 狀態(tài)寄存器R3地址0x03BIT7RST0代表其它復(fù)位類型引發(fā)喚醒復(fù)位方式 ;1代表引腳狀態(tài)改變引發(fā)控制器從休眠模式喚醒方式BIT6GP1通用讀/ 寫(xiě)位BIT5GP0BIT4T時(shí)間溢出標(biāo)志位,執(zhí)行“SLEP”和“WDTC”指令或上電時(shí)置“1”,WDT溢出時(shí)復(fù)位為“0”BIT3P省電標(biāo)志位,上電或執(zhí)行"WDTC" 指令時(shí)置“1”,執(zhí)行“SLEP”指令時(shí)復(fù)位為“0”BIT2Z零標(biāo)志位,當(dāng)算術(shù)或邏輯運(yùn)算的結(jié)果為0時(shí)置“1”BIT1DC輔助進(jìn)位標(biāo)志位BIT

16、0C進(jìn)位標(biāo)志位在程序編譯調(diào)試時(shí),可以通過(guò)查看R3的值,了解程序的工作過(guò)程。5、RAM 選擇寄存器R4:I/O 寄存器,僅低4位可用。6、端口5寄存器R5:I/O 寄存器,引腳都為I/O口。7、端口6寄存器R6:I/O 寄存器,除P63僅用作輸入引腳外,其它引腳都為I/O口。8、R10R2F:所有這些寄存器均為8 位通用寄存器。表1.6 控制寄存器CONTBIT7BIT6INT中斷使能標(biāo)志位:0代表被DISI 或硬件中斷屏蔽;1代表被ENI/RETI指令使能BIT5TSTCC信號(hào)源選擇位:0代表內(nèi)部指令周期時(shí)鐘,P62為雙向I/O引腳;1代表TCC引腳的跳變信號(hào)BIT4TETCC信號(hào)邊沿選擇位:

17、0代表TCC引腳信號(hào)由低變到高時(shí)TCC計(jì)數(shù)器加1;1代表TCC引腳信號(hào)由高變到低時(shí)TCC計(jì)數(shù)器加1BIT3PAB預(yù)分頻器分配位:0代表TCC;1代表WDTBIT2PSR2TCC/WDT預(yù)分頻比選擇位PSR200001111BIT1PSR1PSR100110011PSR001010101BIT0PSR0TCC預(yù)分頻比1:21:41:81:161:321:641:1281:256WDT預(yù)分頻比1:11:21:41:81:161:321:641:1281.3.4 特殊功能寄存器1、控制寄存器CONT控制寄存器CONT各位定義如表1.6所示。2、下拉控制寄存器IOCB、漏極開(kāi)路控制寄存器IOCC、上拉

18、控制寄存器IOCD下拉控制寄存器IOCB各位定義如表1.7所示。表1.7 下拉控制寄存器IOCBBIT7BIT6/PD6P62 引腳下拉功能使能控制位;0代表使能內(nèi)部下拉功能 ;1代表禁止內(nèi)部下拉功能BIT5/PD5P61 引腳下拉功能使能控制位;0代表使能內(nèi)部下拉功能 ;1代表禁止內(nèi)部下拉功能BIT4/PD4P60 引腳下拉功能使能控制位;0代表使能內(nèi)部下拉功能 ;1代表禁止內(nèi)部下拉功能BIT3BIT2/PD2P52 引腳下拉功能使能控制位;0代表使能內(nèi)部下拉功能 ;1代表禁止內(nèi)部下拉功能BIT1/PD1P51 引腳下拉功能使能控制位;0代表使能內(nèi)部下拉功能 ;1代表禁止內(nèi)部下拉功能BIT0

19、/PD0P50 引腳下拉功能使能控制位;0代表使能內(nèi)部下拉功能 ;1代表禁止內(nèi)部下拉功能漏極開(kāi)路控制寄存器IOCC各位定義如表1.8所示。表1.8 漏極開(kāi)路控制寄存器IOCCBIT7OD7P67引腳漏極開(kāi)路功能使能控制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出BIT6OD6P66引腳漏極開(kāi)路功能使能控制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出BIT5OD5P65引腳漏極開(kāi)路功能使能控制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出BIT4OD4P64引腳漏極開(kāi)路功能使能控制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出BIT3BIT2OD2P62引腳漏極開(kāi)路功能使能控

20、制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出BIT1OD1P61引腳漏極開(kāi)路功能使能控制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出BIT0OD0P60引腳漏極開(kāi)路功能使能控制位;0代表禁止漏極開(kāi)路輸出;1代表使能漏極開(kāi)路輸出上拉控制寄存器IOCD各位定義如表1.9所示。表1.9 上拉控制寄存器IOCDBIT7/PH7P67引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能BIT6/PH6P66引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能BIT5/PH5P65引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能BIT

21、4/PH4P64引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能BIT3BIT2/PH2P62 引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能BIT1/PH1P61 引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能BIT0/PH0P60 引腳上拉功能使能控制位;0代表使能內(nèi)部上拉功能;1代表禁止內(nèi)部上拉功能通過(guò)操作IOCB、IOCC、IOCD寄存器可以設(shè)置端口的輸入輸出方式。當(dāng)某端口作為輸入口使用時(shí),只需要考慮是否上拉或者下拉;當(dāng)某端口作為輸出口使用時(shí),則考慮是否開(kāi)漏極輸出。端口采用內(nèi)部上拉,可以減少外部對(duì)引腳電平的干擾,如果

22、要實(shí)現(xiàn)檢測(cè)某端口是否為低電平的功能,則必須設(shè)置為內(nèi)部上拉,若該端口沒(méi)有上拉功能,則需要外部加上拉電阻。端口采用內(nèi)部下拉,理論上可以減少外部對(duì)引腳電平的干擾,但是實(shí)際的測(cè)試效果不明顯,和沒(méi)有設(shè)置下拉的效果一樣。所以如果端口設(shè)置為內(nèi)部下拉,該端口只可以用于檢測(cè)高電平,但是在沒(méi)有輸入的情況下,該引腳的電平并沒(méi)有變?yōu)?V以下,不能看作真正的低電平。端口采用內(nèi)部開(kāi)漏極輸出,適用于微處理器工作電壓與外圍器件工作電壓不相同的場(chǎng)合,輸出的高電平將達(dá)不到VDD電壓值。5、看門(mén)狗定時(shí)器控制寄存器IOCE看門(mén)狗定時(shí)器控制寄存器IOCE各位定義如表1.10所示。表1.10 看門(mén)狗定時(shí)器控制寄存器IOCE地址BIT7W

23、DTE看門(mén)狗定時(shí)器使能控制位:0代表禁止WDT;1代表使能WDTBIT6EIS定義P60(/INT)引腳功能的控制位:0定義P60為雙向I/O引腳;1定義為外部中斷輸入引腳/INT,在此情況下,P60 引腳的I/O 控制位(IOC6 的bit 0)必須置為“1”BIT501.4 數(shù)據(jù)存儲(chǔ)器的配置通過(guò)了解數(shù)據(jù)存儲(chǔ)器的分布,可以在仿真時(shí)直接了解各個(gè)寄存器的狀態(tài)以及程序運(yùn)行情況,數(shù)據(jù)存儲(chǔ)器的配置如表1.11所示。表1.11 數(shù)據(jù)存儲(chǔ)器配置地址R PAGE寄存器 IOC PAGE寄存器00R0 間接尋址寄存器保留 01R1定時(shí)/ 計(jì)數(shù)器CONT控制寄存器02R2程序計(jì)數(shù)器保留 03R3狀態(tài)寄存器保留

24、04R4RAM 選擇寄存器保留 05R5Port5IOC5 I/O 端口控制寄存器06R6Port6IOC6 I/O 端口控制寄存器07保留 保留 08保留 保留 09保留 保留 0A保留 保留 0B保留 IOCB下拉控制寄存器0C保留 IOCC漏極開(kāi)路控制寄存器0D保留 IOCD上拉控制寄存器0E保留 IOCE看門(mén)狗定時(shí)器控制寄存器0FRF中斷狀態(tài)寄存器IOCF中斷屏蔽寄存器102F通用寄存器 無(wú)1.5 休眠與喚醒EM78P152/3S微處理器可以在程序中執(zhí)行SLEP指令將進(jìn)入休眠模式,微處理器可以由以下事件喚醒:(1)/RESET引腳的外部復(fù)位信號(hào)輸入;(2)WDT溢出 ( 若使能); (

25、3)Port 6輸入狀態(tài)改變( 若使能);“/RESET引腳的外部復(fù)位信號(hào)輸入”以及“WDT溢出”都將使EM78P152/3S復(fù)位,可用R3寄存器的T和P標(biāo)志位來(lái)判斷復(fù)位源(喚醒源)。由于采用上電復(fù)位的方式,P63腳將作為輸入腳使用,而不用作復(fù)位腳,所以不存在復(fù)位腳;另外若WDT的使用頻率不高,可以設(shè)置為不使能(附:實(shí)際中可以不采取這兩種喚醒模式)。實(shí)際中更多考慮的則是“Port 6輸入狀態(tài)改變”的喚醒模式?!癙ort 6輸入狀態(tài)改變”將綜合考慮后續(xù)程序的執(zhí)行和全局中斷(“ENI”或 “DISI”指令的執(zhí)行情況) ,來(lái)決定控制器在喚醒后是否進(jìn)入中斷向量。如果在SLEP指令前執(zhí)行了ENI指令,喚

26、醒后將從地址為008H處開(kāi)始執(zhí)行。如果在SLEP指令前執(zhí)行了DISI 指令,喚醒后將從SLEP 指令的下一條指令開(kāi)始執(zhí)行。在SLEP指令之前Port6輸入狀態(tài)的改變中斷要使能,即中斷使能寄存器(IOCF)中ICIE位要置“1”,同時(shí)必須通過(guò)軟件編程禁止WDT,但代碼選項(xiàng)寄存器(Code Option)的WDT位仍要保持使能。代碼選項(xiàng)寄存器將在介紹燒錄程序的章節(jié)詳細(xì)介紹。休眠與管腳喚醒的使用步驟:(1)喚醒端口設(shè)置為輸入口;(2)使能喚醒端口內(nèi)部上拉;(3)設(shè)置WDT分頻比大于1:1,并禁止WDT;(4)清TCC;(5)讀PORT6狀態(tài),即下“MOV PORT6,PORT6”指令; (6)使能喚

27、醒功能設(shè)置ICIE 位為“1”;(7)如需要中斷則使能總中斷下“ENI ”指令; (8)下“SLEP”指令; (9)加三條“NOP”指令延時(shí); (10)下“WDTC”指令;(11)禁止WDT;(12)禁止管腳喚醒功能;在編程的時(shí)候,要注意執(zhí)行SLEP指令之前,要按照上述步驟編寫(xiě),在SLEP指令后面要加上三條“NOP”指令,這個(gè)不能夠缺少。在休眠模式下,若WDT已使能,WDT也將被清零,但WDT會(huì)繼續(xù)保持運(yùn)行狀態(tài)。在喚醒后,要間隔10ms左右就要執(zhí)行一次“WDTC”指令,防止WDT溢出引起復(fù)位。此處設(shè)置預(yù)分頻的比例要大于1:1也是為防止WDT溢出引起復(fù)位。1.6 分頻器看門(mén)狗定時(shí)器WDT與TCC

28、共用一個(gè)分頻器,但某一時(shí)刻分頻器只能夠分配給二者之一。與TCC配合使用時(shí),它是以一個(gè)“預(yù)”分頻器的角色出現(xiàn)在TCC的輸入信號(hào)路徑中的;而與WDT配合使用時(shí),它是以一個(gè)“后”分頻器的角色出現(xiàn)在WDT的輸出信號(hào)路徑中的。分頻器實(shí)際上就是一個(gè)8位的累加計(jì)數(shù)器,不過(guò)不能夠像TCC那樣通過(guò)內(nèi)部數(shù)據(jù)總線用軟件進(jìn)行讀寫(xiě)操作。分頻器的功能就是將進(jìn)入TCC的時(shí)鐘信號(hào)(或從WDT出來(lái)的序列脈沖信號(hào))頻率除以一個(gè)指定的倍數(shù),這個(gè)倍數(shù)就是分頻比,由CONT寄存器中的PSR2PSR0位決定。需要注意的是,當(dāng)分頻器分配給TCC時(shí),任何以TCC為目標(biāo)的寫(xiě)操作指令(如CLR TCC、MOV TCC,A)都會(huì)同時(shí)將分頻器清零。

29、同理當(dāng)分頻器分配給WDT時(shí),一條清WDT的指令(WDTC)將會(huì)同時(shí)將分頻器清零。這里說(shuō)的只是分頻器清零,而分配比和分配的對(duì)象不會(huì)改變。看門(mén)狗定時(shí)器的時(shí)鐘源是一個(gè)自由運(yùn)行的片內(nèi)RC振蕩器。即使在其它的振蕩器關(guān)閉的時(shí)候(也就是休眠模式下),WDT仍然保持運(yùn)行。在正常模式下或休眠模式下,WDT溢出(若WDT使能)將會(huì)使器件產(chǎn)生復(fù)位。在正常模式下,可以通過(guò)軟件編程為禁止或使能,不使用分頻器的時(shí)候,WDT的溢出周期約為18ms。所以通常從休眠模式下喚醒后要間隔一段時(shí)間就要加一條清WDT的指令,防止WDT溢出產(chǎn)生復(fù)位。1.7 定時(shí)器/計(jì)數(shù)器TCC與定時(shí)器/計(jì)數(shù)器TCC模塊相關(guān)的寄存器有4個(gè),分別為R1(T

30、CC寄存器)、RF(中斷狀態(tài)寄存器)、CONT(控制寄存器)、IOCF(中斷屏蔽寄存器)。TCC具有兩種工作模式,一種定時(shí)器模式,另一種是計(jì)數(shù)器模式。兩種模式之間的主要差異就是送入累加計(jì)數(shù)寄存器TCC的“觸發(fā)信號(hào)”的來(lái)源不同而已。TCC的工作模式由CONT(控制寄存器)的第5位TS決定。(1)工作模式1、定時(shí)器模式當(dāng)TS為0時(shí),TCC模塊工作在定時(shí)器模式,觸發(fā)信號(hào)源取自于內(nèi)部的指令周期信號(hào)。一旦往計(jì)數(shù)器中寫(xiě)入初始值后,TCC便重新啟動(dòng)累加計(jì)數(shù)。在沒(méi)有使用分頻器的情況下,TCC會(huì)在每個(gè)指令周期信號(hào)到來(lái)時(shí)自動(dòng)加1。在配置了分頻器的情況下,指令周期信號(hào)經(jīng)過(guò)分頻器分頻后送給TCC,使TCC自動(dòng)加1。2

31、、計(jì)數(shù)器模式當(dāng)TS為1時(shí),TCC模塊工作在計(jì)數(shù)器模式,觸發(fā)信號(hào)源取自芯片外部引腳TCC上面的輸入信號(hào)。可以通過(guò)CONT(控制寄存器)的第4位TE設(shè)定外部時(shí)鐘信號(hào)的觸發(fā)邊沿,TE=1時(shí)下降沿觸發(fā);TE=0時(shí)上升沿觸發(fā)。處于計(jì)數(shù)器模式下,一旦往計(jì)數(shù)寄存器中寫(xiě)入初值后,TCC便立即開(kāi)始新一輪的累加計(jì)數(shù)。值得注意的一點(diǎn):在一些沒(méi)有使用到TCC的應(yīng)用項(xiàng)目中,如果TCC進(jìn)入定時(shí)器模式,只要單片機(jī)處于非睡眠狀態(tài),內(nèi)部時(shí)鐘就不會(huì)停止,以指令周期為觸發(fā)信號(hào)的TCC就不停的自動(dòng)累加。這不僅增加單片機(jī)額外的電能消耗,而且會(huì)個(gè)給片內(nèi)其他數(shù)字電路帶來(lái)不必要的干擾。此時(shí)可以將CONT(控制寄存器)的TS位設(shè)定為“1”,使

32、TCC工作在計(jì)數(shù)器模式;同時(shí)將外部觸發(fā)輸入引腳TCC固定接到VDD或VSS,這樣可以使TCC永遠(yuǎn)處于靜止?fàn)顟B(tài)。(2)TCC的應(yīng)用使用步驟:1、給TCC寄存器賦初值;2、設(shè)置CONT寄存器(選擇時(shí)鐘源并設(shè)置預(yù)分頻比,當(dāng)預(yù)分頻比分配給WDT時(shí)TCC預(yù)分頻比為1:1);3、若需要執(zhí)行中斷功能,需設(shè)置IOCF寄存器中的TCIE位為“1”,并執(zhí)行“ENI”指令。注意:每次計(jì)時(shí)溢出需給TCC賦初值(初值為0除外)。計(jì)算公式T=(1/FOSC)*Prescaler*(256-TCCcnt)*2(CLK=2)T=(1/FOSC)*Prescaler*(256-TCCcnt)*4(CLK=4)FOSC:TCC時(shí)

33、鐘源頻率;Prescaler:TCC預(yù)分頻比;TCCcnt:TCC(R1)初始值。例如:FOSC=4MHz;Prescaler=256;TCCcnt=0;CLK=2時(shí),計(jì)算定時(shí)時(shí)間TT=(1/4MHz)*256*(256-0)*2(CLK=2)=32.768ms第二章 EM78系列單片機(jī)應(yīng)用軟件的編輯與仿真EMC Simulator是一款開(kāi)發(fā)軟件,也是一種非實(shí)時(shí)性、非在線的仿真工具,在某種程度上可以代替價(jià)格較貴的硬件仿真器,它屬于軟件模擬器的范疇,以純軟件的方式模擬仿真EM78P153、EM78P156E、EEM78P447S這三種型號(hào)的單片機(jī)。通過(guò)軟件的手段來(lái)模擬單片機(jī)的指令執(zhí)行過(guò)程和內(nèi)部硬

34、件資源的操作方法,從而實(shí)現(xiàn)對(duì)用戶源程序的模擬運(yùn)行、功能調(diào)試和(深層次)邏輯錯(cuò)誤查找。EMC Simulator的局限性:(1)不能夠模擬單片機(jī)的片外電路;(2)執(zhí)行速度慢,只適合調(diào)試實(shí)時(shí)性要求不高的程序。2.1 Simulator的下載與安裝用戶可以通過(guò)訪問(wèn)這個(gè)網(wǎng)站 Simulator仿真軟件,圖2.1所示的是打開(kāi)網(wǎng)站后的頁(yè)面。圖2.1 網(wǎng)站頁(yè)面在技術(shù)支持的標(biāo)題下面就有一個(gè)Simulator(義隆windows模擬仿真軟件)的連接,點(diǎn)擊之后便自動(dòng)下載。在下載完之后,可以在下載的文件中,找“Setup.exe”的可執(zhí)行文件。雙擊該文件,即可以開(kāi)始安裝了。安裝的位置可以自由設(shè)置,然后一直點(diǎn)擊Nex

35、t,直到完成安裝。可以看到桌面上將會(huì)多了一個(gè)新的圖標(biāo),雙擊既可以運(yùn)行此軟件。2.2 Simulator的使用方法通過(guò)模擬仿真第一章中示例2的程序,來(lái)介紹如何使用EMC Simulator軟件。(1)如何建立一個(gè)新項(xiàng)目打開(kāi)軟件后會(huì)出現(xiàn)如圖2.2所示的對(duì)話框,在下拉選項(xiàng)中可以設(shè)置要模擬的芯片型號(hào),選擇EM78P153點(diǎn)擊OK,便進(jìn)入了軟件的界面。圖2.3 新建工程窗口圖2.2 型號(hào)選擇對(duì)話框圖2.4 新建工程文件對(duì)話框創(chuàng)建一個(gè)新項(xiàng)目的方法有兩種:方法一:選擇菜單命令:Project>New.,會(huì)出現(xiàn)一個(gè)如圖2.3所示的對(duì)話框,在其“Project Name”內(nèi)輸入自己的項(xiàng)目文件名(比如在此定

36、義為jf002),系統(tǒng)會(huì)自動(dòng)追加一個(gè)擴(kuò)展名.prj。方法二:選擇菜單命令File>New.,會(huì)出現(xiàn)一個(gè)如圖2.4所示的對(duì)話框,在其中選擇“Project”標(biāo)簽,并且在其“Project Name:”條內(nèi)輸入自己的項(xiàng)目名稱。(2)如何在項(xiàng)目中添加文件圖2.6 寄存器和I/O窗口選擇菜單命令File>New.,出現(xiàn)一個(gè)如圖2.4所示的對(duì)話框。在“File”標(biāo)簽下,其“File Name”條內(nèi)輸入自己的源程序文件名,左側(cè)窗口內(nèi)三個(gè)選項(xiàng)分別對(duì)應(yīng)三種不同拓展名的文件:源程序文件(.dt或.asm)、頭文件(.h)、和文本文件(.txt)。點(diǎn)擊“OK”后,會(huì)出現(xiàn)如圖2.5所示的空白源文件編輯窗

37、口。在其中可以編輯源程序,也可以直接將已經(jīng)寫(xiě)好的程序粘貼進(jìn)來(lái)。圖2.5 源程序編輯窗口對(duì)于文本編輯的幾點(diǎn)說(shuō)明:1、支持漢字輸入和編輯功能2、標(biāo)點(diǎn)符號(hào)的輸入要在半角的西文方式下輸入。3、通過(guò)選擇菜單命令Option>Font.來(lái)自由設(shè)置字體字號(hào)。(3)如何調(diào)試程序在調(diào)試程序之前,要進(jìn)行程序的編譯工作,選擇菜單命令Project>Rebuild All,此后在輸出信息窗口可以看到匯編和鏈接的結(jié)果。沒(méi)有錯(cuò)誤,沒(méi)有警告,沒(méi)有提示信息,編譯完成之后,進(jìn)行復(fù)位操作,復(fù)位之后的寄存器狀態(tài)如圖2.6所示。圖2.7 調(diào)試示意圖1復(fù)位操作的具體方法有三種:(1)選擇菜單命令Debug>Reset

38、(2)按一次鍵盤(pán)上F6鍵;(3)點(diǎn)擊工具欄上面的圖標(biāo)。軟件模擬器提供了多種運(yùn)行程序的方式或調(diào)試程序的手段,比較常用的有以下幾種:設(shè)置寄存器觀察窗、復(fù)位、連續(xù)運(yùn)行、單步運(yùn)行、自動(dòng)單步運(yùn)行和連續(xù)單步運(yùn)行、設(shè)置斷點(diǎn)運(yùn)行、自由運(yùn)行、運(yùn)行到光標(biāo)、從指定行開(kāi)始運(yùn)行等。其具體的用法和Keil中的調(diào)試類似。此實(shí)例中采用單步運(yùn)行的方式來(lái)調(diào)試程序,這樣可以很直觀的看到每條語(yǔ)句執(zhí)行完后寄存器的改變情況(每次寄存器的數(shù)值有修改都會(huì)將改動(dòng)的地方變?yōu)榧t色,以示區(qū)別)。通過(guò)單步操作,程序?qū)?huì)在EXI_WAIT子程序中循序執(zhí)行,等待外部中斷信號(hào)。如圖2.7所示。此時(shí)通過(guò)修改寄存器的值,來(lái)模擬外部中斷信號(hào)的產(chǎn)生,進(jìn)而觀察程序的

39、運(yùn)行情況。圖2.8 調(diào)試示意圖2圖2.9 調(diào)試示意圖3具體方法:將光標(biāo)停留在P6端口的第1位上面,然后單擊鼠標(biāo)左鍵,此時(shí)第1位和第2位之間將會(huì)出現(xiàn)閃爍的光標(biāo)。通過(guò)輸入0來(lái)模擬外部中斷的下降沿信號(hào)。每修改一個(gè)數(shù)字,系統(tǒng)均會(huì)立即更改“軟件模擬器”的緩沖存儲(chǔ)器。人工修改后的值自動(dòng)以“藍(lán)色”顯示,以示區(qū)別。操作的示意圖如圖2.8。此時(shí)點(diǎn)擊單步運(yùn)行一次,就會(huì)看到PC指針已經(jīng)指向了地址0x08,這是中斷的入口地址,操作示意圖如圖2.9。2.3 Simulator系統(tǒng)常用命令匯總(1)自定義寄存器變量的視窗Watch圖2.10 添加變量到觀察窗通過(guò)選擇View菜單命令,選擇Watch選項(xiàng),可以打開(kāi)觀察窗(W

40、atch Window)。剛打開(kāi)時(shí)是一個(gè)空窗口,可以添加所需觀察的寄存器變量。操作步驟如下:利用菜單命令Project>Dump to ICE ,將目標(biāo)文件裝載到模擬器的虛擬緩沖器內(nèi)。利用菜單命令Debug>Add label to watch,即可打開(kāi)一個(gè)如圖2.10所示的對(duì)話框,在“File”窗口顯示源程序及其存放路徑。在“Label”窗口中,選中其中的變量,然后點(diǎn)擊“Add to watch”按鈕,此時(shí)在該變量前面就會(huì)出現(xiàn)一個(gè)“*”,表明該變量已經(jīng)比添加到了Watch窗口。(2)Get 1FFF Code Space(獲取程序存儲(chǔ)器占用信息)圖2.12 寄存器顯示格式對(duì)話框圖

41、2.11 輸出視窗獲取關(guān)于程序存儲(chǔ)器各個(gè)頁(yè)面空閑情況的統(tǒng)計(jì)信息,并且顯示在輸出信息窗口中。例如在調(diào)試示例2的集成模擬環(huán)境中,在Tool下拉菜單命令中點(diǎn)擊此條內(nèi)容,則會(huì)顯示如下如圖2.11里面的內(nèi)容。該內(nèi)容表示程序存儲(chǔ)的位置以及沒(méi)有使用的地址范圍,其中Start與End表示沒(méi)有使用的起始地址與結(jié)束地址,Size表示是沒(méi)有使用的地址的范圍。需要說(shuō)明的是,這里面說(shuō)顯示的剩余空間是指在0x50前面的地址,而在其后面的地址是沒(méi)有給出的。在0x50后面的地址是存放主程序的。(3)Register view(寄存器視圖)設(shè)定部分常用寄存器的顯示格式,是以十六進(jìn)制還是以二進(jìn)制格式顯示。方法是在Option選擇

42、命令中選擇其選項(xiàng)。在彈出的對(duì)話框中,把打算二進(jìn)制顯示的寄存器進(jìn)行勾選,沒(méi)有勾選的默認(rèn)為以十六進(jìn)制顯示,如圖2.12所示。(4)Debug(調(diào)試類操作命令)在Debug下拉菜單如圖2.13所示,從上到下依次代表的含義是:1、Go:連續(xù)運(yùn)行2、Reset:系統(tǒng)復(fù)位圖2.13 調(diào)試類操作命令3、Step into:?jiǎn)尾竭M(jìn)入4、Step over :?jiǎn)尾娇缭?、Go to Cursor:運(yùn)行到光標(biāo)處6、Animation:自動(dòng)單步運(yùn)行7、Run from selected line:選定行作為運(yùn)行的起點(diǎn)8、Toggle Brakpoint :設(shè)置、刪除斷點(diǎn)9、Show all breakpint:顯示

43、所有的斷點(diǎn)10、Add label to watch:添加標(biāo)號(hào)到觀察窗11、Reset and Free run:復(fù)位和自由運(yùn)行12、Reset and Go:復(fù)位和連續(xù)運(yùn)行13、Clear all breakpoint :清除所有的斷點(diǎn)14、Clear watch:清除觀察窗15、Trace back:反向追蹤16、Track forth:正向追蹤2.4 Simulator仿真中的常見(jiàn)問(wèn)題1、仿真時(shí)候出現(xiàn)執(zhí)行完一些語(yǔ)句后,但相應(yīng)的寄存器并沒(méi)有修改?【方法】一般情況下是軟件自身問(wèn)題,需要關(guān)閉軟件后再重新打開(kāi)仿真。2、在程序中設(shè)置端口的值,執(zhí)行完相關(guān)語(yǔ)句后,端口的值并沒(méi)有改變?【方法】需要明確的

44、是先設(shè)置的端口值還是先設(shè)置的端口輸入輸出狀態(tài),如果是先設(shè)置的是端口值,那么要等設(shè)置完端口的輸入輸出狀態(tài)后,才會(huì)在寄存器窗口中顯示出來(lái)。一般先設(shè)置端口的輸入輸出狀態(tài)再設(shè)置端口值,那么就不會(huì)出現(xiàn)這種情況了。3、編譯的時(shí)候提示找不到頭文件?【方法】把頭文件放到在工程文件的目錄下面,再次編譯既可以。4、編譯時(shí)出現(xiàn)地址超過(guò)多少范圍的提示?【方法】對(duì)于EM78P153地址最大可以到1FFH,而EM78P153S則可以到3FFH。仿真軟件只能夠仿真EM78P153,所以如果程序的存儲(chǔ)地址超過(guò)了1FFH,就會(huì)出現(xiàn)錯(cuò)誤提示。如果需要仿真EM78P153S的程序,而且程序的存儲(chǔ)地址已經(jīng)超過(guò)了1FFH,那么只能夠通

45、過(guò)硬件仿真器來(lái)實(shí)現(xiàn)了。5、頭文件的調(diào)用由于仿真軟件只能夠仿真型號(hào)為EM78P153的芯片,而不能夠仿真EM78P153S芯片,所以仿真時(shí)在調(diào)用頭文件的時(shí)候,要注意調(diào)用的是EM78P153.INC頭文件,而不是EM78P153S.INC頭文件。這兩個(gè)頭文件只是里面的定義方式有不同,在程序調(diào)用中,不存在差別。當(dāng)要燒錄EM78P153S芯片程序的時(shí)候,只要在另一款義隆單片機(jī)的編譯軟件(Wice Plus)中,新建一個(gè)工程并且將之前仿真時(shí)候建立的以“.DT”為后綴的文件添加進(jìn)來(lái),然后將頭文件改為EM78P153S.INC,編譯通過(guò)之后就可以通過(guò)燒錄軟件給芯片燒錄程序了,具體的過(guò)程燒錄程序章節(jié)介紹。6、

46、在調(diào)試程序時(shí),若采取程序延時(shí)且延時(shí)時(shí)間比較長(zhǎng)就會(huì)出現(xiàn)程序亂跑的情形?【方法】將延時(shí)函數(shù)循環(huán)變量的值設(shè)小些,再次調(diào)試,如果不行,就需要設(shè)置更小。一般調(diào)試的時(shí)候是設(shè)置為1,便于程序的調(diào)試。出現(xiàn)這種問(wèn)題的原因可能是軟件自身的缺陷所致。所以,一旦程序中需要延時(shí)功能,盡可能采取硬件定時(shí)手段(定時(shí)器)。第三章 EM78系列單片機(jī)的匯編指令EM78系列單片機(jī)共有指令47條(EM78P447、EM78P 451、EM78P 458各有48條),指令碼寬度為13位。一條指令的指令碼一般可以分成兩部分:第一部分為操作碼,代表指令的功能;第二部分為操作數(shù),表示指令操作的對(duì)象,或運(yùn)算時(shí)所需要的參數(shù)。3.1 尋址方式指

47、令是CPU執(zhí)行特殊運(yùn)算的代碼,它是程序語(yǔ)句的核心,一般在程序語(yǔ)句中還包含有操作數(shù),對(duì)操作數(shù)的操作就需要明確操作數(shù)的屬性,即究竟是源操作數(shù)還是目的操作數(shù)?究竟是參與運(yùn)算的數(shù)據(jù)還是數(shù)據(jù)所在的存放地址?總體而言就是需要對(duì)操作數(shù)尋址。尋址就是尋找操作數(shù)的存放地址,尋址方式就是尋找操作數(shù)或者操作數(shù)所在地址的方法或形式。根據(jù)操作數(shù)來(lái)源的不同,有5種尋址方式。(1)立即數(shù)尋址:操作數(shù)為立即數(shù),直接從指令中獲取。例 MOV A,0x16;將常數(shù)0x16送給寄存器A(2)直接尋址:若是要存取寄存器的內(nèi)容,需要通過(guò)累加器A來(lái)過(guò)渡。例 將寄存器0x20的內(nèi)容,復(fù)制到寄存器0x21中。MOVA, 0x20MOV0x2

48、1, A(3)間接尋址:通過(guò)寄存器R4來(lái)實(shí)現(xiàn),R4的bit0-5是用來(lái)選擇寄存器(地址:00-06,0F-3F)若是使用者所需要存取的寄存器,有位址相鄰的特性,使用間接尋址是很方便的。例 寫(xiě)一個(gè)程序,將寄存器0x20 0x3F的值都填0。MOVA, 0x20 ;設(shè)定A=0x20MOV0x04, A ;設(shè)定間接尋址寄存器0x04AGAIN:CLR0 ;清除0x04所指的寄存器INC 0x04 ;遞增間接尋址寄存器0x04MOVA, 0x04 ;將0x04寄存器的值送AXOR A, 0x3F ;比較間接尋址的地址是否到0x3fJBS 0x03, 2 ;若到了則結(jié)束JMPAGAIN ;否則繼續(xù)循環(huán)執(zhí)

49、行END(4)隱含尋址:采用隱含尋址方式的指令,在指令碼中不必指明存放著操作數(shù)的存儲(chǔ)地址。如CONTR指令,它將控制寄存器CONT的內(nèi)容讀取之后,送累加器A中,CONT寄存器沒(méi)有統(tǒng)一的地址編碼,這個(gè)與眾不同。(5)位尋址:位尋址是對(duì)寄存器中的任一位(bit)進(jìn)行操作。例 BS0x12,2;將寄存器0x12的第2位置為“1”。3.2 偽指令偽指令指出了要求匯編編譯器在翻譯期間執(zhí)行的動(dòng)作,偽指令如表3.1所示。表3.1 偽指令介紹符 號(hào)說(shuō) 明例 子ORG <表達(dá)式>設(shè)定后續(xù)代碼的起始地址 ORG 0x010 ;定義地址從010H開(kāi)始 MOV A ,0xFF ;此條指令放置在010H地址

50、 MOV P6 ,A ;此條指令放置在011H地址 <標(biāo)示符> EQU <表達(dá)式> 符號(hào)或常數(shù)定義TCC = 0x01 TCC EQU 0x01 <標(biāo)示符> = <表達(dá)式> EOP 宣告本頁(yè)結(jié)束(一個(gè)程序頁(yè)為1K)ORG 0x000 NOP EOP ;宣告上頁(yè)結(jié)束 NOP ;此條指令放置在400H(下頁(yè)起始地址) END程序結(jié)束END之后的程序不被編譯ORG 0x10 MOV 0x20,A END MOV A ,0x11;此條指令將不被編譯INCLUDE <文件名>插入別的檔案讓程式更為簡(jiǎn)潔INCLUDE“C:EMCTESTTEST153S.INC”<名稱> MACRO 表達(dá)式 ENDM巨集定義指令帶的參數(shù)不能大于9個(gè)BANK0 MACROBC 0x04,6ENDM3.3 指令速查表表3.2中將EM7系列的單片機(jī)的指令歸納并且分類。其中符號(hào)“R”代表寄存器(包括操作寄存器和通用寄存器),符

溫馨提示

  • 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)論