找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3603|回复: 1
打印 上一主题 下一主题
收起左侧

如何用普通IO测脉宽 脉冲开关检测有脉冲时,无论K1,K2工作在什么状况,两灯关闭,...

[复制链接]
跳转到指定楼层
楼主
ID:80436 发表于 2015-5-22 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现我假设K1,K2为两开关, dector 为脉冲检没开关。K1控制一个灯,K2控制一个灯。脉冲开关检测有脉冲时,无论K1,K2工作在什么状况,两灯关闭,另一灯亮

#include <reg52.h>
#define uchar unsigned char
void timer1_initial(void) ;
sbit d1=P1^0;
sbit d2=P1^1;
//sbit d3=P1^2;
sbit dector=P2^7;
sbit  sw2=P3^2;
//sbit  sw3=P3^3;
bit flag;
uchar key1,key2,a,b;
void main (void)
{
        timer1_initial() ;
        d1=0;
        d2=0;                 
        while(1)
        {
               
                 while(( sw2==0)&&(flag==0))
                {
                  d1=1;
                  d2=0;                  
                }
                while( sw2==1)
                {
                  d1=0;
                  d2=0;                          
                }
       
                while((flag==1) &&(sw2==0))
                {
                         d1=1;
                        d2=1;
                }                       
                       
               
        }
}

void timer1_initial(void)
{
        TMOD |=0X20;
        TH1=0X38;
        TL1=0X38;
        TR1=1;
        ET1=1;
        EA=1;
}
void interrupt_serveice()interrupt 3
{       
        TH1=0X38;
        TL1=0X38;
        key1=key2;
        key2=dector;
        if((key1==1)&&(key2==0))
        flag=1;
        else
        flag=0;       
        TF1=0;               
}


在仿真进,脉冲控制时,那灯不停的闪

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:80819 发表于 2015-5-22 15:56 | 只看该作者
在线等带
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表