| 芯片对照 |
| PIC其中一些单片机与EM78系列单片机管脚相兼容,对照如下: |
|
· |
PIC12C508/509 EM78P152/153 |
|
· |
PIC16C54/56/84 EM78P156/256/456 |
|
· |
PIC16C55/57 EM78P447 |
| 以上单片机转换可不改动PCB便可完成,具体EMC-PIC.htm#1">硬件资源对照如表1所示;EMC-PIC.htm#2">指令对照表如表2所示。 |
|
|
转换软件使用说明 |
| 现有转换软件X156M.EXE可以将PIC编写的程序目标码转成EM78单片机可用的源代码。 | |
| 1.文件名:X156M.EXE | |
| 说明:PIC程序文件名后缀一定是(.OBJ) | |
| 文件格式是16进制(HEX)或二进制(BIN) | |
| 执行X156M(以5XDEMO.OBJ为例、HEX格式) | |
| 2.提示输入文件5XDEMO.OBJ | |
| 询问是何种文件输出方式(H/B)?选H | |
| 询问文件大小(单位是512字节)?输入1(16C54、12C508)或2(16C56)或4(16C57) | |
| 询问文件输出方式(0/1)?选1 | |
| 询问WDT开/关否?(视情况而定) | |
| 至此,可输出名为5XDEMO.DT文件(即EM78XX的源程序) | |
| 经过上述转换的程序仍可能存在下列问题,需要修正 | |
| 1.针对EMC内部RAM地址比PIC高10H,转换程序对RAM地址硬性加10H,如此时R4则转为R14,如果R4 | |
| 作间接寻址用,此时应--恢复R14转换R4;在间接寻址中,在赋给R4立即数的值转到EMC时该立即 | |
| 数也应加10H;相关的BANK选择位对应如(前为PIC,后为EMC)∶R3.5à R3.6,R3.6à R3.7. | |
| 2.PIC和EMC个别寄存器如标志寄存器R3.7、R4不一样,有些PIC程序中用了其中闲置的bit做标志 | |
| 位,到EMC程序中要检查有没有冲突; | |
| 3.PIC和EMC读入RA或口5,闲置位赋值不一样:如PIC16C54读RA.时RA的高四位为0,但EM78×56 | |
| 就不是为0,所以 EM78X56读出口5数据时要屏蔽高位,否则容易出错。 | |
| 针对PIC16C57程序转换的问题(1)R7转换后会变成17H,应恢复为07H;(2)为了避免程序跳 | |
| 转、R3的重定义而出现的错误,最好将16C57对应的4个PAGES映射到78P447的4个PAGES里去,方法 | |
| 是重定义转换程序的每页起始地址,200Hà400H,400Hà 800H,600Hà C00H。 |
|
表1 PIC和EMC单片机硬件资源对照表 |
|
Device |
EM78P152 EM78P153 |
PIC12C508 |
EM78P156 |
PIC16C54 |
EM78P447A |
PIC16C57 | |
|
Pins |
8/14 |
8 |
18 |
18 |
28/32 |
28 | |
|
Process |
CMOS |
CMOS |
CMOS |
CMOS |
CMOS |
CMOS | |
|
Architecture |
RISC |
RISC |
RISC |
RISC |
RISC |
RISC | |
|
Mask Version |
Yes |
N/A |
Yes |
N/A |
Yes |
N/A | |
|
Working Voltage |
2.5~5.5 |
2.5~5.5 |
2.5~5.5 |
2.5~6.25 |
2.3~5.5 |
2.5~6.25 | |
|
Program Memory |
512x13 |
512/1Kx12 |
1Kx13 |
512/1Kx12 |
4Kx13 |
2Kx12 | |
|
User Memory RAM |
32x8 |
25/41x8 |
48x8 |
25x8 |
148x8 |
72x8 | |
|
I/O pins |
6/12 |
5 |
12 |
12 |
20/24 |
20 | |
|
Instruction Clock |
2 |
4 |
2 |
4 |
2 |
4 | |
|
Oscillation Mode |
5 |
4 |
4,(5) |
4 |
4 |
4 | |
|
Instruction Set |
57 |
33 |
57 |
33 |
57 |
33 | |
|
Max.Operating |
XT |
16(4 clks) |
8(4 clks) |
18(2clks) |
20(4 clks) |
36(4 clks) |
20(4 clks) |
|
RC |
4(4 clks) |
4(4 clks) |
4(4 clks) |
4(4 clks) |
4(4 clks) |
8(4 clks) | |
|
Page Size |
1K |
512 |
1K |
512 |
1K |
512 | |
|
Available for CALL |
1K |
256 |
1K |
256 |
1K |
256 | |
|
Option Code |
13 |
N/A |
6 |
N/A |
7(13) |
N/A | |
|
Interrupt(In/Ex) |
3(1/2) |
N/A |
3(1/2) |
N/A |
3(1/2) |
N/A | |
|
Pull-High Pins |
6/8 |
N/A |
8 |
N/A |
10 |
N/A | |
|
Pull-Low Pins |
3/7 |
N/A |
7 |
N/A |
0 |
N/A | |
|
Wake-Up Pins |
6/8 |
N/A |
8 |
N/A |
10 |
N/A | |
|
Open-Drain Pins |
6/8 |
N/A |
8 |
N/A |
2 |
N/A | |
|
R-Option Pins |
0 |
N/A |
2 |
N/A |
2 |
N/A | |
|
Stack |
5 |
2 |
5 |
2 |
5 |
2 | |
|
POVD |
Yes |
N/A |
Yes |
N/A |
Yes |
N/A | |
|
Timer Modules |
8-bitx1 |
8-bitx1 |
8-bitx1 |
8-bitx1 |
8-bitx1 |
8-bitx1 | |
|
WDT |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes | |
|
|
|
PIC |
EMC |
PIC |
EMC | |||||
|
字 节 操 作 指 令 |
位 操 作 指 令 | |||||||
|
NOP |
NOP |
BCF |
f,b |
BC |
R,b | |||
|
NOVWF |
f |
R,A |
BSF |
f,b |
BS |
R,b | ||
|
CLRW |
|
CLRA |
|
BTFSC |
f,b |
JBC |
R,b | |
|
CLRF |
f |
CLR |
R |
BTFSS |
f,b |
JBS |
R,B | |
|
SUBWF |
f,0 |
SUB |
A,R |
控 制 指 令 | ||||
|
SUBWF |
f,1 |
SUB |
R,A |
OPTION |
CONTW |
|||
|
DECF |
f,0 |
DECA |
R |
SLEED |
SLEP |
|||
|
DECF |
f,1 |
DEC |
R |
CLRWDF |
f |
WDTC |
R | |
|
IORWF |
f,0 |
OR |
A,R |
TRIS |
K |
IOW |
||
|
IORWF |
f,1 |
OR |
R,A |
RETLW |
K |
RETL |
K | |
|
ANDWF |
f,0 |
AND |
A,R |
CALL |
K |
CALL |
K | |
|
ANDWF |
f,1 |
AND |
R,A |
GOTO |
K |
JMP |
K | |
|
XORWF |
f,0 |
XOR |
A,R |
MOVLW |
K |
MOV |
A,K | |
|
XORWF |
f,1 |
XOR |
R,A |
IORLW |
K |
OR |
A,K | |
|
ADDWF |
f,0 |
ADD |
A,R |
ANDLW |
K |
AND |
A,K | |
|
ADDWF |
f,1 |
ADD |
R,A |
XORLW |
K |
XOR |
A,K | |
|
MOVF |
f,0 |
A,R |
其 它 | |||||
|
MOVF |
f,1 |
R,R |
DAA |
|||||
|
COMF |
f,0 |
COMA |
R |
ENI |
||||
|
COMF |
f,1 |
COM |
R |
DISI |
||||
|
INCF |
f,0 |
INCA |
R |
RET |
||||
|
INCF |
f,1 |
INC |
R |
RETI |
||||
|
DECFSZ |
f,0 |
DJZA |
R |
CONTR |
||||
|
DECFSZ |
f,1 |
DJZ |
R |
IOR |
R | |||
|
RRF |
f,0 |
RRCA |
R |
SUB |
A,K | |||
|
RRF |
f,1 |
RRC |
R |
INT |
||||
|
RLF |
f,0 |
RLCA |
R |
ADD |
A,K | |||
|
RLF |
f,1 |
RLC |
R |
|||||
|
SWAPF |
f,0 |
SWAPA |
R |
|||||
|
SWAPF |
f,1 |
SWAP |
R |
|||||
|
INCFSZ |
f,0 |
JZA |
R |
|||||
|
INCFSZ |
f,1 |
JA |
R | |||||