本人51单片机小白,刚刚开始学习单片机。最近看到简单的流水灯的设计,在文件中输入#include<reg52.h>Void main(){P1=0xaa;}对单片机P1口的8个I/O口同时进行输入,0x表示后面的数据以十六进制表示,十六进制的aa在二进制中为10101010,那么对应发光二极管的1.3.5.7亮,2.4.6.8灭,也可以将0xaa转化为十进制的170,如“P1=170;”以上是郭天祥主编的51单片机教程中的一段,我拿着单片机进行尝试,流水灯也确实亮了。但是,当我尝试对P1口的赋值做出改变时,结果却出了问题。我输入P1=0xab,十六进制的ab转化成二进制应该是10101011,对应的应该是发光二极管1.3.5.7.8亮,然而实际上亮的灯却是3.5.7P1=0xac,转化为二进制10101100对应发光二极管1.3.5.6亮,但实际上亮的是1.2.5.7。P1=0xad,转化为二进制10101101对应发光二极管1.3.5.6.8亮,但实际上亮的是2.5.7。求大神指教,这是怎么回事。
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
看得出来,应该是你没有把原理图吃透,也就是硬件问题:可能是教程里的对位写1灯亮,而你的硬件刚好相反,对位写0灯亮,而且牵涉高低位问题
大神,那我这个得怎么处理啊,怎么控制流水的灯?
好的,我试试,谢谢大神了
客气,小事
一周热门 更多>