|
楼主 |
发表于 2023-9-13 16:00:32
|
显示全部楼层
读eep的部分,不过应该没有用
void ReadEEPdata(void){
EA=0;// TPOff(); //Disable_accessEXxram();
// 直接汇编写,省的概念混淆.
// 从EEP到XRAM
__asm
// eep地址0,对应movc其实是0x2000
mov dptr, #0x2000
mov r0, dpl
// Xram地址正常
mov r1, #0
// 总共16个数据,其实没有那么多,但是先多预一点
mov r3, 16
1$:
mov dpl, r0
clr a
movc a, @a+dptr
movx @r1, a
inc r0
inc r1
djnz r3, 1$
// 读EEP完成,开始解析XRAM中的数据
mov r0, #a1
movx a, @r0
mov _a1, a
inc r0
movx a, @r0
mov _a1+1, a
mov r0, #a2
movx a, @r0
mov _a2, a
inc r0
movx a, @r0
mov _a2+1, a
mov r0, #addr_a3bit
movx a, @r0
mov c, acc.0
mov _a3bit, c
mov r0, #a4
movx a, @r0
mov _a4, a
__endasm;
EA=1;
} |
|