找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3943|回复: 6
收起左侧

如何实现红外对管收到信号一次变量加1

[复制链接]
ID:170778 发表于 2017-3-17 23:32 | 显示全部楼层 |阅读模式
要用到中断,中断这块不大懂,论坛大大能给我指点一下不
回复

使用道具 举报

ID:123289 发表于 2017-3-18 23:51 | 显示全部楼层
关键看你如何定义“收到信号一次”?
回复

使用道具 举报

ID:137408 发表于 2017-3-18 16:09 | 显示全部楼层
用脉冲计数
回复

使用道具 举报

ID:171780 发表于 2017-3-18 14:42 | 显示全部楼层
每接收一次延迟 不然太快

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:151348 发表于 2017-3-18 14:02 | 显示全部楼层
给你个例子,摘自“JH《单片机C语言程序设计实训100例——基于8051+Proteus仿真》案例压缩包”
无标题.jpg

外部中断0计数.zip

162 Bytes, 下载次数: 15

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:170778 发表于 2017-3-18 13:51 | 显示全部楼层
顶,求大神帮忙啊
回复

使用道具 举报

ID:155507 发表于 2017-3-18 11:58 | 显示全部楼层
红外对管的工作原理就是利用光电管受光照和不受光照的状态差别来区分是否受遮挡,有光照即无遮挡时,光电管处于导通态,被遮挡则无光照,光电管则处于截止态.要两组红外对管,根据哪路先被遮断来判断方向即可.长的距离需要给发射管加载波.“一般是40KHz” 接收管端做放大和锁相环.“锁40KHz频率”
当接收到红外发射管的信号时锁相环输出高.人挡住输出低.或者反过来.


  1. /*-----------------------------------------------
  2.   名称:外部中断0电平触发
  3.   内容:通过中断接口P3.2连接的红外对管接收头
  4. ------------------------------------------------*/
  5. #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  6. /*------------------------------------------------
  7.                     主程序
  8. ------------------------------------------------*/
  9. unsigned int count=0;

  10. main()
  11. {
  12.   
  13.   EA=1;          //全局中断开
  14.   EX0=1;         //外部中断0开
  15.   IT0=0;         //电平触发
  16.   while(1)
  17.   {
  18.                  //在此添加其他程序
  19.   }
  20. }
  21. /*------------------------------------------------
  22.                  外部中断程序
  23. ------------------------------------------------*/
  24. void ISR_Key(void) interrupt 0 using 1
  25. {
  26. count++;     //进入中断程序执行程序, 红外对管收到信号一次变量加1
  27. //此时可以通过 EA=0指令暂时关掉中断
  28.    
  29. }

复制代码

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表