欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)控制光電開(kāi)關(guān)異常,仿真沒(méi)有這種情況 [打印本頁(yè)]

作者: carrot1111    時(shí)間: 2020-6-27 10:26
標(biāo)題: 單片機(jī)控制光電開(kāi)關(guān)異常,仿真沒(méi)有這種情況
制作光電計(jì)數(shù)器,仿真和實(shí)物都一步步摸索過(guò)來(lái)... 又有想不明白的地方,請(qǐng)做過(guò)或者了解的朋友能指導(dǎo)或者分享一下經(jīng)驗(yàn)、看法,謝謝大家!!
采用槽型光耦,當(dāng)計(jì)數(shù)是十的整數(shù)倍時(shí),連接單片機(jī)的led報(bào)警閃爍2s,  下方還有兩個(gè)led的模塊是光電轉(zhuǎn)換模塊,一個(gè)led作電源指示(綠色),另一個(gè)作開(kāi)關(guān)指示(紅色)。仿真圖如圖1,視頻是實(shí)物操作。
問(wèn)題: 1、感覺(jué)當(dāng)物體經(jīng)過(guò)光電開(kāi)關(guān)時(shí),數(shù)碼管顯示的計(jì)數(shù)值和物體的速度有關(guān),速度快計(jì)數(shù)跳變少,速度慢計(jì)數(shù)很多!但仿真時(shí)不是這樣的啊。光電計(jì)數(shù)模塊的輸出作為外部中斷的輸入。
2、當(dāng)物體經(jīng)過(guò)速度變慢時(shí),感覺(jué)物體進(jìn)入和出來(lái),數(shù)碼管會(huì)產(chǎn)生兩次跳變!不應(yīng)該啊。。。
已經(jīng)檢查過(guò)實(shí)際電路,感覺(jué)沒(méi)有問(wèn)題,應(yīng)該是代碼的問(wèn)題?但是本人小白一個(gè),而且仿真也沒(méi)有問(wèn)題,現(xiàn)在很迷茫。。

代碼:
#include<AT89x51.H>
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位碼
uchar wei[2]={0X01,0X02}; //位的控制端
uint c,v,date; //定義數(shù)據(jù)類型
uint dispcount=0;

sbit led=P1^4;         //定義P1.4口是led
/*****延時(shí)函數(shù)*****/
void delay(uchar t)
{
        uchar i,j;
        for(i=0;i<t;i++)
                for(j=13;j>0;j--);
}
/*****數(shù)碼管動(dòng)態(tài)掃描*****/
void xianshi()
{
/***數(shù)據(jù)轉(zhuǎn)換***/
        c=date/10;  //求十位
        v=date%10;      //求個(gè)位
        P2=wei[0];
        P0=duan[c];
        delay(20);
        P2=wei[1];
        P0=duan[v];
        delay(20);
}
/*****中斷函數(shù)*****/
void ExtInt0() interrupt 0   //中斷服務(wù)程序
{
        dispcount++;        //外部中斷一次,計(jì)數(shù)加一
        if(dispcount>99)   //計(jì)數(shù)范圍0~50
                dispcount=1;
}

/*******************************************************************************
* 函 數(shù) 名         : Timer0Init
* 函數(shù)功能                   : 定時(shí)器0初始化
*******************************************************************************/
void Timer0Init()
{
        TMOD|=0X01; //選擇為定時(shí)器0模式,工作方式1,僅用TR0打開(kāi)啟動(dòng)。
        TH0=0XFC;   //給定時(shí)器高八位賦初值,定時(shí)1ms
        TL0=0X18;        
        ET0=1;      //打開(kāi)定時(shí)器0中斷允許
        EA=1;       //打開(kāi)中斷總開(kāi)關(guān)
        TR0=1;      //打開(kāi)定時(shí)器0                        
}
/*****主函數(shù)*****/
void main()
{
//        static u16 i;
        TCON=0x01;     //中斷設(shè)置 TCON寄存器
        IE|=0x81;       //IE外部中斷0請(qǐng)求標(biāo)志位
        Timer0Init();  //定時(shí)器0初始化
        while(1)
        {
                date=dispcount;
                xianshi();           //調(diào)用數(shù)碼管顯示   
        }
}
/*******************************************************************************
* 函 數(shù) 名         : void Timer0() interrupt 1
* 函數(shù)功能                   : 定時(shí)器1中斷函數(shù)
*******************************************************************************/
void Timer0() interrupt 1
{
        static u16 i;
        TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
        TL0=0X18;
        if(dispcount%10==0&&dispcount!=0)      
        {
                i++;
                if(i%100==0)       //100ms
                        led=~led;
                if(i>=2000)       //時(shí)間大于2s
                {
                        i=2000;
                        led=1;
                }
        }
        else
        {
                led=1;   
                i=0;
        }
}


