原创 2.模拟开关灯

2007-4-13 22:44 4601 8 8 分类: MCU/ 嵌入式

1. 实验任务<?XML:NAMESPACE PREFIX = O />


如图1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。


2. 电路原理图


28e3e67c-5cd2-48f5-90bb-fa47008e8ea8.gif

41

3. 程序设计内容


(1).    开关状态的检测过程


    单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BITREL或者是JNB BITREL指令来完成对开关状态的检测即可。


(2).    输出控制


    如图1所示,当P1.0端口输出高电平,即P1.01时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.00时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。


4. 程序框图




点击看大图


2


5. 汇编源程序


                            ORG 00H


START:               JB P3.0,LIG


                            CLR P1.0


                           SJMP START


LIG:                    SETB P1.0


                            SJMP START


                           END


6. C语言源程序


#include


sbit K1=P3^0;


sbit L1=P1^0;


 


void main(void)


{


  while(1)


    {


      if(K1==0)


        {


          L1=0;                 //灯亮


        }


        else


          {


            L1=1;             //灯灭


          }


    }


}


7. 文件下载


rar 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条