此篇文章免费分享给大家,这篇文章结合笔者所学以及在往上参考大神的讲解,通过自己的理解整理成文档,在此免费分享给大家,由于笔者是一名在读学生,文中难免有不当之处,如有错误,望大家指正!刚发完之后,为了方便大多数网友的需求,又特意加了0-9999的计数,详情见附件,有黑币的直接下载,没有的留邮箱。多余50黑币的还请自己下载。
修正的差不多,想起来手中还有一个传感器,闲来无聊就玩玩呗,传感器的图片就是中所示的,这个传感器比较简单,输出是数字量,单片机可以直接识别,所以代码也就比较简单了,为了计数准确,就使用了外部中断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)
对射式计数传感器.zip
(15.85 KB, 下载次数: 15)
浅谈对射式计数传感器.docx
(355.63 KB, 下载次数: 15)
|