EM78系列单片机的开发工具及编程器
EM78指令系统
2. EM78 指令概述
EM78 系列单片机共有的 47 条(EM78P447 和 451、458 有 48 条) 指令,其寬度为 13 位。每一个指令码可分割成两部份,第一部分为标示指令功能的运算码( OPCODE ) ,第二 部份則指出运算時所需之參数,亦即运算码( OPERAND ) 。而指令的类型大致可分为下列四 种:
深圳博巨兴有限公司
EM78 指令系统
目
录
EM78 指令系统.................................................................................................................................. 1 1. 程序基本格式..................................................................................................................... 2 2. EM78 指令概述..................................................................................................................3 3. EM78 指令寻址方式..........................................................................................................4 3.1. 立即数寻址.........................................................................................................4 3.2. 直接寻址.............................................................................................................4 3.3. 间接寻址.............................................................................................................4 3.4. 位寻址.................................................................................................................5 4. EM78 基本指令说明..........................................................................................................5 5. EM78 扩展指令说明........................................................................................................18 6. 指 令 速 查 表...............................................................................................................21
2005-0338 - 广电电器网
(800H  ̄BFFH )、Page3(C00H~FFFH)。指令系统中的两条长
距离跳转指令 JMP 和 CALL,所携带的地址码仅仅有 10
位, 210 =1K 地址空间, 即只能在 1K 的空间内跳转。 当
使用 JMP 指令时,装入目标地址到 PC 程序指针的低 10
位;使用 CALL指令时,装入目标地址至 PC程序指针的 低 10 位,且 PC+1 压栈,调用同 1K 页面内的任何程序。 PC 程序指针(寄存器 R2)和堆栈的位数是 12 位, 即寻址 空间分别为 4K, 一个程序页面为 1K。页面选择通过设 定状态寄存器 R3 的 Bit6(PS1)、 Bit 5 (PS0)来完成。
堆栈 (5 级)
CONT
IOC5 IOC6 IOC7
IOCE IOCF
10H R10 11H (16×8 通用寄存器)
…
…
1FH R1F
00
01
10
11
20H
31×8 位 31×8 位 31×8 位 31×8 位
…
体寄存器 体寄存器 体寄存器 体寄存器
3BH
(体0)
(体1)
(体2)
(体3)
3FH
R3F
Page0 Page1
处理程序 Error( ), 程序的功能
Page2
可 以 是“ 踢 狗 ”(外 置“ 狗 ”)。这
Page3
样做的原因如下 : 如果只编写 图4 EM78系列单片机
一个跑飞处理程序,假设放在 Pag e0 里,如果程序在 Pag e2 跑
分区指令冗余 抗干扰编程图
em78p156E单片机开发的遥控器汇编原程序
CALL TEST_KEY
NOP
NOP
;----------------------------------------------------
;红外发射采用TC 38K==T(26,3US)的定时中断,每个BIT发422USx4
;
; |--------|422 | |----|422X3 |
;1== | 422x3 |----| ; 0==|422 |--------|
;
;KEY==01----60H; 02----50H; 03---48H; 04----44H
CLR RF ;CLEAR P6 INPUT CHANGE SIGN ;CLEAR TC SI
mov a,@0x01
mov main_key,a
clr key_temp
; em78p156E单片机开发的遥控器汇编原程序
;***********************************************************************
;
; 遥控器
; v1.0-------2007,6,6
; cpu==em78p156E
KEY_TAB:
mov a,key_2
add pc,a
nop
RETL @0xe0
RETL @0xd0
RETL @0xb0
RETL @0x70
;------------------------------------------
call delay10ms
JMP MAIN
;-------------------------------------------------------
义隆单片机EM78P153使用
基于EM78P153S的应用设计(V1.0)目录第一章EM78P153S的初识 (1)1.1 EM78P152/3S特性 (1)1.2 EM78P152/3S引脚 (2)1.3 功能寄存器 (2)1.3.1 累加器与端口控制寄存器 (2)1.3.2中断状态寄存器与中断使能寄存器 (3)1.3.3 操作寄存器 (4)1.3.4 特殊功能寄存器 (6)1.4 数据存储器的配置 (7)1.5 休眠与唤醒 (7)1.6 分频器 (9)1.7 定时器/计数器TCC (9)第二章EM78系列单片机应用软件的编辑与仿真 (11)2.1 Simulator的下载与安装 (11)2.2 Simulator的使用方法 (11)2.3 Simulator系统常用命令汇总 (14)2.4 Simulator仿真中的常见问题 (15)第三章EM78系列单片机的汇编指令 (17)3.1 寻址方式 (17)3.2 伪指令 (18)3.3 指令速查表 (18)第四章EM78P153S应用软件设计 (20)4.1 外部中断程序 (20)4.2 花样灯程序 (22)4.2.1 设计需求 (22)4.2.2 软件设计 (23)4.2.3 硬件设计 (37)4.2.4 元器件明细表 (38)第五章EM78系列单片机应用程序的烧录 (39)5.1 程序的转换过程 (39)5.2 烧录器与烧录软件 (40)5.3 烧录步骤 (41)第一章 EM78P153S的初识EM78P152/3S是采用低功耗高速CMOS工艺设计开发的8位微控制器,它的内部有一个1024×13位一次性可编程只读存储器(OTP_ROM) ,可见1k的只读存储器(ROM)决定了应用程序不能够太多,否则应用程序机器码将无法烧录到芯片中。
硬件设计中,EM78P152/3S可以通过设置代码选项寄存器使微处理器工作在内部RC 振荡模式(IRC)下,此模式下采用上电复位模式而不需要外接时钟电路;同时利用上电自动复位而不需要外接复位电路,P63复位引脚可以直接作为输入脚使用,充分提高了微处理器端口的利用率,这样硬件应用电路极为简化,节省了硬件成本。
第四章 EM78系列单片机程序设计.
第四章EM78系列单片机程序设计( 2 )作者:佚名来源:不详录入:Admin更新时间:2008-7-26 20:12:55点击数:2【字体:】5.3.4. 液晶LCD显示驱动程序1.LCD驱动器1621HT1621为128(32×4)段LCD驱动器。
它可设置为1/2或1/3偏置且通过S/W配置设置为2,3或4个共用的LCD驱动器。
这使得HT1621适于多LCD应用。
LCD驱动时钟图5.6 HT1621功能框图从系统时钟内产生,一般为256KHZ。
图5.6为HT1621功能框图2.EM78X56与HT1621接口EM78X56与HT1621接口只须四条线。
CS线用以初始化串行接口电路且终止EM78X56与HT1621的通信。
若CS=1,EM78X56及HT1621间发送的命令首先被禁止即而进行初始化。
在模式命令或模式转换发出前,需要一高电平脉冲以初始化HT1621的串行接口,数据的读/写及命令的写人必须通过数据线。
RD为输入,RAM内的数据在RD信号的下降沿同步送出至数据线上。
这使EM78X56可以在RD信号的升沿及下一个下降沿到来期间读人正确的数据。
WR为写输入,数据线上的数据、地址及命令将在WR 信号上升写入HT1621。
一条可选择的IRQ线也可用作EM78X56及HT1621间的接口。
1.读/写命令时序控制及命令集4. 应用电路图 5.7 HT1621应用框图5. 编程示例R1 EQU 0X01R2 EQU 0X02R3 EQU 0X03IOC5 EQU 0X05IOC6 EQU 0X06PORT5 EQU 0X05PORT6 EQU 0X06IOCB EQU 0X0BIOCC EQU 0X0CIOCD EQU 0X0DIOCE EQU 0X0EIOCF EQU 0X0FS1 EQU 0X10S2 EQU 0X11S3 EQU 0X12S4 EQU 0X13S5 EQU 0X14S6 EQU 0X15S7 EQU 0X16S8 EQU 0X17S8S7 EQU 0X18S9 EQU 0X19S10 EQU 0X1ACOMMAND EQU 0X1BR_LOOP EQU 0X1CS_LOOP EQU 0X1DSEG0 EQU 0X1ESEG1 EQU 0X1FSEG2 EQU 0X20SEG3 EQU 0X21SEG4 EQU 0X22SEG5 EQU 0X23SEG6 EQU 0X24SEG7 EQU 0X25SEG8 EQU 0X26SEG9 EQU 0X27SEG10 EQU 0X28LCD_MAP EQU 0X29LCDRAM EQU 0X2AKEY2 EQU 0X2BKEY7 EQU 0X2CKEY_SX EQU 0X2DLP_CNT0 EQU 0X2ELP_CNT1 EQU 0X2FORG 0X000JMP MAINNOPMAIN: CLRA ;P50-P53 SET TO OUTPUT IOW IOC5IOW IOCEMOV A,@0B11110000 ;P60-P63 SET TO OUTPUT IOW IOC6 ;P64-P67 SET TO INPUTMOV A,@0X0FMOV PORT5,A ;P50-P53 RESET TO 1CLR PORT6 ;P60-P63 RESET TO 0BC PORT5,0 ;RESET 1621 INTERFACEBS PORT5,0BC PORT5,0BS PORT5,0 ;P50 SET TO 1,/CS=1MOV A,@0B11100011 ;COMMAND TNORMAL MOV COMMAND,ACALL C_WRITEMOV A,@0B10000000 ;COMMAND /IRQ DISMOV COMMAND,ACALL C_WRITEMOV A,@0B00010100 ;COMMAND XTAL32KMOV COMMAND,ACALL C_WRITEMOV A,@0B00101001 ;COMMAND BIAS1/3,4 COM MOV COMMAND,ACALL C_WRITEMOV A,@0B00001000 ;COMMAND TONE OFF MOV COMMAND,ACALL C_WRITEMOV A,@0B00000101 ;COMMAND WDT DISMOV COMMAND,ACALL C_WRITEMOV A,@0B00000100 ;COMMAND TIMER DIS MOV COMMAND,ACALL C_WRITEMOV A,@0B00000001 ;COMMAND SYS_ENMOV COMMAND,ACALL C_WRITEMOV A,@0B00000011 ;COMMAND LCD_ONMOV COMMAND,ACALL C_WRITEMOV A,@0X0FF ;LCD MAP SET TO 1MOV SEG0,AMOV SEG2,AMOV SEG3,AMOV SEG4,AMOV SEG5,AMOV SEG6,AMOV SEG7,AMOV SEG8,AMOV SEG9,AMOV SEG10,ACLR LCD_MAP ;FIRST MAP ADD IS 0CALL LCD_WRITE ;DISPLAY ALL SEGS (BREAK):LCD_OFF: CLR COMMAND ;TURN OFF LCD SYSTEM CALL C_WRITEC_WRITE: MOV A,@0X08MOV R_LOOP,ABC PORT5,0 ;/CS=0BC PORT5,2 ;/WR=0BS PORT5,3 ;DATA=1BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0BC PORT5,3 ;DATA=0BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0BC PORT5,3 ;DATA=0BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0C8_C1_WRITE: JBC COMMAND,7 ;COMMAND,7=0 JMP SET_DATA_1BC PORT5,3 ;DATA=0JMP NEXT_1SET_DATA_1: BS PORT5,3 ;DATA=1NEXT_1: RLC COMMANDBS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0DJZ R_LOOPJMP C8_C1_WRITEBC PORT5,3 ;DATA=0BS PORT5,2 ;/WR=1BS PORT5,0 ;/CS=1RETLCD_WRITE: BS PORT5,2 ;/WR=1BC PORT5,0 ;/CS=0BC PORT5,2 ;/WR=0BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0BC PORT5,3 ;DATA=0BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0BS PORT5,3 ;DATA=1BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0;WRITE THE LCD MEMORY ADD 00 BC PORT5,3 ;DATA=0, 1BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0;DATA=0, 2BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0;DATA=0, 3BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0;DATA=0, 4BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0;DATA=0, 5BS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0;DATA=0, 6BS PORT5,2 ;/WR=1MOV A,SEG0MOV LCDRAM,A ;SEG0CALL LCDDATA_WMOV A,SEG1MOV LCDRAM,A ;SEG1CALL LCDDATA_WMOV A,SEG2MOV LCDRAM,A ;SEG2CALL LCDDATA_WMOV A,SEG3MOV LCDRAM,A ;SEG3CALL LCDDATA_WMOV A,SEG4MOV LCDRAM,A ;SEG4CALL LCDDATA_WMOV A,SEG5MOV LCDRAM,A ;SEG5CALL LCDDATA_WMOV A,SEG6MOV LCDRAM,A ;SEG6CALL LCDDATA_WMOV A,SEG7MOV LCDRAM,A ;SEG7CALL LCDDATA_WMOV A,SEG8MOV LCDRAM,A ;SEG8CALL LCDDATA_WMOV A,SEG9MOV LCDRAM,A ;SEG9 CALL LCDDATA_WMOV A,SEG10MOV LCDRAM,A ;SEG10CALL LCDDATA_WBS PORT5,0 ;/CS=1RETLCDDATA_W: MOV A,@0X04 ;RAM DATA WRITEMOV R_LOOP,ADATA_W JBC LCDRAM,0JMP RAM_SETBC PORT5,3 ;DATA=0JMP NEXT_3RAM_SET: BS PORT5,3 ;DATA=1NEXT_3: RRC LCDRAMBS PORT5,2 ;/WR=1BC PORT5,2 ;/WR=0DJZ R_LOOPJMP DATA_WRETEOP5.3.5. 异步串行通信在EM78系列单片机内部没有异步串行口,所以必须用软件来完成这个工作。
EM78系列单片机的编程技巧
EM78系列单片机的编程技巧
王永生;全书海
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2005(000)003
【摘要】笔者在某智能水表开发中使用了EM78P447芯片,对EM78系列芯片有了较深认识,在实践中总结了一些开发此类芯片应注意的问题,同时给出了应用中的编程技巧。
【总页数】4页(P72-74,76)
【作者】王永生;全书海
【作者单位】武汉理工大学;武汉理工大学
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于C504-2E单片机的SPWM编程技巧 [J], 张钺;杨婷
2.51单片机C语言编程技巧探讨 [J], 叶晓龙
3.51单片机c语言编程技巧初探 [J], 肖洋
4.使用ADXL202晶片与EM78系列单晶片设计无滚轮滑鼠 [J], 王宜楷;庄健宏;方柏凯
5.《电脑编程技巧与维护》创刊十周年真诚奉献《编程技巧典型案例集锦系列》(9本/期) [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
EM78指令系统
EM78XX 指令指令系统系统EM78156 & EM78P156 单片机共有的 58 条指令,其宽度为 13 位。
每一个指令码可分割成两部份,第一部分为标示指令功能的运算码( OPCODE ),第二部份則指出运算时所需之參数,亦即运算码( OPERAND )。
而指令的类型大致可分为下列四种:(1)控制型指令( control operation ): 如INT...等等。
(2)面向寄存器面向寄存器((字节操作字节操作))型指令( register oriented ): 如 MOV A, Reg_B ; move Reg_B to A ADD Reg_B, A ; add Reg_B with A, and ; save in Reg_B... 等等。
(3)位操作型指令( bit oriented ): 如 BC,JBS...等等。
(4)常数型指令( constant operation ):如 MOV A, @0x55 ; move 0x55 to A XOR @0xFF ;Xor A with 0xFF一般而言,EM78 系列八位微控制器除一个指令需两个周期之外,其他的指令只需一个指令周期,除了对 PC (Program Counter)做 “写” 的指令,需二个指令周期,如 (MOV PC, A)。
EMC EMC 汇编语言指令集汇编语言指令集汇编语言指令集符号解说: 1.符号‘R’:代表一般用途寄存器中的其中一个。
2.符号‘B’:代表一般用途寄存器中的某一位。
3.符号‘K’:代表8位或10位的常数或内容。
4.符号‘A ’:代表累加寄存器。
面向寄存器面向寄存器((字节操作字节操作))型指令型指令((26条)助记符号 指令动作 标志影响 指令周期 语言描述ADD A,R A+R->A Z,C,DC 1 ADD ADD R,A A+R->R Z,C,DC 1 ADD AND A,R A&R->A Z 1 AND AND R,A A&R->R Z 1 ANDCLR R 0->R Z 1 Clear RegisterCLRA 0->A Z 1 Clear the A register COM R /R->R Z1Complement R助记符号 指令动作 标志影响 指令周期 语言描述 COMA R/R->AZ 1 Complement R,Place in ADAA A 寄存器调整为BCD 值 C 1 Decimal Adjust DEC R R-1->R Z 1Decrement RDECA R R-1->A Z 1 Decrement R,Place in A DJZ R R-1->R 结果为零就跳过下一个指令 1 Decrement R,Skip if 0 DJZA R R-1->A 结果为零就跳过下一个指令 1 Decrement R,Please in Aregister, Skip if 0 INC R R+1->R Z 1 Increment RINCA R R+1->A Z 1 Increment R,Please in A JZ R R+1->R, 结果为零就跳过下一个指令 1 Increment R,Skip if 0JZA R R+1->A, 结果为零就跳过下一个指令 1 Increment R,Place in the A regiser,Skipif 0 MOV R,A A->R 1 Move Data MOV A,R R->A Z 1 Move Data MOV R,R R->R Z 1 Move Data OR A,R A OR R ->A Z 1 Inclusive OR OR R,A A OR R->R Z 1 Inclusive OR SUB A,R R-A->A Z,C,DC 1 Subtract SUB R,A R-A->R Z,C,DC 1 Subtract XOR A,R A XOR R->A Z 1 Exclusive OR XOR R,A A XOR R->R Z1Exclusive OR面向位操作类指令面向位操作类指令((10条)助记符号 指令动作 标志影响 指令周期 语言描述 BC R,B 0->R(B) 1 Bit Clear BS R,B 1->R(B) 1 Bit Set JBC R,B 如果R(B)=0,则跳过下一个指令1 Bit Test, Skip if Clear JBS R,B 如果R(B)=1,则跳过下一个指令 1 Bit Test, Skip if Set RLC RR(N)->R(N+1) R(7)->C C->R(0)C 1 Rotate Left R through Carry RLCA RR(N)->A(N+1) R(7)->C C->A(0)C 1 Rotate Left R through Carry,Place in the A Register RRC RR(N)->R(N-1) R(0)->C C->R(7)C 1 Rotate Right R through Carry 助记符号指令动作 标志影响 指令周期 语言描述RRCA RR(N)->A(N-1) R(0)->C C->A(7)C 1Rotate Right R through Carry,Place in the A Register SWAP R R(0-3)->R(4-7) R(4-7)->R(0-3) 1 Swap R SWAPA RR(0-3)->A(4-7) R(4-7)->A(0-3)1Swap R常数操作和控制类指令常数操作和控制类指令((22条)助记符号 指令动作 标志影响 指令周期 语言描述 ADD A,K A+K->A Z,C,DC 1 ADD AND A,K A&K->A Z 1 AND CALL K PC+1->[SP] (PAGE,K)->PC 1 Subroutine Call CONTR CONT->A 1 Move CONT to the A register CONTW A->CONT 1 Move A to CONT DISI 禁止中断 1 Disable Interrupt ENI 使能中断 1 Enable Interrupt INT PC+1->[SP] 001H->PC 1 Software interrupt IOR R IOCR->A 1 Move IOCR to the A register IOW R A->IOCR 1 Move A to IOCR JMP K (PAGE,K)->PC 1 Unconditional Branch MOV A,K K->A 1 Move Data NOP 1 No Operation OR A,K A OR K->A Z 1 Inclusive OR RET [堆栈顶端]->PC 1 Return from Subroutine RETI [堆栈顶端]->PC,使能中断 1 Return from Interrupt RETL K K->A, [堆栈顶端]->PC Return Immediate Data to the A Register SLEP 0->WDT,振荡器停止振荡 T,P 1 Into Sleep mode SUB A,K K-A->A Z,C,DC 1 Subtract TBL PC+A->PC Z,C,DC 2 Table Look Up WDTC 0->WDT T,P 1 Clear Watchdog Timer XOR A,K A XOR K->A Z 1 Exclusive OR。
EM78系列单片机简介
第一章EM78系列单片机简介台湾义隆公司推出的八位EM78系列单片机已有多年,并广泛应用在家用电器、工业控制、仪器等方面,其优良的单片机结构和性能为用户所认同,但与AT89系列、PIC系列、Z86系列、GMS97系列等单片机比较而言,EM78系列单片机进入内地市场稍晚一些,所以一般人并不太了解。
本章将对EM78系列单片机的主要特点作一个概述,供大家参考(以EM78X56为例)。
第一章一、先进的单片机结构EM78系列单片机将众多功能集于一身,这其中包括ALU、ROM、RAM、I/O、堆栈、中断控制器、定时/计数器、看门狗、电压检测器、复位电路、振荡电路等,成为真正意义上的单片机小系统。
第二章二、优越的数据处理性能EM78系列单片机采用RISC结构设计、单周期、单字节及流水线指令、五级堆栈、RAM数量从32~157个,最短指令周期100ns,程序页面为1K(多至4页),与其它一些单片机相比,EM78系列单片机具有更高、更快的运行处理速度。
第三章三、强大的单片机新功能这包括:①①三个中断源:定时器中断、I/O唤醒中断、外部信号输入中断②②R-OPTION功能:如果用户程序有几个版本,希望能放在同一ROM内,则通过R-OPTION功能便可实现此想法,R-OPTION功能设置是在相关I/O上上拉或下拉电阻,通过判断相关I/O的状态来选择执行内部何种版本程序。
③③内置电压检测器:当电源电压掉在一额定值以下时单片机始终处于复位状态,以此提高系统的复位性能。
④④低功耗设计:正常工作电流2mA、休眠状态电流1μA⑤⑤多功能I/O口:可程序设置为I/O上拉、下拉、开路等方式⑥⑥I/O唤醒功能:通过I/O变化唤醒处于休眠状态的单片机⑦⑦内置看门狗定时器:提高单片机抗干扰能力第四章四、灵活的功能选择设计通过软件分别设置:①①指令周期的时钟周期数(2/4)②②特殊指令的指令周期数(1/2)③③振荡方式(内部RC、外部RC、XTAL低频、XTAL高频等)④④R-OPTION功能开/关⑤⑤WDT开/关第五章五、通俗易懂的指令系统EM78系列单片机指令系统采用与大家熟知的MCS-51指令风格设计,共计58条指令,大家通过较短的时间便能掌握运用。
台湾义隆单片机硬件结构
第二章 EM78系列单片机硬件结构EM78系列单片机是采用低功耗、高速CMOS工艺制造的8位单片机,本章将以EM78X56(包括EM78156、EM78256、EM78456)为例来讲述EM78系列单片机的内部结构、存贮器、中断、I/O、看门狗、振荡器和电压检测器等特点。
2.1. 主要功能特点·采用8位数据总线和13位指令总线独立分离的Harvard结构设计。
·采用RISC指令集,共有57条单字节指令,其中99%为单周期指令(对程序计数器PC指针进行写操作除外)。
·1K~4KX13的程序存贮器(有OTP和掩膜二个版本)。
·48个通用数据寄存器可直接寻址使用。
·14个特殊功能寄存器。
·具有一个结构选择寄存器用于设置振荡器的工作方式等。
·具有五级堆栈令程序嵌套更自由。
·两个双向三态I/O口,12个I/O线,可分别设置为上拉、下拉或集电极开路等。
·具有三个硬件中断和一个软件中断。
·两种工作模式:正常工作模式 2mA/5V休眠模式 1μA/5V(可由I/O唤醒)·具有R-OPTION功能,即用电阻的上拉、下拉来选择内部程序的执行。
·一个带8位预置器的8位定时/计数器,一个看门狗定时器(WDT)。
·采用先进的加密方法保证用户代码不被读出。
·工作电压:2.5~5.5V 工作频率DC~36MHZ、工作温度0℃~70℃。
2.2. EM78X56型号分类、命名方法及管脚功能说明2.2.1. 型号分类(表2.1):2.2.2. 命名方法:EM 78 P 156 A P封装形式P-DIP M-SOIC S-SSOP内置电压检测功能 A-有 B-无类型名P:OTP;没有“P”为MASK版本单片机系列号EMC公司字头2.2.3. EM78X56管脚功能描述图2.1 EM78156管脚图(EM78256和EM78456管脚同上)2.3. EM78内部结构框图EM78X56在片内集成了一个8位算术运算单元ALU和工作寄存器ACC、1K~4KROM、56个RAM、12个I/O口,8位预置器(Prescaler)及8位计数器(TCC)、振荡器、看门狗、五级堆栈、中断控制器、指令寄存器、译码器和其它一些寄存器等。
EM78系列单片机硬件结构
2.2.1. 型号分类(表 2.1):
型号 EM78156 EM78256 EM78456
ROM(Bit)
RAM(Byte)
I/O
1KX13
56
12
2KX13
56
12
4KX13
56
12
2.2.2. 命名方法:
EM 78 P 156 A P
最短指令周期 111ns 111ns 111ns
第3页
封装形式 P-DIP M-SOIC 内置电压检测功能 A-有 类型名
第二章 EM78 系列单片机硬件结构
武汉威帆 (027)87644346
第二章 EM78 系列单片机硬件结构
EM78 系列单片机是采用低功耗、高速 CMOS 工艺制造的 8 位单片机,本章将以 EM78X56 (包括 EM78156、EM78256、EM78456)为例来讲述 EM78 系列单片机的内部结构、存贮器、 中断、I/O、看门狗、振荡器和电压检测器等特点。
2.1. 主要功能特点
·采用 8 位数据总线和 13 位指令总线独立分离的 Harvard 结构设计。
·采用 RISC 指令集,共有 57 条单字节指令,其中 99%为单周期指令(对程序计数器
PC 指针 进行写操作除外)。
·1K~4KX13 的程序存贮器(有 OTP 和掩膜二个版本)。
·48 个通用数据寄存器可直接寻址使用。
S-SSOP B-无
P:OTP; 没有“P”为 MASK 版本 单片机系列号
EMC 公司字头
第二章 EM78 系列单片机硬件结构
武汉威帆 (027)87644346
2.2.3. EM78X56 管脚功能描述
图 2.1 EM78156 管脚图(EM78256 和 EM78456 管脚同上)
EM78系列单片机的开发工具及编程器
第六章EM78系列单片机的开发工具及编程器EM78单片机的开发工具一般包括:(1)宏汇编(交叉汇编)(2)仿真器(3)程序烧写器。
单片机的开发过程如下:1)用编辑软件(如:EDIT、PE2等)输入源程序(扩展名DT)2)用宏汇编(ASM456/ASM447)对源程序(*。
DT)进行汇编。
3)使用仿真器(ICE456/447)进行程序调试。
仿真调试正确转向下一步,不正确则修改源程序再转向“2”开始。
4)将调试完毕的目标码(*.CDS)用烧写器烧入EM78单片机中。
5)将烧好的单片机插入实际电路中检查,若正确则开发完毕,否则修改程序转向“2”开始。
下面分别介绍上述三种开发工具。
6.1.宏汇编(交叉汇编)与汇编语言格式6.1.1.宏汇编程序ASM456是EM78154/156/256/456的汇编程序。
ASM447是EM78247/447的汇编程序。
ASM456/447是台湾义隆电子公司设计的针对EM78单片机的汇编软件,该软件也包含在仿真器(E8-ICE)的集成调试软件中,也可以直接在仿真器软件中汇编,也可以单独使用。
对源程序汇编后会产生如下文件:*.dt:源程序*.std:提供给程序设计者参考的标准文件*.cds:即一般所谓的目标文件(object文件).ice:提供给仿真器(E8-ICE)显示使用*.lin 及*.adr:提供给仿真器(E8-ICE)的数据库使用注:*.ice 及*.std为可读的文本文件,其余为不可读。
若汇编失败,将产生一个*.err文件,内为错误信息,以便设计者排错用。
6.1.2.汇编语言格式以下就该编译器的語法,作一詳盡介紹。
(1)键入格式本编译器並不对字之大写或小写作区別,如 "MOV", "Mov", "mOV",和 "MoV" 在解释上是不做区別的。
(2)在常数之前请加小鼠标"@",其它如寄存器(r)及位(b)之前則不加"@"。
第五章EM78系列单片机程序设计基础
第五章EM78系列单片机程序设计5.1.EM78 系列八位微控器特色指令用法5.1.1.查表指令与用法EM78 系列八位微控器是利用 (1)―call",(2) 改变PC (或“tbl"),(3)―retl k" 三个步骤来查表的。
其中“retl k" 是将常数 k 的值传至工作寄存器 "A" 中。
步骤 (2) 中若利用“mov 0x2,a",或“add 0x2,a" 等等指令来改变PC,则因为此等指令会將 PC (R2) 的位 8、9 清除 (在 EM78056 只清除位 8),所以查表的内容只能放在程序每个 PAGE 的較低的 256 个位址。
步骤 (2) 中若利用“tbl" 指令来改变PC,则因为此指令不会將PC (R2) 的位 8、9 清除,而保留“tbl" 所在位址的位 8、9,所以查表的内容可以放在程序每个 PAGE 中的任何位址。
例:查表table add 0x02,a ;將相对位置加入 PC 而改变了PCretl @0x19 ;传回常数内容 19h 至 "A"retl @0x74 ;传回常数内容 74h 至 "A"retl @0x2e ;传回常数内容 2eh 至 "A"retl @0x54 ;传回常数内容 54h 至 "A"retl @0x4b ;传回常数内容 4bh 至 "A"inc 0x18mov a,0x18 ;欲查的内容的相对位置放在"A"call table ;查表mov 0x10,a ;查表得到的内容移至 R10 中5.1.2.分 PAGE 的用法1. 程序跳 PAGE 的用法:EM78 系列八位微控器將其 Program Memory (ROM) 分成数个 PAGE,每个 PAGE 的长度是 1K (EM78056 除外)。
78P153
78P153S资料1、一般描述EM78P153S是采用低耗高速CMOS工艺制造的8位单片机,它内部包含一个1024*13-bit的一次性可编程只读电存储器(OTP-ROM)。
有15位选项位可满足用户要求,其中的保护位可用来防止程序被读出由于有OTP-ROM,EM78P153S提供给用户一个方便的开发和检验他们的程序的环境。
而且,程序代码可用ELAN编程器写入芯片。
2、特征14个引线封装:EM78P153S、工作电压范围:2.3V~5.5V、适用温度范围:0℃~70℃工作频率范围(基于2个Clock):晶振模式:DC-20MHZ at5V,DC-8MHZ at3V,DC-4MHZ at 2.3VERC模式:DC-4MHZ at5V,DC-4MHZ at3V,DC-4MHZ at 2.3V低功耗:*在5V/4MHz时低于1.5mA、*在3V/32KHz时为15uA、*在休眠模式时为1uA1024x13位片内ROM、 内置4个校准IRC振荡器(8MHZ,4MHZ,1MHZZ,455KHZ)振荡器起振时间预分频系数可编程、一个安全位(代码寄存器中)保护程序不被读出一个结构寄存器满足用户要求、32x8bits片内寄存器组(SRAM,一般寄存器)2组双向I/O端口、5级用于子程序嵌套的堆栈8位实时计时/计数器(TCC),其信号源、触发边沿可编程选择,溢出时产生中断节能模式(SLEEP模式)三种可用的中断:*TCC溢出中断*输入引脚变化中断(从休眠模式唤醒)*外部中断 可编程自由运行看门狗定时器(WDT)、7个可编程上拉I/O引脚7个可编程漏极开路I/O引脚、6个可编程下拉I/O引脚每个指令周期为两个时钟周期:99.9%的指令为单周期指令封装类型:14脚SOP、DIP,14管脚DIP300mil:EM78P153SP、14管脚SOP150mil:EM78P153SN 系统高低频率的变化点是400KHZ3、管脚分配管脚说明:4.1操作寄存器1、R0(间接地址寄存器)R0并非实际存在的寄存器。
EM78的详细资料
EM78 指令系统EM78 指令概述EM78 系列单片机共有的47 条(E M78P447 和451 、458 有48 条)指令,其竟度为13 位。
每一个指令码可分割成两部份,第一部分为标示指令功能的运算码(OPCODE ) ,第二部份别指出运算畴所需之参数,亦即运算码(OPERAND )。
而指令的类型大致可分为下列四种:( 1 )控制型指令(Control operation ) :如INT …等等。
( 2 )面向寄存器(字节操作)型指令(register oriented ) :如MOVA , Reg _ B ; move Reg _ B toAADD Reg _ B , A ;add Reg _ B withA , and ;save in Reg _ B 等等。
( 3 )位操作型指令(bit oriented ) :如Bc , JBs…等等。
( 4 )常数型指令(Cons 、an 、opera 、ion ) :如MOVA , @ Ox55 ; move Ox55 toAXOR @ OxFF ; Xor A with OxFF一般而言,EM78 系列八位微控制器除了封PC ( Progr 姗Coun 忱r )做“写”的指令如(MOVPC , A ) ,需二个指令周期外,其他的指令只需一个指令周期,EM78 指令寻址方式关于对寄存器的存取,必须要先说明寄存器的位址,说明暂存的位址的方式称做寻址方式,EM78 的寻址方式有两种,一种为直接寻址,一种为简接寻址。
立即数寻址这种方式就是操作数为立即数,可直接从指令中获取。
例:MOVA ,网oxl6 ;将常数oxl6 送给寄存器A直接寻址若是使用者要存取寄存器的内容,可以在运算码上直接描述。
个例:将寄存器。
xZ 。
的内容,c0PY 到寄存器。
x21 中。
MOV A , OXZOMOV OX21 A间接寻址这种寻址方式是通过寄存器R4 来实现的,R4 的bito 一 5 是用来选择寄存器(地址:00 一06 , oF 一3F ) 若是使用者所需要存取的寄存器,有位址相邻的特性,使用简接寻址是很方便的。
EM78F64xN66xN单片机在线编程(ISP)应用指南
b.复合式功能脚位可为 RESET 或一 般 I/O pin : EM78F641N EM78F642N EM78F641N、EM78F642N、 EM78F661N、EM78F662N、 EM78F648N、EN78F668N
c.无 RESET pin : EM78F641NMS10 EM78F661NMS10
Applicable ISP pins: 2: PVDD、6: DATA、7: CLK、9: GND 、 、 、
IC 烧录脚位定义列表:
CLK IC body PIN define EM78F641N P82/CIN2PIN define P81/CIN2+ RESET P83 EM78F642N P66 P67 RESET EM78F644N P66 P67 RESET P83 EM78F661N P82/CIN2P81/CIN2+ RESET P83 EM78F662N P71/OP+ P70/OPOUT RESET EM78F664N P81/CIN2+ P80/CO2 RESET P83 EM78F648N P81/CIN2+ P80/CO2 RESET P83 EM78F668N P81/CIN2+ P80/CO2 RESET 五线 五线 四线 五线 五线 四线 五线 四线 五线 五线 四线 五线 四线 PIN define P83 DATA RST 烧录 模式 四线
5.ISP应用中关于硬件的注意事项
a.烧录时需将目标板上的供电电源切除 b.烧录器和目标板连接的数据软排线, 应须 10 cm 以内并 接电容及串接任何电子组件 (如: 电 阻、电容、电感…)
VDD d.烧录时,烧录脚 VDD 与 VSS 间可接最大 电容最大值为470uF,以免影响烧录 e.正常烧录, 烧录脚 VDD 与 VSS 间电压范 Pin 围为: 5.5V ±1% RL f.烧录脚 VDD 可提供最大电流 60mA RL Pin g.烧录脚 DATA、CLK 最大驱动电流 6mA h.为确保正常烧录,烧录脚 DATA、CLK需 外接上拉或下拉,其RL需满足上拉大于 200 脚位(DATA、CLK)上拉电阻 RL 大于 200 ,下拉大于 500 、
义隆电子股份有限公司EM78P516N 8888位微控制器产品规格书说明书
8位微控制器产品规格产品规格书书1.0义隆电子股份有限公司2015.3商标告知:IBM 为一个注册商标,PS/2是IBM 的商标之一。
Windows 是微软公司的商标。
ELAN 和ELAN 标志 是义隆电子股份有限公司的商标。
版权所有 © 2015义隆电子股份有限公司所有权利保留台湾印制本使用说明文件内容如有变动恕不另作通知。
关于该规格书的准确性、适当性或者完整性,义隆电子股份有限公司不承担任何责任。
义隆电子股份有限公司不承诺对本使用说明文件之内容及信息有更新及校正之义务。
本规格书的内容及信息将为符合确认之指示而变更。
在任何情况下,义隆电子股份有限公司对本使用说明文件中的信息或内容的错误、遗漏,或者其它不准确性不承担任何责任。
由于使用本使用说明文件中的信息或内容而导致的直接,间接,特别附随的或结果的损害, 义隆电子股份有限公司没有义务负责。
本规格书中提到的软件(如果有),都是依据授权或保密合约所合法提供的,并且只能在这些合约的许可条件下使用或者复制。
义隆电子股份有限公司的产品不是专门设计来应用于生命维持的用具,装置或者系统。
义隆电子股份有限公司的产品不支持而且禁止在这些方面的应用。
未经义隆电子股份有限公司书面同意,任何个人或公司不得以任何形式或方式对本使用说明文件的内容之任一部分进行复制或传输。
义隆电子股份有限公司总公司:地址:台湾新竹科学园区创新一路12号电话:+886 3 563-9977 传真:+886 3 563-9966 *****************.tw http :// 香港分公司:义隆电子隆电子((香港香港))有限公司 九龙观塘巧明街95号世达中心19楼A 室电话:+852 2723-3376 传真:+852 2723-7780 **************.hkUSA:Elan InformationTechnology Group (USA) P .O. Box 601Cupertino, CA 95015 USATel : +1 408 366-8225 Fax : +1 408 366-8225深圳分公司:义隆电子义隆电子((深圳深圳))有限公司 深圳市南山区高新技术产业园南区高新南六道迈科龙大厦8A邮编:518057电话:+86 755 2601-0565 传真:+86 755 2601-0500******************.cn上海分公司:义隆电子义隆电子((上海上海))有限公司 地址:上海市浦东新区张江高科碧波路5号科苑大楼6楼邮编:201203电话:+86 21 5080-3866 传真:+86 21 5080-0273 ******************.cn目录目录1 综述 (1)2 特性 (1)3 引脚配置 (2)4 引脚描述 (6)5 功能结构图 (11)描述 (12)功能描述6 功能6.1 操作寄存器 (12)6.1.1 R0/IAR (间接寻址寄存器) (12)6.1.2 R1, TCC (定时时钟计数器) (12)6.1.3 R2, PC (程序计数器) (12)6.1.4 R3, SR (状态寄存器) (15)6.1.5 R4, RSR (RAM选择寄存器) (16)6.1.6 Bank0 R5, Port 5 (Port 5 I/O数据和寄存器页面选择) (16)6.1.7 Bank0 R6, Port 6 (Port 6 I/O数据寄存器) (16)6.1.8 Bank0 R7, Port 7 (Port 7 I/O数据寄存器) (17)6.1.9 Bank0 R8, Port 8 (Port 8 I/O数据寄存器) (17)6.1.10 Bank0 R9, LCDCR (LCD控制寄存器) (17)6.1.11 Bank0 RA, LCD_ADDR (LCD地址寄存器) (18)6.1.12 Bank0 RB, LCD_DB (LCD数据缓存器) (18)6.1.13 Bank0 RC, CNTER (计数器使能寄存器) (19)6.1.14 Bank0 RD, SBPCR (系统时钟、驱动频率及PLL频率控制寄存器) (19)6.1.15 Bank0 RE, IRCR (IR&Port 5设置控制寄存器) (22)6.1.16 Bank0 RF, ISR (中断状态寄存器) (23)6.1.17 Bank1 R5, P5HDSCR (Port 5高驱动/下沉控制寄存器) (24)6.1.18 Bank1 R6, P6HDSCR (Port 6高驱动/下沉控制寄存器) (24)6.1.19 Bank1 R7, P78HDSCR (Port 7~8高驱动/下沉控制寄存器) (24)6.1.20 Bank1 R8, ADSR1 (ADC输入选择寄存器1) (24)6.1.21 Bank1 R9, ADSR2 (ADC输入选择寄存器2) (25)6.1.22 Bank1 RA, ADCR (ADC控制寄存器) (26)6.1.23 Bank1 RB, ADISR (ADC输入通道&内部参考选择寄存器) (27)6.1.24 Bank1 RC, ADDL (模数转换数据的低字节) (28)6.1.25 Bank1 RD, ADDH (模数转换数据的高字节) (28)6.1.26 Bank1 RE, IMR2 (中断屏蔽寄存器2) (28)6.1.27 Bank1 RF, SF2 (中断状态寄存器2) (28)6.1.28 Address: 10h~3Fh; R10~R3F (通用目的寄存器) (28)目录6.2 特殊目的寄存器 (29)6.2.1 A (累加器) (29)6.2.2 IOC50, P5CR (Port 5 I/O& Port 7、P8,LCD段控制寄存器) (29)6.2.3 IOC60, P6CR (Port 6 I/O控制寄存器) (30)6.2.4 IOC70, P7CR (Port 7 I/O控制寄存器) (30)6.2.5 IOC80, P8CR (Port 8 I/O控制寄存器) (30)6.2.6 IOC90, RAM_ADDR (128字节RAM地址) (30)6.2.7 IOCA0, RAM_DB (128字节RAM数据缓存器) (31)6.2.8 IOCB0, CNT1PR (计数器1预设值寄存器) (31)6.2.9 IOCC0, CNT2PR (计数器2预设值寄存器) (31)6.2.10 IOCD0, HPWTPR (高电平脉宽定时器预设值寄存器) (32)6.2.11 IOCE0, LPWTPR (低电平脉宽定时器预设值寄存器) (32)6.2.12 IOCF0, IMR (中断屏蔽寄存器) (32)6.2.13 IOC61, WUCR (唤醒和 P57/IROUT灌电流控制寄存器) (33)6.2.14 IOC71, TCCCR (TCC控制寄存器) (33)6.2.15 IOC81, WDTCR (WDT控制寄存器) (34)6.2.16 IOC91, CNT12CR(计数器1、2的控制寄存器) (35)6.2.17 IOCA1, HLPWTCR (高/低电平脉宽定时器控制寄存器) (36)6.2.18 IOCB1, P6PH (Port 6上拉控制寄存器) (37)6.2.19 IOCC1, P6OD (Port 6漏极开路控制寄存器) (37)6.2.20 IOCD1, P8PH (Port 8上拉控制寄存器) (38)6.2.21 IOCE1, P6PL (Port 6下拉控制寄存器) (38)6.3 TCC&WDT预分频器 (38)6.4 I/O端口 (41)6.5 复位与唤醒 (41)6.6 振荡器 (47)6.6.1 振荡器模式 (47)6.6.2 锁相环(PLL模式) (47)6.6.3 晶体振荡器/陶瓷谐振器(晶振) (48)6.6.4 带内部电容的RC振荡模式 (49)6.7 上电参考 (49)6.7.1外部上电复位电路 (50)6.7.2 残余电压保护 (50)6.8 中断 (51)6.9 LCD驱动器 (52)6.9.1 R9/LCDCR (LCD控制寄存器) (52)6.9.2 RA/LCD_ADDR (LCD地址寄存器) (53)6.9.3 RB/LCD_DB (LCD数据缓存器) (53)6.9.4 RD/SBPCR (系统时钟、驱动频率及PLL频率控制寄存器) (54)目录6.10 红外遥控应用/PWM波形的产生 (58)6.11 模数转换器(ADC) (62)6.11.1 ADC控制寄存器 (62)6.11.2 ADC取样时间 (66)6.11.3 AD转换时间 (66)6.11.4 ADC工作在休眠模式 (66)6.11.5 编程过程/注意事项 (67)6.12 代码选项 (68)6.13 指令集 (69)6.13 时序图 (72)7 绝对最大值 (73)8 电气特性 (73)8.1 DC电气特性 (73)8.2 AC电气特性 (75)9 AD转换特性 (76)附录A 订购及制造信息 (77)B 封装类型 (78)C 封装信息 (79)D EM78P516N烧录引脚清单 (85)E 品质保证和可靠性 (86)E.1 地址缺陷检测 (86)目录规格修订历史1.0 初版2015/03/19EM78P516N8位微控制器产品规格书 (V1.0) 03.19.2015 • 11 综述EM78P516N 是采用低功耗高速CMOS 工艺设计开发的8位微控制器。
深圳市瑞丰汇 EM78 系列单片机仿真系统说明书
----EM78系列单片机仿真系统使用说明----台湾义隆8位单片机仿真系统用于在线仿真开发EM78PXX系列各种型号的单片机。
包括仿真系统软件(WICE)和仿真系统硬件(在线仿真板)。
其结构简单,使用方便,调试功能强大,是广大工程师的有力开发工具。
一. 仿真系统硬件----仿真板包括底板(控制电路、SRAM等)和上板(CPU板)组成。
底板通过打印口连接到PC机。
上板通过排线连接到用户的目标板。
其系统结构框图如下:----更换不同的上板(CPU板)即可仿真不同型号的单片机,以下列出部分上板型号:----1. EM153上板(153CPU板):仿真EM78P153S----2. EM456上板(456CPU板):仿真EM78P156EL----3. EM447上板(447CPU板):仿真EM78P447SA/SB----4. EM451上板(451CPU板):仿真EM78P451----5. EM458上板(458CPU板):仿真EM78P458A/459A二. 仿真系统软件WICE----WICE是一套运行于WINDOWS环境的义隆8位单片机仿真软件,它将编辑,汇编,仿真功能集成在同一开发环境中,极大地方便了用户的操作。
1. 汇编语言格式----WICE要求源代码语句格式为:[标号[:]] [操作码] [操作数] [,操作数] [;注释]其中括号的内容为选,且各单元中的字符不区分大小写,如“MOV”和“mov”是完全一样的。
各单元之间以空白或跳格键(Tab)来分隔。
----标号:标号后的冒号可有可无,但隔行放置必须加上冒号,同时加上冒号也可加强程序的可读性。
标号内的字符可包括大小写英文字母(A~Z,a~z),数字(0~9)及底线(_),但标号必须以字母开头,标号最长不能超3过1个字符。
----操作码:可以是指令或伪指令。
----操作数:操作数的数目及类型由操作码决定,它可以是程序地址代码,寄存器代码或常数。
义隆单片机 EM78P153_C语言范例
static io unsigned int IMR
@0x0F:iopage 0; //Interrupt Mask Register
/*======================================================;
; Special Purpose Registers Define
@0x05:iopage 0; @0x06:iopage 0; @0x0B:iopage 0; //Push-down Control Register @0x0C:iopage 0; //Open-drain Control Register @0x0D:iopage 0; //Push-high Control Register @0x0E:iopage 0; //WDT Control Register @0x0F:iopage 0; //Interrupt Mask Register
;
; ======================================================;
;
; A: Accumulator
; It can't be addressed.
;
; CONT: Control Register
;
;{
mINT == 0x40 ; Interrupt enable flag
static io unsigned int P5CR @0x05:iopage 0;//Port5 Control Register static io unsigned int P6CR @0x06:iopage 0;//Port6 Control Register static io unsigned int PDCR @0x0B:iopage 0; //Push-down Control Register
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章EM78系列单片机的开发工具及编程器EM78单片机的开发工具一般包括:(1)宏汇编(交叉汇编)(2)仿真器(3)程序烧写器。
单片机的开发过程如下:1)用编辑软件(如:EDIT、PE2等)输入源程序(扩展名DT)2)用宏汇编(ASM456/ASM447)对源程序(*。
DT)进行汇编。
3)使用仿真器(ICE456/447)进行程序调试。
仿真调试正确转向下一步,不正确则修改源程序再转向“2”开始。
4)将调试完毕的目标码(*.CDS)用烧写器烧入EM78单片机中。
5)将烧好的单片机插入实际电路中检查,若正确则开发完毕,否则修改程序转向“2”开始。
下面分别介绍上述三种开发工具。
6.1.宏汇编(交叉汇编)与汇编语言格式6.1.1.宏汇编程序ASM456是EM78154/156/256/456的汇编程序。
ASM447是EM78247/447的汇编程序。
ASM456/447是台湾义隆电子公司设计的针对EM78单片机的汇编软件,该软件也包含在仿真器(E8-ICE)的集成调试软件中,也可以直接在仿真器软件中汇编,也可以单独使用。
对源程序汇编后会产生如下文件:*.dt:源程序*.std:提供给程序设计者参考的标准文件*.cds:即一般所谓的目标文件(object文件).ice:提供给仿真器(E8-ICE)显示使用*.lin 及*.adr:提供给仿真器(E8-ICE)的数据库使用注:*.ice 及*.std为可读的文本文件,其余为不可读。
若汇编失败,将产生一个*.err文件,内为错误信息,以便设计者排错用。
6.1.2.汇编语言格式以下就该编译器的語法,作一詳盡介紹。
(1)键入格式本编译器並不对字之大写或小写作区別,如 "MOV", "Mov", "mOV",和 "MoV" 在解释上是不做区別的。
(2)在常数之前请加小鼠标"@",其它如寄存器(r)及位(b)之前則不加"@"。
例如MOV A, @0x55 ;add"@" before constant 0x55BC 0x7, 0x4 ;no"@" before both register;7 and bit4SUB 0x10,A ;no"@" before register 0x10(3)数字格式a、十六进位制之前先加"0x",例如0xA、 0x55、 0x11。
PS 只处理二位。
b、十进位制之前不加辨识字元。
(4)";" 请置于备忘陈述或註解之前。
例如;**********************************;This is an example of how to write;an EMC 8_bit program;Date of programming: March 12, 1996;**********************************(5)"ORG" 定义起始位址。
其語法为"ORG ADDR"。
例如ORG 0x000 ;address begins from 0x000NOPNOP:ORG 0x600 ;another address starts from 0x600NOPNOP:(6)"==" 定义一代号值。
其語法为“SYMBOL == K”,例如TCC ==0x01PC ==0x02BUFFER == 0x20COUNTER == 0x21※ a、代号字串長度不得大于11个字母。
b、定义代号不一定在程序一开始,只要在使用之前定义即可。
(7)面向寄存器型指令的語法可分为以下三类:a、直接对寄存器做运算。
其語法为"INST REG"。
例如IOW 0x05INC 0x10DJZ 0x10RRC 0x10b、与 "A" 做运算,結果存入 "A" 中。
其語法为"INST A, REG"。
例如MOV A, 0x15AND A, 0x15SUB A, 0x15c、与 "A" 做运算,結果存入寄存器中。
其語法为"INST REG, A"。
例如MOV 0x15, AAND 0x15, ASUB 0x15, A(8)位处理型指令的語法为"INST REG, BIT"。
例如BC 0x05, 0x1BS 0x05, 0x1JBC 0x05, 0x1JBS 0x05, 0x1(9)标号的用法a、标号字串長度不得大于11个字母。
b、标号字串之后要加一个冒号“:”。
冒号之后要換行。
6.1.3.錯誤信息说明:信息1:16 characters at most for a name/label。
说明:当定义代号或标号名大于16 個字母時。
信息2: out of range, it must be from 0x5 to 0x7。
说明:在試图定义一不存在的输出输入口(I/O PORT )時信息3:unknown instruction, or syntax。
说明:在编译某一行之陳述(statement )時,发現指令以外之字元,或語法不符規定。
信息4:out of range, it must be from 0 to 0xFF。
说明:在設定一常数值時,其值大于上限255。
信息5:digits only。
说明:以数字开头的字(word),会被解釋成十进位的語法。
信息6:out of range, it must be from 0 to 0x400。
说明:在"EOP" 之前,或"EOP" 两之间程序長度大于1K(1024 )。
信息7:out of range, it must be from 0 to 0x3F。
说明:当企图使用寄存器的位置超过63。
信息8:reserved word or comma ',',required。
说明:使用之代号名称或标号明是指令保留字。
如com,tbl...等等。
信息9:argument does not assign a value。
说明:在编译某一行之陳述(statement )時,发現代号名称之值並未事先以予設定。
信息10:name/label duplicates。
说明:代号名称或标号名重複使用。
信息11:name can not match with label。
说明:某一代号名称与某一标号名雷同。
信息12:out of range, it must be less than 0x1FFF。
说明:程序長度大于該一系列可编程的地址上限。
信息13:too many pages。
说明:使用过多之"EOP"。
信息14:the current page is overlapping with the last page。
说明:在"EOP" 之前,或"EOP" 两之间程序長度大于1K(1024 )。
信息15:the ORG overlaps with the address before it。
说明:目前"ORG" 所定义之起始位址小于其上一行指令之位址。
6.1.4.编译結果说明:(1)当编译失敗時,会產生一個".ERR"檔,內容記載如上所述之錯誤信息。
其格式如下:Compiling:dir\fname.dtError ln_no instruction statement:error message说明:dir:路径,fname:文件名称,ln_no:发生語法錯誤之行数,instruction statement:該行之原始指令陳述,error message:錯誤信息。
例如:Compiling:..\emc\data\example.dtError 100 IOW 0x08:out of range,...Error 125 Ad A, 0x10:unknown ...(2)当编译成功時,会产生如下几个文件:a、".cds":即一般所说的目标文件(object file),b、".ice":提供E8-ICE 显示使用,c、".std":提供程序設計者參考的标准文件。
d、".lin"、和".adr":提供E8-ICE内容庫使用。
※".ice" 和".std" 为可读的Text file,其余則为不可读的Binary file。
6.2.软件仿真器使用说明6.2.1.软件仿真器WIM156基本介紹WIM156的设計是针对单片机的初学者﹐它提供了一个简单的使用环境﹐以及学习环境。
WIM156软件设备中包括两个部分﹐第一个为编译器﹔第二个为软件仿真器。
上述两个软件设备是相輔相成的﹐並不能分开。
当使用者进入WIM156並打开文件之后﹐WIM156就完成编译的动作﹐並且已经进入仿真的功能了。
开发这套设备的工程師所使用的工作环境如下:PC: ACERpower DX4vp視窗环境: windows 3.1英文版. (若是使用中文版会降低执行的速度) 屏幕解析度: 640 * 480 pixel.鼠标: PS2 mouseCPU: INTEL80486 DS-75模拟对象: 义隆电子公司的EM78156 & EM78P156八位单片机WIM156是针对初学者所设計的一个单片机仿真器, 並且提供一个简易的操作环境. 我們所用的单片机主体是国內义隆电子所生产的8位单片机,EM78156 & EM78P156.6.2.2.硬件设备介紹搭配WIM156的硬件裝备是由PRINTER PORT所延伸, 在此我們称它为ADOPT. ADOPT的主要控制器为义隆电子公司的EM78447B或EM78P447B. ADOPT接受从PC PRINTER PORT过來的資料, 真实的模拟各种不同的I/O动作, 包括floating , input, output等. 在ADOPT中, 有一个插槽可以让你連接排线﹐以便于控制外部的电路. 此外﹐在ADOPT板面上也有超过300个萬用孔﹐可供使用者接一些简易的电路.下为PC外接ADOPT的简图﹕图 6.1 软件仿真器WIM156系统构成6.2.3.屏幕浏览器执行WIM156之后,在屏幕上会产生三块区分明显的方块,如下图所示﹐图 6.2 WIM156进入时的画面分別是:1. 原始程序浏览区 ( source code viewer )2. 通用寄存器以及特殊寄存器浏览区 ( general register & special register viewer )3. 寄存器块浏览区 (bank register viewer )原始程序浏览区主要的目的就是要观看使用者所写的組合語言. 原始程序浏览区会在原先的程序之前加数字, 代表程序指令执行的順序. 不过有一点是要各位使用者注意的. 原始程序浏览区的浏览程度大小是限制于32k bytes以下. 並且有效的指令敘述也不要超过1000行, 因为所模拟的单片机是EM78156 & EM78P156, 它們的記忆体大小等于1 k words.其他的两个浏览器分別显示各个寄存器的內含值, 在这两个区域中, 除了R3, R4之外﹐其他的寄存器都可以在屏幕上直接修改.6.2.4.功能描述功能名称快速鑑说明Brkpt-F2 F2 Brkpt是Break point的縮写. 当使用者执行这个功能時会产生一个如下图所示的对话窗.你可以在这个对话窗中加入中断的位址﹐使用者可以输入位址设定中断位址﹐也可以用标記设定中断点﹐分別使用对话窗的左方两个输入框。