请教指令

[复制链接]
 楼主| haibian826 发表于 2007-8-10 10:10 | 显示全部楼层 |阅读模式
请教一下:<br /><br />PORTR&nbsp;01H,*AR2&nbsp;<br /><br />PORTW&nbsp;*AR1+,02H&nbsp;<br /><br />我对PORTR&nbsp;PORTW这两个指令很不理解,上面的01H,02H是什么地址呢?不是要对I/O口操作吗?怎么不像单片机一样,直接用MOV&nbsp;P1,#0FFH&nbsp;就把数据送到P1口的8根线上了。PORTR&nbsp;01H,*AR2如何实现PA口操作呢?请指教!我找了好几本书,都只是一笔代过,所以想问问各位。希望能得到大家的回复,谢谢<br />
computer00 发表于 2007-8-10 10:18 | 显示全部楼层

端口地址。相当于51的P1,P2那些。

  
 楼主| haibian826 发表于 2007-8-10 10:22 | 显示全部楼层

谢谢

嗯,我知道是端口地址<br /><br />它平时如何用呢?总不能随便设置01h&nbsp;&nbsp;,&nbsp;02h或者其他的地址阿<br /><br />应该有一个说法阿<br /><br />谢谢指教!<br /><br />
computer00 发表于 2007-8-10 10:32 | 显示全部楼层

那看你设备接在什么地址上啊,接在哪个端口地址,就操作

  
smartdsp 发表于 2007-8-10 10:38 | 显示全部楼层

port就相当于mov,只是数据读写到port端口。

  
 楼主| haibian826 发表于 2007-8-10 10:41 | 显示全部楼层

麻烦您帮我看看这个程序中的PORTR 和 PORTW指令

我想操作led:&nbsp;实现一8位LED灯泡由左到右循环闪烁<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.title&nbsp;&nbsp;&nbsp;&nbsp;&quot;bubble.asm&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mmregs<br />STACK&nbsp;&nbsp;&nbsp;&nbsp;.usect&nbsp;&nbsp;&nbsp;&nbsp;&quot;STACK&quot;,5h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.bss&nbsp;&nbsp;&nbsp;&nbsp;y,1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.def&nbsp;&nbsp;&nbsp;&nbsp;start<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.data<br />PA0&nbsp;&nbsp;&nbsp;&nbsp;.set&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;.text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />start:&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;#7000,SWWSR&nbsp;&nbsp;&nbsp;&nbsp;;设等待位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;#2,AR3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将辅助寄存器AR3设为2&nbsp;(乘2,实现左移)<br />&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;#6,AR1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将辅助寄存器AR1设为6&nbsp;(左移7次)<br />&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;#3,AR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将辅助寄存器AR2设为3&nbsp;&nbsp;(循环执行4次)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LD&nbsp;&nbsp;&nbsp;AR3,T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将T(乘法寄存器)设为2<br />loop1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LD&nbsp;&nbsp;&nbsp;#1,A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;A寄存器值为1<br />&nbsp;&nbsp;&nbsp;&nbsp;STL&nbsp;&nbsp;A,@y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;y=1<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTW&nbsp;&nbsp;&nbsp;&nbsp;@y,PA0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;输出y地址内的值到输出口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;&nbsp;&nbsp;#10000,AR4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将辅助寄存器AR4设为10000<br />loop3:&nbsp;&nbsp;&nbsp;&nbsp;RPT&nbsp;&nbsp;&nbsp;&nbsp;#10000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;重复执行下一程序10001次<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;等待<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BANZ&nbsp;&nbsp;&nbsp;&nbsp;loop3,*AR4-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;循环AR4值(10000)+1次<br />loop2:&nbsp;&nbsp;&nbsp;&nbsp;MPY&nbsp;&nbsp;&nbsp;&nbsp;@y,A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将y×T,其值存入A寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;STL&nbsp;&nbsp;&nbsp;&nbsp;A,@y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将A内值存入y地址中<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTW&nbsp;&nbsp;&nbsp;&nbsp;@y,PA0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;输出y地址值到输出口<br />&nbsp;&nbsp;&nbsp;&nbsp;STM&nbsp;&nbsp;&nbsp;&nbsp;#10000,AR5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;将辅助寄存器AR5设为10000<br />loop4:&nbsp;&nbsp;&nbsp;&nbsp;RPT&nbsp;&nbsp;&nbsp;&nbsp;#10000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;实现第8个灯跳转到第1个灯时的时间延迟&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;BANZ&nbsp;&nbsp;&nbsp;&nbsp;loop4,*AR5-<br />&nbsp;&nbsp;&nbsp;&nbsp;BANZ&nbsp;&nbsp;&nbsp;&nbsp;loop2,*AR1-<br />&nbsp;&nbsp;&nbsp;&nbsp;BANZ&nbsp;&nbsp;&nbsp;&nbsp;loop1,*AR2-<br />end:&nbsp;&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
computer00 发表于 2007-8-10 11:01 | 显示全部楼层

你要注意的是,这里的端口跟51的端口意思是不一样的

这个端口没有锁存的,其实跟51的外部RAM访问差不多,只不过它用自己一套总线和指令而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

227

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

49

主题

227

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部