关于51中的c编程问题!小弟刚学单片机的。。。

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:31:29
比如P0口接个373,51的ALE接373的LE,好像很多的访问外部地址都是这么接的!
但是,听说ALE是51自己控制的,电平不可以改变!汇编可以用MOVX,而c语言,要用什么方法,或什么指令控制373的锁存呢?

或者说,如过用c编程,是不是根本就不可以用那个ALE引脚呢???
如果满意,会加分!!!

一楼的人真“厉害”汇编语言里面基本指令操作都没有的功能C语言里面怎么会有,C编译器首先是要把C语言转成汇编,然后按照汇编指令对应的二进制编码得到最后的HEX文件,大哥你真行...
在C语言里面首先要包含一个 #include<absacc.h>
然后用个宏汇编 #define WRITE(A,B) XBYTE[A]=B
上面定义的WRITE(A,B) 意思是把B写入到地址A中这个调用时
WRITE(0x0001,x5a);
上面这个语句会自动调用总线实现ALE WR 以及P0、P2口的配合控制
读时用#define RD(A)
调用时dat=RD(A);
也将自动调用总线功能

以上的语句在汇编中就是MOVX功能

ALE谁说不能改变了?写C的时候需要用到373的时候写ALE=1就行了阿。你可以多看看别人写的程序。如8255接口扩展的C程序 你就能明白了