找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3624|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

如何用普通IO測(cè)脈寬 脈沖開關(guān)檢測(cè)有脈沖時(shí),無論K1,K2工作在什么狀況,兩燈關(guān)閉,...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:80436 發(fā)表于 2015-5-22 15:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
現(xiàn)我假設(shè)K1,K2為兩開關(guān), dector 為脈沖檢沒開關(guān)。K1控制一個(gè)燈,K2控制一個(gè)燈。脈沖開關(guān)檢測(cè)有脈沖時(shí),無論K1,K2工作在什么狀況,兩燈關(guān)閉,另一燈亮

#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;               
}


在仿真進(jìn),脈沖控制時(shí),那燈不停的閃

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:80819 發(fā)表于 2015-5-22 15:56 | 只看該作者
在線等帶
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表