機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
第二章 EM78系列單片機硬件結(jié)構(gòu)( 2.1 - 2.5 )
第二章 EM78系列單片機硬件結(jié)構(gòu)( 2.1 - 2.5 )
 更新時間:2008-7-26 20:10:49  點擊數(shù):2
【字體: 字體顏色

第二章 EM78系列單片機硬件結(jié)構(gòu)

EM78系列單片機是采用低功耗、高速CMOS工藝制造的8位單片機,本章將以EM78X56(包括EM78156、EM78256、EM78456)為例來講述EM78系列單片機的內(nèi)部結(jié)構(gòu)、存貯器、中斷、I/O、看門狗、振蕩器和電壓檢測器等特點。

2.1.       主要功能特點

·采用8位數(shù)據(jù)總線和13位指令總線獨立分離的Harvard結(jié)構(gòu)設(shè)計。
·采用RISC指令集,共有57條單字節(jié)指令,其中99%為單周期指令(對程序計數(shù)器PC指針     進行寫操作除外)。
·1K~4KX13的程序存貯器(有OTP和掩膜二個版本)。
·48個通用數(shù)據(jù)寄存器可直接尋址使用。
·14個特殊功能寄存器。
·具有一個結(jié)構(gòu)選擇寄存器用于設(shè)置振蕩器的工作方式等。
·具有五級堆棧令程序嵌套更自由。
·兩個雙向三態(tài)I/O口,12個I/O線,可分別設(shè)置為上拉、下拉或集電極開路等。
·具有三個硬件中斷和一個軟件中斷。
·兩種工作模式:正常工作模式    2mA/5V
                休眠模式        1μA/5V(可由I/O喚醒)
·具有R-OPTION功能,即用電阻的上拉、下拉來選擇內(nèi)部程序的執(zhí)行。
·一個帶8位預(yù)置器的8位定時/計數(shù)器,一個看門狗定時器(WDT)。
·采用先進的加密方法保證用戶代碼不被讀出。
·工作電壓:2.5~5.5V    工作頻率DC~36MHZ、工作溫度0℃~70℃。

2.2.       EM78X56型號分類、命名方法及管腳功能說明

2.2.1.      型號分類(表2.1):

型  號
ROM(Bit)
RAM(Byte)
I/O
最短指令周期
EM78156
1KX13
56
12
111ns
EM78256
2KX13
56
12
111ns
EM78456
4KX13
56
12
111ns

2.2.2.      命名方法:

         EM  78  P 156  A  P
 

封裝形式P-DIP    M-SOIC   S-SSOP
內(nèi)置電壓檢測功能  A-有     B-無
類型名
P:OTP; 沒有“P”為MASK版本
單片機系列號
EMC公司字頭
                                              

                                                                                           

2.2.3.      EM78X56管腳功能描述

圖2.1  EM78156管腳圖(EM78256和EM78456管腳同上)
 
管腳名稱
I/O
功        能
PIC16C54/56
對應(yīng)管腳名
P50~P53
 I/0
P50~P53為雙向I/O口,P50、P51同時為R-Option功能腳,P50~52能通過軟件設(shè)置為下拉
RAO~RA3
P60~P67
 I/O
P60~P67為雙向I/O口,可通過軟件設(shè)置為上拉或開路輸出;另外,P60~63可設(shè)為下拉
RBO~RB7

INT0
 I/O
外部中斷輸入腳,下降沿觸發(fā)中斷(P60)
OSCI
 I
XTAL型:晶體振蕩器或外部時鐘輸入腳    R C型  :RC振蕩器輸入腳
OSC1
OSCO
 I/O
XTAL型:晶體振蕩器輸出腳或外部時鐘輸入腳。
RC型:輸出一個指令周期的時鐘信號
OSC2
RESET
 I
施密特觸發(fā)輸入腳,當該腳保持低電平時,單片機復(fù)位
MCLR
TCC
 I
實時時鐘/計數(shù)器輸入腳,施密特觸發(fā),當該腳不用時,必須接地或VCC
RTCC
VDD
——
電源
VDD
VSS
——
VSS
表2.2  EM78X56管腳功能描述

2.3.       EM78內(nèi)部結(jié)構(gòu)框圖

    EM78X56在片內(nèi)集成了一個8位算術(shù)運算單元ALU和工作寄存器ACC、1K~4KROM、56個RAM、12個I/O口,8位預(yù)置器(Prescaler)及8位計數(shù)器(TCC)、振蕩器、看門狗、五級堆棧、中斷控制器、指令寄存器、譯碼器和其它一些寄存器等。內(nèi)部框圖如圖2.2所示:
    EM78系列單片機采用8位數(shù)據(jù)/控制總線和13位指令總線獨立分離的Harvard結(jié)構(gòu),流水線指令,即當一條指令在執(zhí)行中,下一條指令已被從ROM取出放在指令寄存器等待執(zhí)行,如此EM78系列幾乎全部為單周期指令,執(zhí)行速度更快。
