单片机在Keil中用C语言怎样在PO口输出地址和数据,怎样输出16位的地址和数据。
P0=0Xxx;此时是输出地址?还是数据?ALE信号怎么变化?怎样来区分是输出地址还是数据呢?我现在就是想在PO口输出地址,但不知道该怎么做,而且单片机的ALE信号根本没...
P0 = 0Xxx;
此时是输出地址?还是数据?ALE信号怎么变化?
怎样来区分是输出地址还是数据呢?
我现在就是想在PO口输出地址,但不知道该怎么做,而且单片机的ALE信号根本没什么变化,从启动后就一直高电平。
书上不是说ALE能输出1/6的晶振频率的信号吗? 展开
此时是输出地址?还是数据?ALE信号怎么变化?
怎样来区分是输出地址还是数据呢?
我现在就是想在PO口输出地址,但不知道该怎么做,而且单片机的ALE信号根本没什么变化,从启动后就一直高电平。
书上不是说ALE能输出1/6的晶振频率的信号吗? 展开
3个回答
展开全部
输出的是二进制数,至于是地址是数据要看你的外设控制端口的接法!
ALE只是外部存储器的读写使能信号!
只有在单片机没有任何程序,刚上电的时候,ALE输出1/6的Fosk,
希望可以给你建议!
ALE只是外部存储器的读写使能信号!
只有在单片机没有任何程序,刚上电的时候,ALE输出1/6的Fosk,
希望可以给你建议!
展开全部
单片机输出的本来就都是数据,什么数据地址的,单片机才不管,只是你让单片机送出来的数据作什么,这个问题是很容易混淆。
比如控制1602,你先给它送个数据,0x30,那你说是地址还是数据?单片机当然不知道,而是如果此时1602识别成是给它的命令,它就执行相应的动作,如果此时它需要的是数据,那么它就现实相应的数据,是你根据电路的需要告诉单片机要做些什么,关键的执行者在于你,单片机只是在执行你的意愿,不是智能的。不知道我说的是不是你纠结的?或许我跑题了。
比如控制1602,你先给它送个数据,0x30,那你说是地址还是数据?单片机当然不知道,而是如果此时1602识别成是给它的命令,它就执行相应的动作,如果此时它需要的是数据,那么它就现实相应的数据,是你根据电路的需要告诉单片机要做些什么,关键的执行者在于你,单片机只是在执行你的意愿,不是智能的。不知道我说的是不是你纠结的?或许我跑题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-10
展开全部
*((uchar*)0x000E) = 0x00;
这句话应该是向外存地址为0x000e的地址单元中写入0x00.
但在proteus中仿真的结果是ALE,WR根本就没什么变化,而且PO口的电平处于不确定状态。
这句话应该是向外存地址为0x000e的地址单元中写入0x00.
但在proteus中仿真的结果是ALE,WR根本就没什么变化,而且PO口的电平处于不确定状态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
更多回答(1)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询