阅读:1170回复:10
新手提问的简单问题,还是关于d12命令和数据的
分不多,但是重要的是帮助了一个正需要帮助的人,不是么?
我的问题还是关于那个老问题: 首先说明我是采用总线方式的, mov dptr,#1 ;奇数地址就是命令 mov a,#d0h movx dptr,a mov dptr,#0 ;偶数地址就是数据 mov a,address movx dptr,a --------------------- 问题1:movx那句是dptr还是@dptr? 问题2:取数据的时候,按上面的例子那样发送一条取数据指令后从哪个地址取2个字节的数据阿?最好给个例子。(我实在想不通怎么取了) 问题3:上面例子中写入的地址是分配给USB的首地址还是末地址阿?地址的范围是什么呢?是什么地址啊?(ram还是rom或是把d12看成的外部寄存器的地址?) [编辑 - 11/19/02 by dacongtou] [编辑 - 11/19/02 by dacongtou] |
|
沙发#
发布于:2002-11-20 10:54
是不是问题太简单了,还是分给少了阿??
真的希望能给我个答案阿。我现在都快急死掉了。 |
|
板凳#
发布于:2002-11-20 15:17
回答问题1:应该是MOVX @DPTR,A
问题2:MOV A,#0F4H ;读中断寄存器的过程 MOV DPTR,#00F3H ;奇地址,写指令 MOVX @DPTR,A MOV DPTR,#00F2H ;偶地址,读数据 MOVX A,@DPTR ;从USB中断寄存器中读2数据 MOV 20H,A ;该数据在A中,分别放入20H MOVX A,@DPTR ;21H单片机内部RAM里 MOV 21H,A 问题3:上面的例子中的奇偶地址是给D12的,在这种方式中,D12的ALE要和单片机的ALE相连,D12的A0要接高电平。00F3和00F2地址是把D12看做是外部RAM,在D12内部有逻辑判断,根据ALE,和D0引脚的信号来判断是写指令还是数据。 清楚不: :D |
|
地板#
发布于:2002-11-20 16:32
还是有点不太明白,那要是我要设置模式命令应该是f3h
那么我 MOV A,#0F3H MOV DPTR,#XXH ;这里的XX应该添什么阿.. MOVX @DPTR,A |
|
地下室#
发布于:2002-11-21 10:59
还是00F3H,DPTR的指只有两种,00F3H(奇地址),是往D12写指令时用到的,00F2H(偶地址)是从D12读数据或往D12写数据是用到的。 :D
|
|
5楼#
发布于:2002-11-21 11:30
o,那你的意思就是说只要是奇地址就用00F3H,偶地址就用00F2H
是必须用这个地址还是随便那个奇地址都可以.? |
|
6楼#
发布于:2002-11-21 11:33
o,那你的意思就是说只要是奇地址就用00F3H,偶地址就用00F2H 只要是奇地址就行,不一定非要用00F3H. |
|
|
7楼#
发布于:2002-11-21 11:35
楼上说的对! :D
|
|
8楼#
发布于:2002-11-21 15:57
可是地址的范围是什么呢?什么命令用什么地址有什么规定么?
-------------------------------------- 还是00F3H,DPTR的指只有两种,00F3H(奇地址),是往D12写指令时用到的,00F2H(偶地址)是从D12读数据或往D12写数据是用到的。 ---------------------------------------------- 那不是不同的命令用了同样的地址吗..这样也可以么.. |
|
9楼#
发布于:2002-11-21 17:13
命令编码是由D12内部进行处理的,只管根据手册向该地址写就行了!
|
|
|
10楼#
发布于:2002-11-22 08:26
噢.我明白了.那就是说就用这个#00F3和#00F2就可以了.
谢谢各位的回答. |
|