1、第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 108 页第六章 EM78 系列单片机的开发工具及编程器EM78 单 片 机 的 开 发 工 具 一 般 包 括 : ( 1) 宏 汇 编 ( 交 叉 汇 编 ) ( 2) 仿 真 器( 3) 程 序 烧 写 器 。 单 片 机 的 开 发 过 程 如 下 :1) 用 编 辑 软 件 ( 如 : EDIT、 PE2 等 ) 输 入 源 程 序 ( 扩 展 名 DT)2) 用 宏 汇 编 ( ASM456/ASM447) 对 源 程 序 ( *。 DT) 进 行 汇 编 。3) 使 用 仿 真 器 ( ICE
2、456/447) 进 行 程 序 调 试 。 仿 真 调 试 正 确 转 向 下 一 步 ,不 正 确 则 修 改 源 程 序 再 转 向 “2”开 始 。4) 将 调 试 完 毕 的 目 标 码 ( *.CDS) 用 烧 写 器 烧 入 EM78 单 片 机 中 。5) 将 烧 好 的 单 片 机 插 入 实 际 电 路 中 检 查 , 若 正 确 则 开 发 完 毕 , 否 则 修 改 程 序转 向 “2”开 始 。下 面 分 别 介 绍 上 述 三 种 开 发 工 具 。6.1. 宏汇编(交叉汇编)与汇编语言格式6.1.1. 宏汇编程序ASM456 是 EM78154/156/256/4
3、56 的 汇 编 程 序 。ASM447 是 EM78247/447 的 汇 编 程 序 。ASM456/447 是 台 湾 义 隆 电 子 公 司 设 计 的 针 对 EM78 单 片 机 的 汇 编 软 件 , 该软 件 也 包 含 在 仿 真 器 (E8-ICE)的 集 成 调 试 软 件 中 , 也 可 以 直 接 在 仿 真 器 软 件 中汇 编 , 也 可 以 单 独 使 用 。 对 源 程 序 汇 编 后 会 产 生 如 下 文 件 :*.dt: 源 程 序*.std: 提 供 给 程 序 设 计 者 参 考 的 标 准 文 件*.cds: 即 一 般 所 谓 的 目 标 文 件
4、 ( object 文 件 ).ice: 提 供 给 仿 真 器 ( E8-ICE) 显 示 使 用*.lin 及 *.adr: 提 供 给 仿 真 器 ( E8-ICE) 的 数 据 库 使 用注 : *.ice 及 *.std 为 可 读 的 文 本 文 件 , 其 余 为 不 可 读 。若 汇 编 失 败 , 将 产 生 一 个 *.err 文 件 , 内 为 错 误 信 息 , 以 便 设 计 者 排 错 用 。6.1.2. 汇编语言格式以下就该编译器的語法,作一詳盡介紹。(1)键入格式本编译器並不对字之大写或小写作区別,如 “MOV“, “Mov“, “mOV“,和 “MoV“ 在解
5、释上是不做区別的。(2)在常数之前请加小鼠标“,其它如寄存器(r) 及位(b)之前則不加“。例如MOV A, 0x55 ;add“ before constant 0x55 BC 0x7, 0x4 ;no“ before both register;7 and bit4 SUB 0x10,A ;no“ before register 0x10第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 109 页(3)数字格式a、十六进位制之前先加 “0x“,例如0xA、 0x55、 0x11。PS 只处理二位。 b、十进位制之前不加辨识字元。(4)“;“ 请置于备忘
6、陈述或註解之前。 例如;*;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 = 0x20
7、COUNTER = 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)
8、位处理型指令的語法为 “INST REG, BIT“。 例如BC 0x05, 0x1第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 110 页BS 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 0
9、x5 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“
10、 之前,或 “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、複使用。信息 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 ad
12、dress before it。说明:目前 “ORG“ 所定义之起始位址小于其 上一行指令之位址。6.1.4. 编译結果说明:(1)当编译失敗時,会產生一個 “.ERR“檔,內容記載如上所述之錯誤信息。其格式如下:Compiling: dirfname.dtError ln_no instruction statement: error message第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 111 页说明:dir: 路径,fname: 文件名称,ln_no: 发生語法錯誤之行数,instruction statement:該行之原始指令陳述,er
13、ror message: 錯誤信息。例如:Compiling:.emcdataexample.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,其余 則为不可读的 Bin
14、ary file。6.2. 软件仿真器使用说明6.2.1. 软件仿真器 WIM156基本介紹WIM156 的 设 計 是 针 对 单 片 机 的 初 学 者 它 提 供 了 一 个 简 单 的 使 用 环 境 以 及 学 习 环 境 。 WIM156 软 件 设 备 中 包 括 两 个 部 分 第 一 个 为 编 译 器 第 二 个为 软 件 仿 真 器 。 上 述 两 个 软 件 设 备 是 相 輔 相 成 的 並 不 能 分 开 。 当 使 用 者 进 入WIM156 並 打 开 文 件 之 后 WIM156 就 完 成 编 译 的 动 作 並 且 已 经 进 入 仿 真 的 功能 了 。
15、开 发 这 套 设 备 的 工 程 師 所 使 用 的 工 作 环 境 如 下 :PC: ACERpower DX4vp視 窗 环 境 : windows 3.1 英 文 版 . (若 是 使 用 中 文 版 会 降 低 执 行 的 速 度 )屏 幕 解 析 度 : 640 * 480 pixel. 鼠 标 : PS2 mouseCPU: INTEL80486 DS-75模 拟 对 象 : 义 隆 电 子 公 司 的 EM78156 & EM78P156 八 位 单 片 机WIM156 是 针 对 初 学 者 所 设 計 的 一 个 单 片 机 仿 真 器 , 並 且 提 供 一 个 简 易
16、的 操作 环 境 . 我 們 所 用 的 单 片 机 主 体 是 国 內 义 隆 电 子 所 生 产 的 8 位 单 片 机 , EM78156 & EM78P156.6.2.2. 硬件设备介紹搭 配 WIM156 的 硬 件 裝 备 是 由 PRINTER PORT 所 延 伸 , 在 此 我 們 称 它 为ADOPT. ADOPT 的 主 要 控 制 器 为 义 隆 电 子 公 司 的 EM78447B 或 EM78P447B. ADOPT 接 受 从 PC PRINTER PORT 过 來 的 資 料 , 真 实 的 模 拟 各 种 不 同 的 I/O 动作 , 包 括 floating
17、 , input, output 等 . 在 ADOPT 中 , 有 一 个 插 槽 可 以 让 你連 接 排 线 以 便 于 控 制 外 部 的 电 路 . 此 外 在 ADOPT 板 面 上 也 有 超 过 300 个萬 用 孔 可 供 使 用 者 接 一 些 简 易 的 电 路 .第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 112 页下 为 PC 外 接 ADOPT 的 简 图 图 6.1 软 件 仿 真 器 WIM156 系 统 构 成6.2.3. 屏幕浏览器执 行 WIM156 之 后 ,在 屏 幕 上 会 产 生 三 块 区 分 明 显
18、的 方 块 , 如 下 图 所 示 分 別 是 :1. 原始程序浏览区 ( source code viewer ) 2. 通用寄存器以及特殊寄存器浏览区 ( general register & special register 图 6.2 WIM156 进入时的画面第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 113 页viewer )3. 寄存器块浏览区 (bank register viewer )原 始 程 序 浏 览 区 主 要 的 目 的 就 是 要 观 看 使 用 者 所 写 的 組 合 語 言 . 原 始 程 序浏 览 区 会 在 原
19、 先 的 程 序 之 前 加 数 字 , 代 表 程 序 指 令 执 行 的 順 序 . 不 过 有 一 点是 要 各 位 使 用 者 注 意 的 . 原 始 程 序 浏 览 区 的 浏 览 程 度 大 小 是 限 制 于 32k bytes 以 下 . 並 且 有 效 的 指 令 敘 述 也 不 要 超 过 1000 行 , 因 为 所 模 拟 的 单 片 机是 EM78156 & EM78P156, 它 們 的 記 忆 体 大 小 等 于 1 k words.其 他 的 两 个 浏 览 器 分 別 显 示 各 个 寄 存 器 的 內 含 值 , 在 这 两 个 区 域 中 , 除了 R3,
20、 R4 之 外 其 他 的 寄 存 器 都 可 以 在 屏 幕 上 直 接 修 改 .6.2.4. 功能描述功能名称 快速鑑 说明Brkpt-F2 F2 Brkpt是 Break point的縮写. 当使用者执行这个功能時会产生一个如下图所示的对话窗.你可以在这个对话窗中加入中断的位址使用者可以输入位址设定中断位址也可以用标記设定中断点分別使用对话窗的左方两个输入框。请注意在输入完每一个中断位址都必須要按下 OK键。中断点的设定是沒有限制的使用者可以將中断点设在任何須要的地方若是所有的程序码都设成了中断点那程序执行起來就像是单步执行了。在对话窗的左邊所显示的中断位址是以 16进位的方式來显示的
21、。Clear-F3 F3 这个功能会让使用者清除所有的中断点。Run-F5 F5 当始用者执行这个功能時会产生如下图的对话窗如果你按下 continue的按鈕WIM156 就会不停的执行程序直到碰到中断点为才会停下來使用者可以按下 continue键继续往下执行也可以按下 stop按键跳出这个功能。使用者请注意当你啟动这个功能時请記得要按下 continue按键程序才会开始起动。使用者可以在执行此功能的同時加上新的中断位址。Goto-F4 F4 当使用者执行这个功能時会产生一个对话窗如下。第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 114 页使用者必
22、須要输出一个有效的位址可以用 10进位或 16进位的方式输入数值。如果使用者采用 16进位的输入方式请在数值之前加上 0x的符号。输入完毕之后按下 OK按键即可执行。此時会产生另一个显示盒如下图如果使用者设定的中断点並不能使程序停止下來那麼有两种可能的原因1可能程序要执行很久才执行得到。2可能程序永远执行不到始用者所执行的位址。若是使用者等不急或是不想等可以按下 STOP键就可以停止这个功能。Step-F6 F6 单步执行的功能一次只执行一个指令敘述。使用者可以在原始程序浏览器上看到一条藍色的标記行这行就是程示下一个要执行的地方。Next-F7 F7 这个功能和上述的 Step functio
23、n功能差不多。不一样的地方是当 Next function遇到子程序時会执行完也就是任何時候Next function 的下一个指令位址就是目前的执行位址加一。FRun-F8 F8 FRun就是 free run的縮写当使用者执行这个功能時WIM156会一直执行到使用者按下 STOP键時WIM156 才会停下來。当使用者执行此功能時会产生如下的信息窗。Reset-F9 F9 当使用者执行这个功能時程序計数器会被清除成 0另一方面所有的中断点都会被清除掉。Return-F10 F10 当使用者执行这个功能時可以回到主要的功能表在主功能表中使用者可以再开啟一个新的文件进行模拟。File-F11 F
24、11 使用者若是想要修改目前执行的文件可以利用这个功能。当使用者执行这个功能時会將目前在 WIM156中执行的文件关閉然后在开啟编辑程序 NOTEPAD並將使用者所要修改的文件載入 NOTEPAD中。当使用者编辑完毕時请記得要將所修改的文件存起來並且結束 NOTEPAD的执行。接著进入 WIM156中在开啟已修正过的文件。Demo-F12 F12 当使用者想看清楚指令执行的順序可以利用这个功能改变程序执行的速度执行本功能時会产生一个对话窗如下所示第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 115 页使用者若按下 FAST的按键則程序会以每秒执行 8个
25、指令的速度执行如果使用者按下 MIDDLE的按键程序会以每秒执行 4个指令的速度执行如果使用者按下 SLOW的按键程序会以每秒执行 2个指令的速度执行。如果以上这三种速度使用者都不滿意使用者可以利用延迟时间栏自行調整速度时间的基数为 125ms。若使用者在时间延迟基数中输入 0則是 Demo run中的最高速度。ModReg none ModReg是 modify register的縮写使用者执行这个功能時会产生一个很大的对话窗让使用者输入数值。这是设計給沒有mouse的使用者用的。使用者若是有安裝 mouse那麼若要修改寄存器的資料就在屏幕上点一下进行输入就行了。6.3. 义隆电子 E8-I
26、CE 硬件仿真器E8-ICE 是 义 隆 电 子 原 厂 的 Ic 实 时 (Real Time)仿 真 器 , 专 为 工 程 師 设 計 的超 強 ICE, 若 是 使 用 者 想 在 EM78 的 使 用 上 有 更 进 一 步 的 突 破 , E8-ICE 的 选购 是 必 須 的 。E8-ICE 有 多 种 款 式 , 在 这 里 只 介 紹 EM78156 的 Real Time ICE。6.3.1. 设备需求:1.EGA以上的显示器。2.1M RAM3.80386 (含)以上的 IBM PC或相容产品。4.打印机口及接线。5.在线仿真器(ICE)。6.ICE驱动程序(如 ICE4
27、56) 。7.715 V 350mA的 电源。第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 116 页图 6.3 ICE系统构造图。6.3.2. 仿真器的安裝E8-ICE 仿 真 器 是 通 过 并 行 口 与 计 算 机 之 间 传 送 数 据 的 , 其 构 成 示 意 图 如 图 6.4所 示 。 下 面 说 明 两 点 :1. 將 PE2或 EDIT编辑器在 autoexec.bat 中设定 path,如此本软件就可以从事编辑的工作。2. 使用本软件之前,需要將 ICE硬件部份开啟,否則软件因检測不到硬件设备会产生錯誤的信息。图 6.4 当 I
28、CE无法正确与电脑連线時所出現的錯誤画面。第六章 EM78 系列单片机的开发工具及编程器 武汉威帆 (027)87644346第 117 页图 6.5 正确进入 ICE模拟程序的画面。6.3.3. 仿真程序操作说明执 行 ICE456 或 ICE447 仿 真 调 试 程 序 即 可 进 入 仿 真 调 试 状 态 。 现 以 ICE-78447 为 例 来 说 明 仿 真 器 的 使 用 功 能 。 ICE456 的 使 用 与 ICE447 基 本 相 同 。“ESC”键的功能:1. 程序視窗与主 MENU之间的切換。2. 取消下拉視窗回到主 MENU。3. 仿真运行時可按”ESC”键二至三下,跳出 Waiting循环。4. 当 Free Run或程序无法到中断点条件時,可用 ESC键結束菜单功能说明:1.File:(a)Open:开启一个文件。(b)Dump to ICE (F3):將程序码输出至 ICE。(c)Trace log (F2):將 Trace Buffer的內容读出來,並显示于程序視窗中。(d)DOS Shell:將操作权交給 DOS,键入”EXIT”即可回至本程序。