返回信息流之前有C++ Delphi php等基础,做过项目
现在有个紧急任务,求熟悉uVision4 C51的同学当面指点一下,谢谢
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #15159同步于 2014/12/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
求拜师入门 uVision4 C51
nlrabbit
2014/12/5镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
请教以下代码:
sfr IEN0 = 0xA8;
sbit EA = IEN0^7;
文档里说IEN0是“Interrupt Enable 0 Register”,但是没有EA的说明,这个EA是个啥?
http://wenku.baidu.com/view/8c663d5077232f60ddcca114.html
你可以到上面链接中去看,顺便解释下:
sfr用于将一个单片机的特殊功能寄存器(special function register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to)该寄存器。
sbit与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。
IEN0和EA分别代表,中段寄存器中外部中断0控制位和总中断控制位。通过对IEN0置位可以打开外部中断0,但是EA是所有中断的开关,EA使能,外部中断0才能工作,否则包括定时中断等其他中断即使置位了,只要EA不使能都不能工作。 中断寄存器的寻址地址是A8,是个8位寄存器,最低位正好是IEN0。所以
sfr IEN0 = 0xA8; 这句是将中断寄存器赋值给IEN0,按理这里不应该使用IEN0,应该使用IE指代
而EA正好在第7位,
sbit EA = IEN0^7;
这里是将中断寄存器第7位赋值给了EA。
同理,正常IEN0应该为 sbit EA = IE^0;
【 在 nlrabbit 的大作中提到: 】
: 能分别解释一下IEN0和EA分别是啥么?谢谢
: