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条指令,大家通过较短的时间便能掌握运用。
- 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的縮写. 当使用者执行这个功能時会产生一个如下图所示的对话窗.你可以在这个对话窗中加入中断的位址﹐使用者可以输入位址设定中断位址﹐也可以用标記设定中断点﹐分別使用对话窗的左方两个输入框。