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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3727|回復: 3
打印 上一主題 下一主題
收起左側

求教,對射式光電開關連接單片機的使用方法

[復制鏈接]
跳轉到指定樓層
樓主
      需要使用51單片機做一個模擬流水線產品計數器的設計,之前沒有用過對射式光電開關(如下圖1)。仿真圖和單片機程序都設計得差不多,現在拿到器件,看著說明書也不太懂,希望用過這個器件或者知道怎么用的朋友幫忙解釋一下,非常感謝。仿真圖里接單片機中斷串口的開關,模擬光電開關的作用,之前閱讀資料后寫的代碼,當開關輸入一個低電平的時候,單片機外部中斷計數一次。本人是初學單片機的小白==

#include<AT89x51.H>
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16;          //對數據類型進行聲明定義
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; //定義數據類型
uint dispcount=0;

sbit led=P1^4;         //定義P1.4口是led
/*****延時函數*****/
void delay(uchar t)
{
        uchar i,j;
        for(i=0;i<t;i++)
                for(j=13;j>0;j--);
}
/*****數碼管動態掃描:數據轉換的實現*****/
void xianshi()
{
        c=date/10;      //求十位
        v=date%10;      //求個位
        P2=wei[0];                //2.0口位選高位
        P0=duan[c];                //十位數的段選
        delay(50);
        P2=wei[1];                //2.1口位選地位
        P0=duan[v];                //個位數的段選
        delay(50);
}
/*****中斷函數:外部中斷的實現*****/
void ExtInt0() interrupt 0   //中斷服務程序
{
        dispcount++;        //外部中斷一次,計數加一
        if(dispcount>50)   //計數范圍0~50
                dispcount=1;
}
/***** Timer0Init : 定時器0初始化*****/
void Timer0Init()
{
        TMOD|=0X01; //選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
        TH0=0XFC;   //給定時器高八位賦初值,定時1ms
        TL0=0X18;        
        ET0=1;      //打開定時器0中斷允許
        EA=1;       //打開中斷總開關
        TR0=1;      //打開定時器0                        
}
/*****主函數*****/
void main()
{
//        static u16 i;
        TCON=0x01;     //中斷設置 TCON寄存器(外部中斷觸發方式設)
        IE|=0x81;       //IE外部中斷0請求標志位   (總中斷開關)
        Timer0Init();  //定時器0初始化
        while(1)
        {
                date=dispcount;
                xianshi();           //調用數碼管顯示   
        }
}
/*****void Timer0() interrupt 1 : 定時器1中斷函數*****/
void Timer0() interrupt 1
{
        static u16 i;
        TH0=0XFC;        //給定時器賦初值,定時1ms
        TL0=0X18;
        if(dispcount%10==0&&dispcount!=0)          //判斷外部中斷是否達到10的整數倍,達到時使led閃爍兩秒
        {
                i++;
                if(i%100==0)       //100ms
                        led=~led;  //led閃爍
                if(i>=2000)       //當時間大于2s后,led熄滅
                {
                        i=2000;
                        led=1;
                }
        }
        else                 //當不滿足外部中斷條件時,led保持關閉狀態
        {
                led=1;   
                i=0;
        }
}


7KM3WM8DBFY[MA45SV0K$W6.png (368.52 KB, 下載次數: 61)

圖一

圖一

NGEFDNWMCOYI2E[XE2~K{{4.png (58.24 KB, 下載次數: 41)

光電開關使用說明

光電開關使用說明

F8`B]Z$%L{9386`5(T{YA{7.png (47.23 KB, 下載次數: 39)

仿真電路圖

仿真電路圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2020-5-30 16:14 | 只看該作者
說明已經很清楚,三根線一個接電源負,一根接電源正,信號輸出接計數中斷輸入,模塊槽中有東西經過計數一次。
回復

使用道具 舉報

板凳
ID:676703 發表于 2020-5-30 17:51 | 只看該作者
xuyaqi 發表于 2020-5-30 16:14
說明已經很清楚,三根線一個接電源負,一根接電源正,信號輸出接計數中斷輸入,模塊槽中有東西經過計數一次 ...

有物體經過時,開關輸出高電平是嗎?程序是按照單片機輸入低電平寫的,那就要改一下?
回復

使用道具 舉報

地板
ID:213173 發表于 2020-5-30 18:01 | 只看該作者
本帖最后由 wulin 于 2020-5-30 21:22 編輯

使用說明很清楚:槽中無遮擋輸出低電平,有遮擋輸出高電平。你對產品計數,傳送帶上就得滿足上述條件。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 最新日韩在线视频 | 国产午夜精品一区二区三区四区 | 色婷婷av一区二区三区软件 | 亚洲97| 中文字幕在线视频观看 | 国产电影一区二区 | 天天射色综合 | 日韩在线| 亚洲欧美日本在线 | 91久久精品国产91久久性色tv | av天天看| 在线播放国产一区二区三区 | 一级做a爰片性色毛片视频停止 | 性一交一乱一透一a级 | 91免费看片神器 | 国产精品久久久乱弄 | 亚洲免费视频网址 | 亚洲高清在线视频 | 日韩视频在线免费观看 | 亚洲精品乱码久久久久久按摩观 | 久久久久久亚洲国产精品 | 亚洲黄色网址视频 | 日本黄色的视频 | 欧美一区二区黄 | 中文字幕在线一区二区三区 | 日韩av免费在线观看 | 国产激情一区二区三区 | 欧美理论片在线 | 国产精品福利网站 | 日韩中文字幕免费在线观看 | 免费在线观看黄网站 | 欧美专区日韩专区 | 久久久在线视频 | 美日韩免费视频 | 91污在线| 欧美日韩国产在线观看 | 中文字幕一区二区三区四区五区 | 天天操 夜夜操 | 一级片在线观看视频 | 涩涩导航| 欧美xxxx黑人又粗又长 |