当前位置:首页 > 单片机 > 单片机
[导读] 5.1.EM78 系列八位微控器特色指令用法5.1.1.查表指令与用法EM78 系列八位微控器是利用 (1)“call",(2) 改变PC (或“tbl"),(3)“retl k" 三个步骤来查表的。其中“retl k" 是将常数 k 的值传至工作寄存

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 而改变了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

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 xor 0x12,a

450 Lab2 bc 0x06,3

451 mov a,0x05

45f ret

說明:

052: 將 R3 寄存器的位 5設为 "1" (选择 PAGE 1)。

053: Lab2 將会被編译为 "50",呼叫 PAGE 1 中 "Lab2" 子程序。

054: 將 R3 寄存器的位5 还原为 "0"。

注意:

此例中 "052" 和 "053" 是用来呼叫 PAGE 1 中 "Lab2" 的子程序,假如果沒有 "052" 這行指令,則程序將呼叫 "050" 的位址 (在 PAGE 0中),而非 "450" 的位址 (在 PAGE 1中),如此將发生錯誤。

5.1.3."BS","BC" 等指令对 I/O Port 的作用:

"BS","BC" 等指令会先有 "读" 再 "写" 的动作,例如 "bc 0x06,3" 指令是將整个 Port 6 (8PIN) 读進 CPU,执行位运算后再写至 Port 6 上。假如 Port 6 有一些 pin 是双向 I/O pin (如 P65) 時,假設当执行 "bc 0x06,3" 時P65 是输入 pin,則 P65 pin 上的内容会被读入再写至 Latch 上,覆蓋原先 Latch 上的内容。因此只要 P65 一直是输入 pin 將不会有問題,一旦 P65 切換为输出,則 Latch 上的内容將是不可預知的。

5.1.4.I/O Port读取的路径:

若仔細研究EM78系列八位微控器的I/O Port构造,就可发現在做"读"I/O Port的动作時(如"mov a,0x06"),所读入内容有两个路径来源,一是I/O pin上的内容,另一是输出Latch上的内容,而由I/O控制寄存器決定此读入的路径。

例如I/O pin设计为输入pin時(对应的I/O控制寄存器为"1"),对I/O Port做"读"的动作時,是读到pin上的内容。若I/O pin设计为输出pin時(对应的I/O控制寄存器为"0"),对I/O Port做"读"的动作時,是读到输出Latch上的内容。

5.1.5.WDT (Watchdog Timer)的使用:

WDT是微控器內部RC自振的计時器,其超時溢位(Time-out)的基本周期約18ms,WDT有与TCC共用的倍除器,使得超時溢位(Time-out)的最大周期可至約2.2sec。WDT计時的使能或禁止是可隨時由指令控制的(控制位在IOCE寄存器)。当WDT使能時,其超時溢位將使微控器发生RESET(或喚醒),"wdtc"指令是用来清除WDT,令WDT再从头计時,因此适当的使用"wdtc"指令,可使WDT不会发生RESET。当WDT被禁止時,WDT不会使微控器RESET或喚醒。要特別注意的是,Power-on之後WDT是使能的,如果該应用中並沒有使用WDT,必須在程序的前头用指令將WDT计時禁止。EM78156/256/456就是依上述所設计。

在EM78247/447/248/448/056/P156除了上述的設计外,另有一Code Option決定使能或禁止WDT,其功能如下:

1. 假如应用中有使用WDT,WDT必須以Code Option使能,則在程序中隨時可以用指令使能或禁止WDT计時。注意:Power-on之後WDT是使能的。

2. 假如应用中並沒有使用WDT,WDT可以以Code Option禁止,則WDT是永遠被禁止的,如此可省去須在程序的前头用指令將WDT计時禁止的麻煩。

5.2.基本设计规则5.2.1.设定I/O口的模式:

用户可以单独设定任一支I/O脚为输出模式(Output Mode),或是输入模式(Input Mode)。只要將每个I/O的设定写入累加器(A)中,再將累加器的内容写到I/O控制寄存器中,设定就算完成了。

例1:將PORT6设定为OUTPUT PORT。




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