此篇文章免費分享給大家,這篇文章結合筆者所學以及在往上參考大神的講解,通過自己的理解整理成文檔,在此免費分享給大家,由于筆者是一名在讀學生,文中難免有不當之處,如有錯誤,望大家指正!剛發完之后,為了方便大多數網友的需求,又特意加了0-9999的計數,詳情見附件,有黑幣的直接下載,沒有的留郵箱。多余50黑幣的還請自己下載。
0.png (266.91 KB, 下載次數: 45)
下載附件
2019-5-24 06:01 上傳
修正的差不多,想起來手中還有一個傳感器,閑來無聊就玩玩唄,傳感器的圖片就是中所示的,這個傳感器比較簡單,輸出是數字量,單片機可以直接識別,所以代碼也就比較簡單了,為了計數準確,就使用了外部中斷0,每進一次中斷,計數器就加1,由于使用的是開發板上的一位數碼管,所以此程序顯示范圍也就在0-F之間了。大家可以根據自己的需要進行修改,原理就是這么個原理。
模塊特色:
1、有輸出狀態指示燈,輸出高電平燈滅,輸出低電平燈亮。
2、有遮擋,輸出高電平;無遮擋,輸出低電平。
3、比較器輸出,信號干凈,波形好,驅動能力強,超過 15mA。
4、工作電壓 3.3V-5V
5、輸出形式 :數字開關量輸出(0 和 1)
6、使用寬電壓 LM393 比較器
程序:計數范圍0-F,使用外部中斷0
單片機源程序如下:
- #include<reg52.h>
- #define LED P0
- sbit kaiguan=P1^1;
- unsigned char count=0;
- unsigned char i=0;
- unsigned char code DIG_CODE[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
- 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};
- void main()
- {
- P1=0XFF;
- IT0=1; //下降沿觸發
- EA=1;
- EX0=1;
- i=0;
- while(1)
- {
- if(count>15)
- {
- count=0;
- i=0;
- }
- LED=~DIG_CODE[i];
- }
- }
- void counter(void) interrupt 0
- {
- EX0=0;
- count++; //中斷計數
- i++;
- EX0=1;
- }
復制代碼
所有資料51hei提供下載:
對射式傳感器0-9999.zip
(13.65 KB, 下載次數: 13)
2019-5-23 21:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
對射式計數傳感器.zip
(15.85 KB, 下載次數: 15)
2019-5-23 20:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
淺談對射式計數傳感器.docx
(355.63 KB, 下載次數: 15)
2019-5-23 20:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|