EM78系列數(shù)據(jù)存貯器均可視為寄存器來尋址編程,分工作寄存器和特殊功能寄存器二大類,2.5節(jié)將詳細講述寄存器的使用方法。

圖2.2  EM78X56內(nèi)部功能框圖

2.4.       程序存儲器和堆棧

2.4.1.      程序存儲器

EM78X56內(nèi)部程序存儲器和堆棧示意圖如下:


圖2.3  程序存儲器結(jié)構(gòu)框圖
 
PC指針(寄存器R2)和堆棧的位數(shù)依照型號EM78156、EM78256、EM78456分別是10位、11位、12位,即尋地空間分別為1K、2K和4K,一個程序頁面為1K。頁面選擇通過設(shè)定狀態(tài)寄存器R3的Bit6(PS1). Bit5 (PS0)來完成,內(nèi)容下表(表2.3)所示:
 
PS1(R3.6)
PSO(R3.5)
程序頁面地址
0
0
0頁[000-3FF]EM78X56沒有PS1、PS0
0
1
1頁[400-7FF]EM78256/456
1
1
2頁[800-BFF]EM78256/456
1
1
3頁[C00-FFF]EM78456
      ·對EM78156μPS1、PS0位為通用讀/寫位
      ·對EM78256μPS1為通用讀/寫位
    EM78X56可在同一頁面內(nèi)直接跳轉(zhuǎn)(JMP)和調(diào)用子程序(CALL),即JMP時裝入目標地址至PC的低10位,CALL時裝入目標地址至PC的低10位,且PC+1壓棧,調(diào)用同1K頁面內(nèi)的任何程序。
    在EM78256/EM78456中,當需要跳轉(zhuǎn)或調(diào)用不同頁面的子程序時,則須在調(diào)用前將修改R3的PS0/PS1、PS0,執(zhí)行JMP或CALL后將狀態(tài)寄存器R3的PS0/PS1、PS0載入PC的A10/A11、A10。
    有一情況需特別注意:對PC(R2)進行直接操作指令如“MOV R2、A”、“ADD R2、A”、“BC R2,0”都將導(dǎo)致PC之第9及第10位(A9、A8)被清零,因此此類情況產(chǎn)生的任何跳轉(zhuǎn)都限定在同一頁面的前256個地址(查表指令的使用均在此限制內(nèi))

2.4.2.      堆棧

 EM78X56有五級堆棧,遵循后入先出的原則實現(xiàn)程序多至五級嵌套調(diào)用.通常堆棧使用如下:
    當CALL和中斷響應(yīng)時PC+1壓棧;
    當子程序或中斷返回,執(zhí)行RET、RETL(帶參數(shù)返回)、RETI(中斷返回),將棧頂值(棧1)彈回程序計數(shù)器PC、同時將堆棧2的值拷貝到堆棧1,堆棧3的值拷貝到堆棧2,以此類推。
    要注意的是RET、RETL、RETI指令并沒有改變R3中的PS0~PS1位便返回到原來調(diào)用程序的頁面,所以當從一次跨頁的子程序調(diào)用返回時,一定要用指令恢復(fù)R3中原先的PS0、PS1值。

2.5.       數(shù)據(jù)存儲器RAM結(jié)構(gòu)

     EM78X56的數(shù)據(jù)存儲器分工作寄存器、特殊功能寄存器和一般通用寄存器三大類,如圖2.4所示:

2.5.1.      工作寄存器

1.R0間接尋址寄存器
RO并非一個實際工作的寄存器,只作為間接尋址用。任何對RO進行操作的指令,實際上是存取由RAM選擇寄存器R4所指定的RAM內(nèi)容。
2.R1(TCC)
此寄存器為8位定時/計數(shù)器,可由程序進行讀/寫操作。它用于對外加在TCC腳上的脈沖進行計數(shù),或?qū)?nèi)部時鐘計數(shù)。
3.R2(程序計數(shù)器PC)和堆棧
·在復(fù)位情況下,R2被清零,地址指向OOOH
·對R2進行寫操作的指令一定需要二個指令周期,其它有關(guān)R2和堆棧的內(nèi)容§2.4中所述.
 
 

