综合资讯 技术文章 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

电子技术 | 技术资料 | 嵌入式系统 | 单片机专题 | DSP专题
EDA/PLD专题 | 电源技术专题 | 电子制作专题 | 其他综合 | 芯片选型

所在的位置:首页在线阅读单片机专题AT89S51单片机实验及实践正文
 
2.模拟开关灯

1. 实验任务

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

2. 电路原理图

图4.2.1

3. 系统板上硬件连线

(1).    把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”      区域中的L1端口上;

(2).    把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;

4. 程序设计内容

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

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

(2).    输出控制

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

5. 程序框图

开始

K1开关闭合了吗?

L1亮

L1灭

图4.2.2

6. 汇编源程序

                            ORG 00H

START:               JB P3.0,LIG

                            CLR P1.0

                           SJMP START

LIG:                    SETB P1.0

                            SJMP START

                           END

7. C语言源程序

#include

sbit K1=P3^0;

sbit L1=P1^0;

void main(void)

{

  while(1)

    {

      if(K1==0)

        {

          L1=0;                 //灯亮

        }

        else

          {

            L1=1;             //灯灭

          }

    }

}


返回 上一页 下一页   信息发布:工号06   转引自: 【 】 【打印】 【关闭

关于我们 ┋ 友情链接


深圳市福田区海滨广场福业大厦12C
电话:0755-88305880 25960580 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号