一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1553|回复: 19
收起左侧

A51指令求解

[复制链接]
发表于 2014-9-26 22:43 | 显示全部楼层 |阅读模式
高手帮忙看看,
INC DPTR等于
        ( CLR    C                  ;地址变换        ;数据指针+1
         MOV    A,DPL          ;地址变换
         ADD    A,#1          ;地址变换
         MOV    DPL,A          ;地址变换
         MOV    A,DPH         ;地址变换
         ADDC   A,#0         ;地址变换
         MOV    DPH,A          ;地址变换)

上面的这个吗

发表于 2014-9-26 23:03 | 显示全部楼层
功能上可以这样模拟,但CPU内部肯定不是这样执行的,应该是设置了专门的16位递增电路。
 楼主| 发表于 2014-9-26 23:08 | 显示全部楼层
reiyawea 发表于 2014-9-26 23:03
功能上可以这样模拟,但CPU内部肯定不是这样执行的,应该是设置了专门的16位递增电路。

主要是我使用INC DPTR会出错,不等于下面的那个
发表于 2014-9-26 23:10 | 显示全部楼层
具体的错是什么呢?还有芯片型号等一并报上。
 楼主| 发表于 2014-9-26 23:27 | 显示全部楼层
stc15l2k60s2,用下面的读的数据正常,用inc dptr读的数据不对
发表于 2014-9-26 23:28 | 显示全部楼层
贴代码
 楼主| 发表于 2014-9-26 23:38 | 显示全部楼层
本帖最后由 hexj0123 于 2014-9-26 23:40 编辑

太长了,我发文件吧。
oled测试.zip (6.56 KB, 下载次数: 106)

发表于 2014-9-26 23:51 | 显示全部楼层
您是用8051自带的MOVX向OLED写指令吧?以下是我的不成熟的看法:
INC DPTR指令执行速度太快,导致写入太快,OLED来不及接收。
解决方法:
1.加NOP延时
2.可尝试延长写入时间。
BUS_SPEED EQU 0A1H
MOV BUS_SPEED 03H
 楼主| 发表于 2014-9-26 23:57 | 显示全部楼层
reiyawea 发表于 2014-9-26 23:51
您是用8051自带的MOVX向OLED写指令吧?以下是我的不成熟的看法:
INC DPTR指令执行速度太快,导致写入太快 ...

不是,这个stc是双指针的,把ROM里面的数据写到RAM里,用单指针时也会出错。我看这个不好弄
发表于 2014-9-26 23:58 | 显示全部楼层
hexj0123 发表于 2014-9-26 23:57
不是,这个stc是双指针的,把ROM里面的数据写到RAM里,用单指针时也会出错。我看这个不好弄

可以另外写个程序,不断地加DPTR其后串口发送出来看。
因为手头无此芯片,只能劳您自己动手了。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-10 14:30 , Processed in 0.063852 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表