[信息与通信]第五章EM78系列单片机程序设计基础.pdfVIP

  • 1
  • 0
  • 约8万字
  • 约 47页
  • 2018-03-01 发布于浙江
  • 举报

[信息与通信]第五章EM78系列单片机程序设计基础.pdf

[信息与通信]第五章EM78系列单片机程序设计基础

第五章EM78系列单片机程序设计 乙硕科技 0769-2404052 第五章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)的位 89清除 (在 EM78056只清除位 8)所以查表的内容只能放在程 序每个 PAGE的較低的 256个位址 步骤 (2)中若利用 tbl指令来改变PC则因为此 指令不会將PC (R2)的位 89清除 而保留 tbl所在位址的位 89 所以查表的内 容可以放在程序每个 PAGE中的任何位址 例:查表 table add 0x02,a ;將相对位置加入 PC而改变了PC retl @0x19 ;传回常数内容 19h至 A retl @0x74 ;传回常数内容 74h至 A retl @0x2e ;传回常数内容 2eh至 A retl @0x54 ;传回常数内容 54h至 A retl @0x4b ;传回常数内容 4bh至 A inc 0x18 mov a,0x18 ;欲查的内容的相对位置放在A call table ;查表 mov 0x10,a ;查表得到的内容移至 R10中 5.1.2.分 PAGE的用法 1.程序跳 PAGE的用法: EM78系列八位微控器將其 Program Memory (ROM)分成数个 PAGE每个 PAGE的长度 是 1K (EM78056除外) R3寄存器的位 5 (6)是 PAGE选择位 当执行 jmp或 call 指令时 PAGE选择位会被载入 Program Counter的位 10 (11)因此当程序超过 1K (EM78056为 0.5K)时 执行 jmp或call指令时 PAGE选择位正确的设定是非常 重要的 下面将以 EM78256为例来说明跳 PAGE的方法 例 例 从PAGE 1跳转到PAGE 0 ; PAGE 0, begin at 000h 049 add 0x11,a 050 mov a,@0x55 051 mov 0x05,a ;port5-- 0x55 052 bs 0x03,5 ;select PAGE 1 053 jmp lab1 ;PAGE jump 第 62 页 第五章EM78系列单片机程序设计 乙硕科技 0769-2404052 054 ; PAGE 1, begin at 400h 447 448 mov a,@0x3f 449 xor 0x12,a 450 Lab1 bc 0x06,3 451 mov a,0x05 说明: 052:将 R3寄存器的位 5设为 1 (选择 PAGE 1) 053: Lab1会被编译 为 50程序跳转至 PAGE 1中 Lab1 (450)的位址 注意: 此例中 052和 053是用来跳 PAGE的 假如沒有 052这行指令 则程序将跳 转至050的位址 (在 PAGE 0中) 如此將沒有达到預期的目的 2.不同 PAGE子程序呼叫的方法: 如第 1项所述 当程序超过 1K時 执行 call指令时 PAGE选择位的设定就 必须加以考虑 下面將以 EM78256为例来说明呼叫不同 PAGE子程序的方法 例:从PAGE 0调用PAGE 1中的子程序 ; PAGE 0, begin at 000h 049 add 0x11,a 050 mov a,@0x55 051 mov 0x05,a ;port5-- 0x55 052 bs 0x03,5 ;select PAGE 1 053 call Lab2 ;PAGE jump 054 bc 0x03,5 ;restore 055 jbs 0x15,2 056 ; PAGE 1, begin at 400h 417 418 mov a,@0x3f 419 xo

文档评论(0)

1亿VIP精品文档

相关文档