51hei圖片20200627101759.png (36.74 KB, 下載次數(shù): 52)

51hei圖片20200627101759.png

VID_20200627100049.rar

11.66 MB, 下載次數(shù): 3

實(shí)物檢驗(yàn)(視頻不大)


作者: 隨風(fēng)飄遠(yuǎn)    時(shí)間: 2020-6-27 11:55
有沒(méi)看光電模塊的規(guī)格書,  會(huì)不會(huì) 和光電模塊有關(guān)呢 ? 或者需要類似軟件去抖動(dòng)的功能
作者: xuyaqi    時(shí)間: 2020-6-27 14:17
慢時(shí)會(huì)有一個(gè)不穩(wěn)定階段,造成多計(jì)數(shù),要消除加施密特觸發(fā)。
作者: xianfajushi    時(shí)間: 2020-6-27 23:44
1發(fā)光管通常導(dǎo)通電壓是硅三極管結(jié)電壓的2倍,這樣比較好記,即:0.6-0.7*2=1.2-1.4,供電若使用5V則5-1.3=3.7V,發(fā)光管通常選的電流在10毫安,那么,計(jì)算電阻=3.7/10=0.37K;
2接收端三極管電流按1:1計(jì)算即發(fā)光管電流多少三極管電流也多少,計(jì)算電阻=5V/10毫安=0.5K;
3仿真軟件其實(shí)可以粗略幫助確定電路參數(shù)的驗(yàn)證。
4弄個(gè)仿真電路,放置信號(hào)源電壓5V,用示波器觀察817輸入與輸出波形。

從圖上波形看,基本符合粗略計(jì)算的值,同時(shí)也可看出,電壓的幅值可以直接送去IO用,不需要再次征信處理。
5光耦817是封閉型的,槽型的基本也差不多,甚至可能需要更大的發(fā)光管電流,比如50毫安也未可知,因此,實(shí)際電路用可調(diào)電阻調(diào)節(jié)。
6小的發(fā)光管電流經(jīng)過(guò)開(kāi)環(huán)放大整形,開(kāi)環(huán)放大倍數(shù)極高,極大可能出現(xiàn)干擾波形被認(rèn)為是計(jì)數(shù)波形,因而極有可能出現(xiàn)不穩(wěn)定現(xiàn)象。


作者: xianfajushi    時(shí)間: 2020-6-27 23:47
因此說(shuō)圖中設(shè)計(jì)參數(shù)存在問(wèn)題,至少放大器應(yīng)該有控制增益的負(fù)反饋回路,而不是開(kāi)環(huán)放大。
作者: wulin    時(shí)間: 2020-6-28 07:32
樓主的程序沒(méi)有嚴(yán)重問(wèn)題,估計(jì)問(wèn)題在自制的光電模塊。按下圖修改,在不接正反饋電阻的情況下調(diào)整電位器找到合適的比較電位,再接上正反饋電阻,這樣LM393比較器就具有施密特特性,可以有效改善可靠性。反饋電阻選擇范圍100KΩ~2.2MΩ。



作者: xianfajushi    時(shí)間: 2020-6-28 09:32
先看一個(gè)演示,接著分析軟件部分。


作者: carrot1111    時(shí)間: 2020-7-1 16:35
xianfajushi 發(fā)表于 2020-6-27 23:44
1發(fā)光管通常導(dǎo)通電壓是硅三極管結(jié)電壓的2倍,這樣比較好記,即:0.6-0.7*2=1.2-1.4,供電若使用5V則5-1.3=3 ...

解釋很有助于我理解,現(xiàn)在問(wèn)題已解決,謝謝!
作者: carrot1111    時(shí)間: 2020-7-1 16:37
wulin 發(fā)表于 2020-6-28 07:32
樓主的程序沒(méi)有嚴(yán)重問(wèn)題,估計(jì)問(wèn)題在自制的光電模塊。按下圖修改,在不接正反饋電阻的情況下調(diào)整電位器找到 ...

之前考慮不細(xì)致,現(xiàn)在用了可調(diào)電阻,已經(jīng)實(shí)現(xiàn)預(yù)期需求。謝謝!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1