久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)控制光電開關(guān)異常,仿真沒有這種情況

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:676703 發(fā)表于 2020-6-27 10:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
制作光電計數(shù)器,仿真和實物都一步步摸索過來... 又有想不明白的地方,請做過或者了解的朋友能指導(dǎo)或者分享一下經(jīng)驗、看法,謝謝大家!!
采用槽型光耦,當(dāng)計數(shù)是十的整數(shù)倍時,連接單片機(jī)的led報警閃爍2s,  下方還有兩個led的模塊是光電轉(zhuǎn)換模塊,一個led作電源指示(綠色),另一個作開關(guān)指示(紅色)。仿真圖如圖1,視頻是實物操作。
問題: 1、感覺當(dāng)物體經(jīng)過光電開關(guān)時,數(shù)碼管顯示的計數(shù)值和物體的速度有關(guān),速度快計數(shù)跳變少,速度慢計數(shù)很多!但仿真時不是這樣的啊。光電計數(shù)模塊的輸出作為外部中斷的輸入。
2、當(dāng)物體經(jīng)過速度變慢時,感覺物體進(jìn)入和出來,數(shù)碼管會產(chǎn)生兩次跳變!不應(yīng)該啊。。。
已經(jīng)檢查過實際電路,感覺沒有問題,應(yīng)該是代碼的問題?但是本人小白一個,而且仿真也沒有問題,現(xiàn)在很迷茫。。

代碼:
#include<AT89x51.H>
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16;          //對數(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ù)*****/
void delay(uchar t)
{
        uchar i,j;
        for(i=0;i<t;i++)
                for(j=13;j>0;j--);
}
/*****數(shù)碼管動態(tài)掃描*****/
void xianshi()
{
/***數(shù)據(jù)轉(zhuǎn)換***/
        c=date/10;  //求十位
        v=date%10;      //求個位
        P2=wei[0];
        P0=duan[c];
        delay(20);
        P2=wei[1];
        P0=duan[v];
        delay(20);
}
/*****中斷函數(shù)*****/
void ExtInt0() interrupt 0   //中斷服務(wù)程序
{
        dispcount++;        //外部中斷一次,計數(shù)加一
        if(dispcount>99)   //計數(shù)范圍0~50
                dispcount=1;
}

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

實物檢驗(視頻不大)

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

使用道具 舉報

來自 2#
ID:332444 發(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.7V,發(fā)光管通常選的電流在10毫安,那么,計算電阻=3.7/10=0.37K;
2接收端三極管電流按1:1計算即發(fā)光管電流多少三極管電流也多少,計算電阻=5V/10毫安=0.5K;
3仿真軟件其實可以粗略幫助確定電路參數(shù)的驗證。
4弄個仿真電路,放置信號源電壓5V,用示波器觀察817輸入與輸出波形。

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

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:319023 發(fā)表于 2020-6-27 11:55 | 只看該作者
有沒看光電模塊的規(guī)格書,  會不會 和光電模塊有關(guān)呢 ? 或者需要類似軟件去抖動的功能
回復(fù)

使用道具 舉報

地板
ID:94031 發(fā)表于 2020-6-27 14:17 | 只看該作者
慢時會有一個不穩(wěn)定階段,造成多計數(shù),要消除加施密特觸發(fā)。
回復(fù)

使用道具 舉報

5#
ID:332444 發(fā)表于 2020-6-27 23:47 | 只看該作者
因此說圖中設(shè)計參數(shù)存在問題,至少放大器應(yīng)該有控制增益的負(fù)反饋回路,而不是開環(huán)放大。
回復(fù)

使用道具 舉報

6#
ID:213173 發(fā)表于 2020-6-28 07:32 | 只看該作者
樓主的程序沒有嚴(yán)重問題,估計問題在自制的光電模塊。按下圖修改,在不接正反饋電阻的情況下調(diào)整電位器找到合適的比較電位,再接上正反饋電阻,這樣LM393比較器就具有施密特特性,可以有效改善可靠性。反饋電阻選擇范圍100KΩ~2.2MΩ。


回復(fù)

使用道具 舉報

7#
ID:332444 發(fā)表于 2020-6-28 09:32 | 只看該作者
先看一個演示,接著分析軟件部分。

回復(fù)

使用道具 舉報

8#
ID:676703 發(fā)表于 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)在問題已解決,謝謝!
回復(fù)

使用道具 舉報

9#
ID:676703 發(fā)表于 2020-7-1 16:37 | 只看該作者
wulin 發(fā)表于 2020-6-28 07:32
樓主的程序沒有嚴(yán)重問題,估計問題在自制的光電模塊。按下圖修改,在不接正反饋電阻的情況下調(diào)整電位器找到 ...

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕第100页 | 成人精品一区二区三区中文字幕 | 久久久久国产精品人 | 久久精品视频在线观看 | 久久久久免费精品国产 | 影音先锋成人资源 | 日韩电影免费在线观看中文字幕 | 国产精品成人一区二区三区夜夜夜 | 日韩欧美一级精品久久 | 99久久中文字幕三级久久日本 | jizz在线看片| 日韩精品区 | 色综合天天天天做夜夜夜夜做 | 一区二区三区播放 | 午夜影视 | 久久99精品视频 | 99re在线 | 红桃视频一区二区三区免费 | 久久精品久久久久久 | 九色视频网站 | av资源中文在线 | 欧美成人一区二免费视频软件 | 国产精品久久久久久模特 | 天天操天天干天天爽 | 成人精品在线观看 | 一级做a爰片性色毛片 | 人人爽日日躁夜夜躁尤物 | 中文在线一区二区 | av电影手机在线看 | 国产在线播 | 91操操操 | 亚洲国产精品美女 | av手机在线播放 | jizz在线看片 | 国产精品久久亚洲 | 成人不卡 | caoporn免费 | 久久91精品 | 日本精品在线播放 | 日韩快播电影网 | 成人性生交大片免费看中文带字幕 |