首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教有关2407A数据总线的问题

ioport 是用来定义io口的一个关键字

语法:   ioport type porthex_num  ;
其中:
      ioport     keyword,表明这是一个端口变量
      type      必须是 char short int 或 unsigned int
      porthex_num   端口号,hex_num是一个十六进制数,代表IO空间的地址

注:端口定义放在函数中无效,必须在文件级的位置。

所以,ioport unsigned port3;  表示定义了一个unsigned类型的IO口,其地址为 003H

例:

ioport int port10;    //定义了一个整型的IO口,其地址为 010H
int a;int b;int c;
extern void foo(int);

void  func( )
{
     port10 = a;   //把a从port10送出
     b = port10;   //读操作
     foo(port10);  //可以作为函数的参数
     c = port10+b;
     port10 += a;  // 可以放在表达式中操作

}

如果对定义IO口的地址有疑问的话,可以看下C compiler 的输出文件。

比如   port10 = a;  被编译为以下的汇编语句:

                MOVZ   DP,#_a
                OUT    *(010H),@_a


     

不是很明白你的意思,你的数据线是连到哪里呢?外设?存储器?
返回列表