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

QQ登錄

只需一步,快速開(kāi)始

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

關(guān)于MCU信號(hào)上升沿和下降沿都可以觸發(fā)繼電器工作的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
想做一個(gè)轉(zhuǎn)換器,就是信號(hào)上升沿和下降沿都可以觸發(fā)的情況,假如開(kāi)關(guān)控制給STC15F104w單片機(jī)的3腳上升沿觸發(fā)信號(hào),然后STC15F104w mcu的8腳輸出一個(gè)高電平持續(xù)1S,就變低電平。隨后STC15F104w的1腳檢測(cè)電位是高電平還是低電平,如果是高電平則3腳為下降沿觸發(fā),開(kāi)關(guān)控制給STC15F104w的3腳下降沿觸發(fā)信號(hào),然后STC15F104w的8腳輸出一個(gè)高電平持續(xù)1S,就變低電平。1腳高電平下降沿觸發(fā),1腳低電平上升沿觸發(fā),代碼該怎樣寫(xiě)哪位朋友可以幫個(gè)忙謝謝了!



1.jpg (31.71 KB, 下載次數(shù): 45)

1

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

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2019-1-24 20:35 | 只看該作者
STC15F104W的外部中斷0(INT0)和外部中斷1(INT1)觸發(fā)有兩種觸發(fā)方式,外部中斷2(INT2)和外部中斷3(INT3)只能下降沿觸發(fā)。STC15F104W的3腳是INT3,所以樓主的要求做不到。
回復(fù)

使用道具 舉報(bào)

板凳
ID:221879 發(fā)表于 2019-1-25 08:41 | 只看該作者
wulin 發(fā)表于 2019-1-24 20:35
STC15F104W的外部中斷0(INT0)和外部中斷1(INT1)觸發(fā)有兩種觸發(fā)方式,外部中斷2(INT2)和外部中斷3(INT3)只能 ...

如果上面方法不行,那么改成這個(gè)應(yīng)該可以實(shí)現(xiàn)吧,就是信號(hào)上升沿和下降沿都可以觸發(fā)的情況,假如開(kāi)關(guān)控制給STC15F104w單片機(jī)的7腳上升沿觸發(fā)信號(hào),然后STC15F104w mcu的8腳輸出一個(gè)高電平持續(xù)1S,就變低電平。隨后STC15F104w的1腳檢測(cè)電位是高電平還是低電平,如果是高電平則3腳為下降沿觸發(fā),開(kāi)關(guān)控制給STC15F104w的3腳下降沿觸發(fā)信號(hào),然后STC15F104w的8腳輸出一個(gè)高電平持續(xù)1S,就變低電平。1腳高電平下降沿觸發(fā),1腳低電平上升沿觸發(fā),代碼該怎樣寫(xiě)哪位朋友可以幫個(gè)忙謝謝了!
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2019-1-25 13:20 | 只看該作者
xbox007 發(fā)表于 2019-1-25 08:41
如果上面方法不行,那么改成這個(gè)應(yīng)該可以實(shí)現(xiàn)吧,就是信號(hào)上升沿和下降沿都可以觸發(fā)的情況,假如開(kāi)關(guān)控制 ...

給你寫(xiě)個(gè)程序,未經(jīng)驗(yàn)證,你試試。
#include <STC15F2K60S2.H>
//#include "reg51.h"
#include "intrins.h"
//-----------------------------------------------

sbit INT0= P3^2;//中斷入口
sbit OUT = P3^3;//輸出端口
sbit IN  = P3^4;//控制端口

void Init()                        //50毫秒@11.0592MHz
{
        AUXR &= 0x7F;        //定時(shí)器時(shí)鐘12T模式
        TMOD &= 0xF0;        //設(shè)置定時(shí)器16位自動(dòng)重載模式
        TL0 = 0x00;                //設(shè)置定時(shí)初值
        TH0 = 0x4C;                //設(shè)置定時(shí)初值
        TF0 = 0;                        //清除TF0標(biāo)志
//        TR0 = 1;                        //定時(shí)器0開(kāi)始計(jì)時(shí)
//        EX0 = 1;                   //使能INT0中斷
        EA = 1;                        //使能總中斷
        INT0 = 1;                //初始化中斷入口
        OUT = 0;                        //初始化輸出
        P3M0 = 0x10;        //P3.4推挽輸出
        P3M1 = 0x00;        //P3.4推挽輸出
}

void main()
{
        unsigned char count=0;//計(jì)數(shù)變量
        Init();
        while (1)
        {
                if(IN & INT0==1)
                {
                        IT0 = 1;                        //設(shè)置INT0的中斷類(lèi)型下降沿觸發(fā)
                        EX0 = 1;                        //使能INT0中斷
                }
                else if(IN | INT0==0)
                {
                        IT0 = 0;                        //設(shè)置INT0的中斷類(lèi)型上升沿觸發(fā)
                        EX0 = 1;                        //使能INT0中斷
                }
                else EX0 = 0;                //關(guān)閉INT0中斷
        }
        if(TF0==1)
        {
                TF0=0;
                count++;
                if(count==20)                //1秒
                {
                        count=0;
                        TR0 = 0;                //定時(shí)器0停止計(jì)時(shí)
                        OUT = 0;                //停止計(jì)時(shí)輸出
                }
        }
}
//外部中斷0服務(wù)程序
void exint0() interrupt 0 //INT0中斷入口
{
        TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
        OUT = 1;                //驅(qū)動(dòng)輸出(高電平)
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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