独立按键控制LED显示二进制

本例仿真中,LED共阳极方式连至P1口,且按低位到高位排列
                     ↓为实现显示二进制式
一般,单片机上电默认是高电平,此时:P1=1111 1111(即十六进制的F),所有灯不亮
                     ↓
⑴以亮的方式递增显示二进制
    由仿真电路图中,可知第一个LED是低位的开始,要让第一个LED亮起表示0001,此时对应
    P1.0=0,则P1=1111 1110,往下分析可得:1111→1110→1101→ 1100→1011→1010 →……
                                                                          F     →E     →D     →C      →B      →A      →……
    ①可以发现,每次倒叙都是上次-1的结果,即P1=P1-1或P1--。于是采用自减法:
独立按键控制LED显示二进制_第1张图片独立按键控制LED显示二进制_第2张图片

     ②~0001=1110→~0010=1101→~0011=1100→……,可以发现是1111逐渐+1同时取反的结果,
        于是采用自增法:
独立按键控制LED显示二进制_第3张图片独立按键控制LED显示二进制_第4张图片
   此时发现,与目标不符合,分析代码的逻辑为:
                              开始时P0=1111 1111;
                                      ~ P0 =0000 0000;
                                          P0++=0000 0001(即在共阳极LED下,第一个不亮其它全亮)
  分析后得知,需1111 1111自增的同时取反,故给这个1111 1111赋值给一个变量,对变量进行
  操作:
独立按键控制LED显示二进制_第5张图片独立按键控制LED显示二进制_第6张图片

⑵以灭灯的方式递增显示二进制则与以上的运算符相反即可。

你可能感兴趣的:(51单片机入门,单片机)