2019-07-15 10:27发布
人中狼 发表于 2017-6-15 13:59 写反了,应该是temp
人中狼 发表于 2017-6-15 14:24 在51里,直接对引脚进行位赋值的话,得这个引脚可以进行位寻址,否则只能对整个端口赋值。进行位赋值时,可以用sbit对想赋值的引脚进行命名,然后对这个名称进行赋值就可以了。 比如sbit led_0 = P1^0;led_0 = 1;这样就可以置P1.0为1了。这是51里的 ...
人中狼 发表于 2017-6-15 18:56 没用过AVR,你需要查一下芯片手册,STM32是有专门的寄存器来给引脚置1和置0,51里可以用与和或的方法赋值,比如置P1.0为1,可以是P1 |= 0X01,置P1.0为0,可以是P1 &=0XFE。
最多设置5个标签!
确实,最近怎么老范这种错误,估计是看1<<PA2多了,还有基本功不扎实,左右移没记住,虽然写51也用但没在意。
所以我觉得51比AVR方便啊,像1602里面写IO口时序的时候,AVR的位控制用起来太不方便了。
AVR里面我要把一个变量(不确定的0,1)赋给位,应该怎么实现呢?
51可以直接P1.1=a,但是AVR不可以,只能是PORTA=0xnn,也就是只能8位一起操作,而且还是赋常量,变量我还没想出来怎么用逻辑来实现,貌似逻辑实现不了。PORTA |= (a<<n),如果PORTA的n位是1,而我的变量a是0,那就不行了,而用&也有相应问题。
一周热门 更多>