EMC单片机学习一

     从毕业到现在工作一年,在这里记录下自己学习的历程,分享给大家,提供一点点思路和方法。因为工作要使用EMC单片机,以前在学校使用的51和STM32.从未接触台系的,也没使用过汇编。本来还以为可以使用C语言去写,但弄第一个练习项目的时候,到处是问题。弄得很头疼不知道怎么去找原因。(所在公司的情况是前辈离职,无人带,自己摸索)只好自己去啃EMC的汇编指令,发现网上的资料还是比较少的,在这里非常感谢程序匠人,Etual大神,以及一些网上的分享文章。 

    本人所使用的是EM78P系列的,有153 、173N、301N等,义隆单片机的汇编语言和 MCS-51 单片机很相似,但两者是完全不停体系结构。

义隆单片机内部结构和 PIC 单片机是一样的,MCS-51 单片机的总线结构是冯 - 诺依曼型, 计算机在同一个存储空间取指令和数据, 两者不能同时进行; 而 PIC 单片机的总线结构是哈佛结构, 指令和数据空间是完全分开的, 一个用于指令, 一个用于数据, 由于可以对程序和数据同时进行访问, 所以提高了数据吞吐率。正因为在 PIC 单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是:程序和数据总线可以采用不同的宽度。数据总线都是 8 位的,但指令总线位数分别位 12、14、16 位。

基本功能的总结下:

① 三个中断源:定时器中断、I/O 唤醒中断、外部信号输入中断 (只有下降沿触发)
② R-OPTION 功能:如果用户程序有几个版本,希望能放在同一 ROM 内,则通过 R-OPTION 功能便可实现此想法,R-OPTION 功能
设置是在相关 I/O 上上拉或下拉电阻,通过判断相关 I/O 的状态来选择执行内部何种版本程序。
③ 内置电压检测器:当电源电压掉在一额定值以下时单片机始终处于复位状态,以此提高系统的复位性能。
④ 低功耗设计:正常工作电流 2mA、休眠状态电流 1μA 
⑤ 多功能 I/O 口:可程序设置为 I/O 上拉、下拉、开路等方式
⑥ I/O 唤醒功能:通过 I/O 变化唤醒处于休眠状态的单片机
⑦ 内置看门狗定时器:提高单片机抗干扰能力

EM78 系列单片机将众多功能集于一身,这其中包括 ALU、ROM、RAM、I/O、堆栈、 中断控制器、定时 / 计数器、看门狗、
电压检测器、复位电路、振荡电路等,成为真正意义上 的单片机小系统。优越的数据处理性能 。

EM78 系列单片机采用 RISC 结构设计、单周期、单字节及流水线指令、五级堆栈、RAM 数量从 32~157 个,最短指令周期 100ns,
程序页面为 1K(多至 4 页)


EMC 的基本指令语法,也就 57/58 条

EMC 的指令集分几类:
1、数据传送
mov 这是最基本的数据传送指令,也有好几个寻址方式
swap 一个字节的高低 nibble 互相交换
iow IO 地址空间的写操组
ior IO 地址空间的读操作
bs 置位操作
bc 清位操作
2、算术运算
add 加法指令
sub 减法指令
inc 加一指令
dec 减一指令
daa 十进制调整指令
3、逻辑运算
and 与操作
or 或操作
xor 异或操作
com 取反
rlc 循环左移
rrc 循环右移
4、控制语句
call 子程序调用
jmp 直接跳转
ret 子程序返回
reti 中断返回
djz 减一为零则跳转
jbc 测试位为零跳转
jbs 测试位为一跳转
page 修改当前的 page
bank
修改当前的 bank
tbl pc
pcA
5
、其他指令
disi 关中断
eni 开中断
wdtc 清看门狗
nop 空指令

寄存器:

R0 IAR 间接地址寄存器
R2 PC 程序计数器
R3 STATUS 状态寄存器
R4 RSR RAM 选择寄存器
A 累加器
TUS 各个BIT 的功能:
0 C 进位标志位
1 DC 辅助进位标志
2 Z 零标志位
3 P 低功耗位
4 T 时间溢出位
7 RST 复位类型位
0 R4合作完成间接寻址,R4 指向地址,R0 映射内存单元
A CONT是没有内存映射的,只能通过指令直接寄存器寻址


猜你喜欢

转载自blog.csdn.net/u013830926/article/details/68485258