51/AVR单片机技术驿站!  <在线翻译> 淘宝店    便利工具    特色网址   打造无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

 首页>> 常规知识 电路图集 学习MCU 单片机文章 查器件PDF 下载中心 单片机教程 学习产品 购买联系 在线留言 RRS
当前位置:首页 > C51教程 > 详细内容
【吉林科技大学】第三章:89S51实践课题--模拟开关灯
发布时间:2009-6-16  阅读次数:1392  字体大小: 【】 【】【

Lesson 3

1. 实验任务
如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2. 电路原理图
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 <AT89X51.H>
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
  while(1)
    {
      if(K1==0)
        {
          L1=0;                 //灯亮
        }
        else
          {
            L1=1;             //灯灭
          }
    }
}

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:479780666 522422171 86-0755-28650237
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号