圖2.4  RAM結(jié)構(gòu)圖
 
4.R3狀態(tài)寄存器(STATUS)
如下表所示,R3包括ALU運算標志、頁面標志、復(fù)位狀態(tài)等
7
6
5
4
3
2
1
0
GP
PS1
PS0
T
P
Z
DC
C
 
Bit0(C) :進位標志
Bit1(DC):輔助進位標志
Bit2(Z) :零標志,當一算術(shù)或邏輯運算結(jié)果為“0”時,則置該位為“1”
Bit3(P) :掉電模式位。當系統(tǒng)上電時或執(zhí)行“WDTC”指令后,置該位為“1”;當執(zhí)行“SLEP”指令后,該位被置“0”。
Bit4(T) :超時位,當系統(tǒng)上電或執(zhí)行“SLEP”和“WDTC”指令時,置位為“1”;當WDT溢出時置位為“0”
Bit5(PSO)頁面選擇低位
Bit6(PS1)頁面選擇高位
通過P、T位來判斷復(fù)位產(chǎn)生的原因如表2.4所示:
 
T    P
復(fù)位產(chǎn)生原因
O    O
WDT溢出喚醒SLEEP
O   *P
工作模式時WDT溢出
1    0
腳位變化喚醒SLEEP
1    1
系統(tǒng)上電
*P  *P
工作模式復(fù)位
      
 影響T/P的事件如下表2.5所示:
文件
T
P
WDTC指令
1
1
WDTC溢出
0
*P
SLEP指令
1
0
腳位變化喚醒
1
1
            *P:指復(fù)位前的值
     GP:一般用途的讀/寫位
5.R4  RAM選擇寄存器(RSR)
在間接尋址模式里,Bit0-5用來選擇寄存器(地址:00-06、OF-3F)
例如  MOV   A,@0x10
      MOV   R4,A
      MOV   A, @0x11
      MOV   R0, A     ; R10=11H
其結(jié)果是將16進制的“11”值送入由R4指的“10”單元中。
·Bit6~7未使用
·未作間接尋址時,R4可作6位寬度的可讀/寫通用寄存器.
6. R5~R6(口5~口6):分別為口5、口6的輸入/輸出寄存器,EM78將I/O映射為寄存器來操作,R6為8位,R5僅有低4位有效。
7.RF中斷狀態(tài)寄存器
7
6
5
4
3
2
1
0
EXIF
ICIF
TCIF
·“1”表明有中斷請求,“0”表明沒有中斷請求
Bit0 (TCIF):TCC 計數(shù)器1溢出中斷標志位;當TCC計數(shù)器1溢出時置“1”,可由軟件清零。
Bit1 (ICIF):口6輸入變化中斷標志位,當口6輸入變化時置“1”,可由軟件清零。
Bit2 (EXIF):外部中斷標志位。當INT腳有下降沿觸發(fā)時置“1”,可用軟件清零。
Bit3~7:未使用
·RF可用軟件清零,但不能被置“1”
·IOCF為中斷屏蔽寄存器,通過指令讀取RF值,此時結(jié)果值為RF和IOCF相與的結(jié)果
8.R10~R3F
·R10~R3F為48X8位一般通用寄存器。

2.5.2.      特殊功能寄存器

EM78X56的特殊功能寄存器主要包括累加器.控制寄存器和WDT預(yù)分頻器。
1.累加器A
內(nèi)部數(shù)據(jù)傳輸或指令運算單元,屬不可尋址單元。
2.控制寄存器
控制寄存器是用來控制I/O的工作狀態(tài)、中斷控制、看門狗控制等,它們的寄存器地址如圖2.4,其讀寫只能采用指令I(lǐng)0R R或IOW R來完成。
(1)CONT(控制寄存器)
 
7
6
5
4
3
2
1
0
INT
TS
TE
PAB
PSR2
PSR1
PRR0
 
Bit0(PSR0)~Bit2(PSR2) TCC/WDT預(yù)分頻系數(shù)位
PSR2
PSR1
PSR0
TCC分頻系數(shù)
WDT分頻系數(shù)
0
0
0
    1∶2
      1∶1
0
0
1
    1∶4
      1∶2
0
1
0
    1∶8
      1∶4
0
1
1
    1∶16
      1∶8
1
0
0
    1∶32
      1∶16
1
0
1
    1∶64
      1∶32
1
1
0
    1∶128
      1∶64
1
1
1
1∶256
      1∶128
 
Bit3(PAB)預(yù)分頻器分配位
    0:分配給TCC
    1:分配給WDT
Bit4(TE)TCC信號觸發(fā)源位
0:TCC腳信號低到高觸發(fā)
1:TCC腳信號高到低觸發(fā)
Bit5(TS) TCC信號源
    0:內(nèi)部指令周期時鐘
    1:TCC腳輸入的外部信號
Bit6(INT) 中斷使能標志位
    0:由DISI或硬件中斷產(chǎn)生時屏蔽中斷
    1:ENI或RETI指令開中斷
Bit7沒有使用
        ·CONT寄存器是可讀/寫的
(2)IOC5~IOC6(I/6口控制寄存器)
    IOC5、IOC6分別為口5、口6控制寄存器,按位將IOC5、IOC6設(shè)為“1”時表示該腳沒
 為輸入(高阻抗)、設(shè)為“0”時表示該腳為輸出。
    IOC5只有低四位可用。IOC5、ICO6為可讀寫的。
(3)IOCB(下拉控制寄存器)
7
6
5
4
3
2
1
0
/PD7
/PD6
/PD5
/PD4
――
/PD2
/PD1
/PD0
     Bit0(/PD0):使能P50引腳的下拉電阻控制位
         0:使能內(nèi)部下拉電阻功能
         1:關(guān)閉內(nèi)部下拉電阻功能
 Bit1(/PD1):使能P51引腳的下拉電阻控制位
 Bit2(/PD2):使能P52引腳的下拉電阻控制位
 Bit3:未使用
     Bit4(/PD4):使能P60引腳的下拉電阻控制位
     Bit5(/PD5):使能P61引腳的下拉電阻控制位
     Bit6(/PD6):使能P62引腳的下拉電阻控制位
     Bit7(/PD7):使能P63引腳的下拉電阻控制位
(4)IOCC(集電極開路控制寄存器)
7
6
5
4
3
2
1
0
0D7
0D6
0D5
0D4
0D3
0D2
0D1
0D0
Bit0(0D0) 使能P60腳集電極開路控制位
    0:關(guān)閉集電極開路功能
    1:使能集電極開路功能
Bit1~ Bit7  (0D1~0D7):分別使能P61~P67腳集電極開路功能。
IOCC為可讀寫寄存器
    (5)IOCD上拉控制寄存器
    7
6
5
4
3
2
1
0
/PH7
/PH6
/PH5
/PH4
/PH3
/PH2
/PH1
/PH0
Bito(PH0)使能P60腳內(nèi)部上拉電阻控制位
    0:允許內(nèi)部上拉
    1:禁止內(nèi)部上拉
Bit1~Bit7(/PH1~/PH7)分別使能P61~P67腳內(nèi)部上拉電阻控制器
* IOCD為可讀寫寄存器
    (6)IOCE WTD控制寄存器
    7
6
5
4
3
2
1
0
WDTE
EIS
ROC
Bit7(WDTE)使能看門狗定時器控制位
    0:關(guān)閉WDT
        1:使能WDT
          WDTE為可讀寫位
Bit6(EIS) P60腳功能選擇位
    0:P60為一般雙向I/0口
    1:P60為外部中斷輸入腳.此時P60必須設(shè)為輸入(IOC6.0=1)
Bit4(ROC)使能 R-option功能位(P50~P51)
    0:關(guān)閉R-option功能
    1:使能R-option功能
當使用R-option的功能時,可在P50或P51腳對地接430K電阻,若有接電阻,則P50或P51被讀成“0”,若不接電阻,則P50或P51讀成“1”。ROC為讀寫位
Bit0~3,5未使用。
(7)IOCF(中斷屏蔽寄存器)
    7
6
5
4
3
2
1
0
EXIE
ICIE
TCIE
Bit0(TCIE) TCIF中斷屏蔽位(TCC溢出中斷)
    0:屏蔽TCIF中斷
    1:允許TCIF中斷
Bit1(ICIE) ICIF中斷屏蔽位(P6口輸入變化中斷)
    0:屏蔽ICIF中斷
    1:允許ICIF中斷
Bit2(EXIE) EXIF中斷屏蔽位(外部中斷P60/INT)
    0:屏蔽EXIF中斷
    1:允許EXIF中斷
Bit3~7  未使用
當將IOCF相應(yīng)的控制位置“1”、則相應(yīng)的中斷允許,使用“ENI”指令時所有中斷被開放,而使用“DISI”指令,則所有中斷被關(guān)閉。IOCF為可讀寫寄存器。
  • 上一篇: 第二章 EM78系列單片機硬件結(jié)構(gòu)( 2.6 - 2.8 )
  • 下一篇: EM78 指 令 表
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1