找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 85188|回复: 82
收起左侧

红外热释电传感器单片机设计(仿真原理图+源代码都有)

  [复制链接]
ID:275270 发表于 2018-3-26 16:00 | 显示全部楼层 |阅读模式
随着近年来,随着改革开放的深入发展,电子电器的飞速发展人民的生活水平有了很大提高。各种高档家电产品和贵重物品为许多家庭所拥有。然而一些不法分子也是越来越多。这点就是看到了大部分人防盗意识还不够强造成偷盗现象屡见不鲜。因此,越来越多的居民家庭对财产安全问题十分担忧。报警器这时正为人们解决了不少问题但是市场上的报警器大部分都是用于一些大公司财政机构。价格高昂一般人们难以接受。如果再设计和生产一种价廉、性能灵敏可靠的防盗报警器,必将在防盗和保证财产安全方面发挥更加有效的作用。由于红外线是不可见光,有很强的隐蔽性和保密性,因此在防盗、警戒等安保装置中得到了广泛的应用,此外,在电子防盗、人体探测等领域中,被动式热释电红外探测器也以其价格低廉、技术性能稳定等特点而受到广大用户和专业人士的欢迎。而本设计的电路包括硬件和软件两个部分。硬件部分包括红外感应部分与单片机控制部分。整个系统电路可划分为:电源部分、传感器模块部分、单片机控制电路,而单片机控制由最小系统和指示灯电路、报警电路等子模块组成。主要工作由热释电红外感应器完成信息采集、处理、数据传送经过单片机功能设定到达报警模块这一过程。就此设计的核心模块来说,单片机就是设计的中心单元。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是主要是工作的程序通过编写程序来控制输入的信号。

、设计任务分析

1.该设计包括硬件和软件设计两个部分。模块划分为数据采集、按键设定、报警等。

2.本红外线防盗报警系统由热释电红外传感器、蜂鸣器、单片机控制电路、LED指示电路及软件组成。

3.系统可实现功能:此热释红外报警器安装在禁区,按下布防键绿色发光二极管会闪烁,说明系统准备开始布防,30秒钟后绿色发光二管会长亮,说明系统进入布防状态了,当人员外出时,可把报警系统设置在外出布防状态,探测器工作起来,当有人闯入时,热释电红外传感器将探测到动作,设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,红外热释电模块送出TTL 电平至STC89C52单片机,经单片机处理运算后驱动执行报警电路使警号发声。

并且具有手动报警和手动取消报警功能,黄灯做信号指示。

三、技术方案的详细设计(实施
3.1本系统的设计方案
3.1.1系统概述
1.系统设计简介

红外线防盗报警器是当前使用比较普遍的报警器之一,它以其灵敏度高、价格实惠,受到了广大用户的欢迎。但是使用每一种红外线传感器都有其不足之处,如抗干扰能力弱、误报漏报现象严重等,可靠性不够高。目前市面上装备主要有压力触发式防盗报警器、开关电子防盗报警器和压力遮光触发式防盗报警器等各种报警器,但这几种比较常见的报警器都存在一些缺点。

本设计是基于单片机设计一种简易的红外报警器。此热释红外报警器安装在禁区,根据检测人体自身的热量,检测到有人时,自动发出报警信息,并且能够自动或手动取消报警。

设计的系统采用了热释电红外传感器,它的制作简单、成本低,安装比较方便,而且防盗性能比较稳定,抗干扰能力强、灵敏度高、安全可靠。这种防盗器安装隐蔽,不易被盗贼发现。为了探测移动人体,通常使用双元件型热释电红外线传感器,在这种传感器内部,两个灵敏元件反相连接,当人体静止时两元件极化程度相同,互相抵消。但人体移动时,两元件极化程度不同,净输出电压不为0,从而达到了探测移动人体的目的。

3.2硬件电路设计

红外热释电家庭防盗报警的硬件结构主要由单片机最小系统、电源模块、按键模块、红外热释电传感器DYP-ME003、LED指示灯和蜂鸣器报警模块组成。电路总原理图的框架图如图3-1所示:

图3-1 总体设计框图
处理器采用51系列单片机STC89C52。整个系统是在系统软件控制下工作的。设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,送出TTL 电平至STC89C52单片机。在单片机内,经软件查询、识别判决等环节实时发出入侵报警状态控制信号。驱动蜂鸣器及报警指示灯报警。
3.2.1红外感应部分

3.2.1.1 电源模块

本系统电源电压为4.5v,由三节干电池组成。电源模块电路为电源开关和电源指示灯组成。SW1是电源开关,按下SW1开关后,电源指示灯D4发光指示电源情况。

3.2.1.2 热释电传感器

基于红外线技术的自动控制产品, 灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备, 尤其是干电池供电的自动控制产品。

实物图片:

电气参数:

电气参数

DYP-ME003 人体感应模块

工作电压范围

DC 4.5-20V

静态电流

<50uA

电平输出

高 3.3 V /低 0V

触发方式

L 不可重复触发/H 重复触发

延时时间

5S(默认)可制作范围零点几秒-几十分钟

封锁时间

2.5S(默认)可制作范围零点几秒-几十秒

电路板外形尺寸

32mm*24mm

感应角度

<100 度锥角

感应距离

7 米以内

工作温度

-15-+70 度

感应透镜尺寸

直径:23mm(默认)

功能特点:

1. 全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时关闭高电平,输出低电平。

2. 光敏控制(可选择,出厂时未设):可设置光敏控制,白天或光线强时不感应。

3. 温度补偿(可选择,出厂时未设):在夏天当环境温度升高至 30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。

4. 两种触发方式:(可跳线选择)

a.不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变为低电平;

b.可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时

时间的起始点)。

5. 具有感应封锁时间(默认设置:无封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。

6. 工作电压范围宽:默认工作电压 DC4.5V-20V。

7. 微功耗:静态电流<50 微安,特别适合干电池供电的自动控制产品。

8.输出高电平信号:可方便与各类电路实现对接。

感应范围:

3.2.1.5  信号采集处理模块


                                图3-5信号处理模块

图3-6实物图

     本电路是将人体辐射的红外线转变为电信号。热释红外感应2脚输入到前置放大器OP1进行放大,然后由C4耦合给运算放大器OP2进行第二级放大。再经过电压比较器COP1和COP2构成双向鉴幅器处理后,检出有效触发信号去启动延时时间定时器输出信号在经过R3进入单片机部分进行处理。延时周期可通过R12来调节输出,在延时时间内只要Vs发生上跳变,Vo就会从Vs上跳变时刻起继续延长一个周期,而电路中的电容为了能够更好的控制了芯片内的定时器,若Vs一直保持为高电平,这样就可以通过P10传输到单片机内进行下一步处理。而根据不同的距离要求来调节R13,最大可以调节到7米左右。图中BISS0001中1脚用跳线连连接住一个接高电平后,在延时时间段内如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才将高电平变为低电平,本电路设计就是可触发方式。

3.3单片机部分
3.3.1 STC89C52单片机简介
(见51hei附件)

3.3.2 单片机最小系统

     要使单片机工作起来最基本的电路构成为单片机最小系统如图3-7所示。

                             图3-7信号处理模块  

单片机最小系统包括单片机、复位电路、时钟电路构成。

STC89C52 单片机的工作电压范围:4V-5.5V,所以通常给单片机外界5V直流电源。连接方式为单片机中的40脚VCC接正极5V,而20脚VSS接电源地端。

复位电路就是确定单片机的工作起始状态,完成单片机的启动过程。单片机接通电源时产生复位信号,完成单片机启动确定单片机起始工作状态。当单片机系统在运行中,受到外界环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后,在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。本设计采用的是外部手动按键复位电路,需要接上上拉电阻来提高输出高电平的值。

    时钟电路好比单片机的心脏,它控制着单片机的工作节奏。时钟电路就是振荡电路,是向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器。如采用外部时钟源驱动器件,XTAL2应不接。因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us。

3.3.3按键控制电路

按键模块是有三个独立按键组成:分别为手动报警键、布防键、取消报警键。

按下手动报警键:当遇到特殊紧急情况时,可按下紧急报警键,蜂鸣器会发出报警声同时红色led信号指示灯也会闪烁提示。

按下布防键:绿色led灯会闪烁代表布防开始,一直到绿色led灯会常亮,代表布防结束(布防时间持续30s钟)。在此时如果有人体经过传感器的监测范围区(监测距离为5到7m,监测角度为小于100度)时,红外热释电输出高电平,单片机P1^3口检测高电平,点亮黄色led指示灯,代表有人经过监控区,同时蜂鸣器发出报警声,有贼入侵。

按下取消报警键:蜂鸣器和指示灯进入初始状态。图3-8所示。

图3-8按键部分

3.3.4指示灯和报警电路

报警电路是有红色led灯和蜂鸣器模块组成。报警指示灯是有单片机输出低电平驱动。蜂鸣器是用pnp型的功率驱动管S8550驱动,当单片机P2^3              口为低电平时,三极管S8550饱和导通,蜂鸣器发出报警声,当单片机P2^3              口为高电平时,三极管S8550截止,蜂鸣器停止报警。电路图如图3-9所示:

图3-9指示灯和报警电路


3.4软件的程序实现3.4.1主程序工作流程图
按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图所示:

              图3-10主程序工作流程图

3.5               报警判断程序

单片机检测到红外热释电传感器的入侵信号,经过单片机的程序处理,分别驱动报警指示灯和蜂鸣器报警。利用了取反语句使得报警灯和蜂鸣器的亮灭和报警的间断时间相同,如果没有人来取消报警,程序将会继续循环报警工作。

/******************红外报警处理**********************/               
void hongwai_dis()
{
              if(flag_alarm == 1)                 //报警
              {
                            red = ~red;                               //红灯报警
                            beep = ~beep;                 //蜂鸣器报警
              }            
              if(flag_bufang_en == 1) //准备开始布防
              {
                            green = ~green;                 //绿灯闪

              }
              if(flag_bufang == 1)   //确认布防
              {
                            green = 0;         //如果延时布防成功 绿灯长亮
                            if(hw == 1)                     //红外有输出
                            {
                                          flag_alarm = 1;            
                            }
              }

}
3.6  程序编写与调试

3.6.1  Keil编译器软件简介

    Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

图15 C51工具包整体结构图

Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,如图3.1所示,其中uVision与Ishell分别是C51 for Windows和for DOS的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中。

3.7  硬件安装及调试中遇到的问题
3.7.1
安装步骤
1.检查元件的好坏
按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。
2.放置、焊接各元件
按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。
3.7.2电路的调试
首先烧入显示程序,看显示正不正常。在调试程序时,发现有的指令用的不正确,导致电路功能不能完全实现,另外软件程序中的延时有的过长、有的过短。类似的现象还有很多就不一一列举了。
四、心得体会

在本次研究的是基于单片机设计的红外报警器。该系统主要是有单片机最小系统、电源电路、红外热释电传感器部分、蜂鸣器报警模块、led状态指示灯和按键模块组成。。外部不可接上拉电阻,否则会影响红外热释电传感器的正常工作。此设计上有三个led信号指示灯,分别为红色灯,绿色灯和黄色灯。红色灯代表报警信号指示,绿色灯代表布放信号灯指示,黄色灯代表DYP-ME003红外热释电传感器信号指示灯。按键部分也有四个按键,分布代表复位键(属于单片机最小系统部分),左边第一个灯为手动报警键,按下此键蜂鸣器会发出报警声同时红色led信号指示灯也会闪烁提示。左边第二个键为布防键,当按下此键,绿色led灯会闪烁代表布防开始,一直到绿色led灯会常亮,代表布防结束(布防时间持续30s钟)。报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低。随着现代人们安全意识的增强以及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用。

   试验中在进行原理图设计与protues仿真的过程中遇到了很多问题,例如在Altium designer里并没有at89c52,这就需要自己设计一个c52库,在这个上面我花费了大量的时间在管脚以及电器封装。当进行protues仿真时,我认识到仿真并没用想象中那么容易,此次设计本设计采用的红外热释电传感器的型号是DYP-ME003,此传感器在上电是需要1分钟左右的时间才能稳定,有效电平为高电平,平时为低电平状态。他是一个复杂的集成模块,其中包括红外探测器,光学放大原件,以及电路设计。DYP-ME003可以将光信号转化为高低电平,这个部分在仿真中只能用开关代替。


附件一:总体原理图设计


附件二:仿真图
附件三:程序源代码


单片机源程序如下:
  1. #include <reg52.h>                 //调用单片机头文件
  2. #define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255
  3. #define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535

  4. #define key_io P1
  5. uchar key_can;

  6. //   红外热释电平时为0  有输出为1

  7. sbit beep = P2^3;           //蜂鸣器定义
  8. sbit red  = P2^2;           //红色发光二极管定义
  9. sbit green = P2^1;           //绿色发光二极管定义
  10. sbit yellow = P2^0;           //黄色发光二极管定义
  11. sbit hw    = P1^3;           //红外热释传感器定义
  12. bit flag_300ms = 0;

  13. /****************独立按键处理函数************************/           
  14. void key()
  15. {
  16.         static uchar key_new = 0,key_old = 0,key_value = 0;
  17.         if(key_new == 0)                 //按键松开
  18.         {
  19.                 if((key_io & 0x07) == 0x07)
  20.                         key_value ++;
  21.                 else
  22.                         key_value = 0;
  23.                 if(key_value >= 5)         //按键松开松手检测
  24.                 {
  25.                         key_value = 0;
  26.                         key_new = 1;        //按键松开后进入等待按键状态
  27.                 }
  28.         }
  29.         else
  30.         {
  31.                 if((key_io & 0x07) != 0x07)         //按键按下
  32.                         key_value ++;
  33.                 else
  34.                         key_value =0;
  35.                 if(key_value >= 5)        //按键按下消抖
  36.                 {
  37.                         key_value = 0;
  38.                         key_new = 0;           //按键松开后进入等待松开按键状态
  39.                 }
  40.         }
  41.         key_can = 20;
  42.         if((key_new == 0) && (key_old == 1))
  43.         {
  44.                 switch(key_io & 0x07)
  45.                 {
  46.                         case 0x06: key_can = 1; break;          //得到按键值
  47.                         case 0x05: key_can = 2; break;          //得到按键值
  48.                         case 0x03: key_can = 3; break;          //得到按键值
  49.                 }
  50.         }                        
  51.         key_old = key_new;         
  52. }

  53. /*************定时器0初始化程序***************/
  54. void time_init()         
  55. {
  56.         EA   = 1;                   //开总中断
  57.         TMOD = 0X01;          //定时器0工作方式1
  58.         ET0  = 1;                  //开定时器0中断
  59.         TR0  = 1;                  //允许定时器0定时
  60. }

  61. uchar flag_alarm ;     //报警标志位
  62. uchar flag_bufang ;    //布防标志位
  63. uchar flag_bufang_en ; //布防标志位使能
  64. uint  flag_value;      //用做定时器的变量

  65. /******************红外报警处理**********************/           
  66. void hongwai_dis()
  67. {
  68.         if(flag_alarm == 1)           //报警
  69.         {
  70.                 red = ~red;                   //红灯报警
  71.                 beep = ~beep;           //蜂鸣器报警
  72.         }        
  73.         if(flag_bufang_en == 1) //准备开始布防
  74.         {
  75.                 green = ~green;           //绿灯闪
  76.                         
  77.         }  
  78.         if(flag_bufang == 1)   //确认布防
  79.         {
  80.                 green = 0;         //如果延时布防成功 绿灯长亮
  81.                 if(hw == 1)               //红外有输出
  82.                 {
  83.                         flag_alarm = 1;        
  84.                 }
  85.         }

  86. }

  87. /******************对应不同按键处理**********************/           
  88. void key_with()
  89. {
  90.         if(key_can == 1)         //按键紧急报警
  91.         {
  92.                 flag_alarm = 1;  //报警标志位 ;                 
  93.         }
  94.         if(key_can == 2)     //布防按键
  95.         {
  96.                 flag_bufang_en = 1;               
  97.         }
  98.         if(key_can == 3)         //取消报警  把变量清零
  99.         {
  100.                 flag_alarm = 0;   
  101.                 flag_bufang = 0;
  102.                 flag_bufang_en = 0;        
  103.                 flag_value = 0;        
  104.                 P2 = 0xff;      
  105.         }                        
  106. }


  107. /******************主程序**********************/           
  108. void main()
  109. {
  110.         time_init();
  111.         while(1)
  112.         {
  113.                 key();                  
  114.                 yellow = ~hw;         //红外热释电指示灯 有输出就亮黄灯
  115.                 if(key_can < 10)
  116.                 {
  117.                         key_with();         //按键设置函数
  118.                 }
  119.                 if(flag_300ms == 1)
  120.                 {
  121.                         flag_300ms = 0;
  122.                         hongwai_dis();           //红外报警函数
  123.                 }        
  124.         }
  125. }

  126. /*************定时器0中断服务程序***************/
  127. void time0_int() interrupt 1
  128. {        
  129.         static uint value;
  130. ……………………

  131. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
0.jpg

所有资料51hei提供下载:
热释电.zip (931.29 KB, 下载次数: 753)

评分

参与人数 2黑币 +55 收起 理由
初心123 + 5 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:693216 发表于 2020-3-30 15:51 | 显示全部楼层
为啥我喇叭不响,这么多按键,有没有说明,程序里说明我也不是很明白
回复

使用道具 举报

ID:714198 发表于 2020-4-13 23:14 | 显示全部楼层
你好,我用的你这个仿真图,按照程序说明去操作仿真出来有问题,如果拨动打开电源开关,仿真之后就几乎都是黄色短路。查错说GND和+5V还有P1.3口逻辑连接错误,请问是仿真图有问题吗
回复

使用道具 举报

ID:298584 发表于 2018-3-28 21:40 | 显示全部楼层
感谢分享,想要源码。。第一次来这个论坛,不知道回帖有不有黑币
回复

使用道具 举报

ID:279945 发表于 2018-4-16 18:18 | 显示全部楼层

感谢分享
回复

使用道具 举报

ID:308395 发表于 2018-4-17 18:27 | 显示全部楼层
zwc456baby 发表于 2018-3-28 21:40
感谢分享,想要源码。。第一次来这个论坛,不知道回帖有不有黑币

多参与就有黑币拿
回复

使用道具 举报

ID:319538 发表于 2018-5-6 14:56 来自手机 | 显示全部楼层
有心了
回复

使用道具 举报

ID:324922 发表于 2018-5-8 12:15 | 显示全部楼层
楼主我爱你,啊啊啊啊,好激动,我一直搞不出来这个电路的仿真
回复

使用道具 举报

ID:293762 发表于 2018-5-8 21:23 | 显示全部楼层
谢谢楼主的分享!
回复

使用道具 举报

ID:293762 发表于 2018-5-8 21:23 | 显示全部楼层
谢谢楼主的分享!
回复

使用道具 举报

ID:325923 发表于 2018-5-9 23:57 | 显示全部楼层
感谢分享,下载下来看看
回复

使用道具 举报

ID:340944 发表于 2018-5-29 21:36 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:339692 发表于 2018-6-3 16:27 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:346424 发表于 2018-6-6 20:15 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:350361 发表于 2018-6-12 16:19 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:361347 发表于 2018-6-28 21:07 | 显示全部楼层
怎么获得黑币啊,想下载啊
回复

使用道具 举报

ID:361452 发表于 2018-6-28 23:57 | 显示全部楼层
感谢分享 然而并没有黑币
回复

使用道具 举报

ID:361452 发表于 2018-6-29 00:06 | 显示全部楼层
很全面面且详细
回复

使用道具 举报

ID:250793 发表于 2018-7-1 00:43 | 显示全部楼层
感谢楼主! 刚好课程设计需要参考一下!做得挺详细的,感谢!
回复

使用道具 举报

ID:403053 发表于 2018-9-27 11:03 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:410800 发表于 2018-10-16 21:34 来自手机 | 显示全部楼层
这个上传过知网了吗?
回复

使用道具 举报

ID:410800 发表于 2018-10-16 21:37 来自手机 | 显示全部楼层
审核啥时候通过啊
回复

使用道具 举报

ID:411841 发表于 2018-10-26 22:11 | 显示全部楼层
感谢楼主!明天就要弄出来了,还好看到这帖
回复

使用道具 举报

ID:423140 发表于 2018-11-8 18:04 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:425292 发表于 2018-11-12 21:15 | 显示全部楼层
感谢分享 刚好毕业设计用得上
回复

使用道具 举报

ID:66287 发表于 2018-11-13 09:41 | 显示全部楼层
程序写的不错,按键处理部分需要简化。不能傻傻的出现“按键松开后进入等待松开按键状态”这样的部分。
回复

使用道具 举报

ID:350674 发表于 2018-12-4 14:49 | 显示全部楼层
感谢分享 !
回复

使用道具 举报

ID:144634 发表于 2018-12-23 22:29 | 显示全部楼层
感谢分享,十分有用
回复

使用道具 举报

ID:251061 发表于 2018-12-24 10:56 | 显示全部楼层
写的不错,受益匪浅
回复

使用道具 举报

ID:73182 发表于 2018-12-24 14:40 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:446595 发表于 2018-12-26 11:06 | 显示全部楼层
仿真图就是全部电路图吗、为什么我的只有黄灯亮
回复

使用道具 举报

ID:455578 发表于 2018-12-26 16:08 | 显示全部楼层
李学习 发表于 2018-12-26 11:06
仿真图就是全部电路图吗、为什么我的只有黄灯亮

是吗,我们期末就是做的这个
回复

使用道具 举报

ID:455578 发表于 2018-12-26 16:10 | 显示全部楼层
我们期末考试啊,求回帖
回复

使用道具 举报

ID:455578 发表于 2018-12-26 16:25 | 显示全部楼层
#include<reg51.h>

#define uchar unsigned char
#define uint  unsigned int

char code dx516[3] _at_ 0x003b;

sbit out = P1^0;
sbit LED = P1^1;

void delay(uint j)
{
        uint i;
        for(;j>0;j--)
        {
                for(i=0;i<125;i--);
        }
}

void main()
{
        while(1)
        {
                if(out==1)     
                {
                        LED = 0;                         //LED灯亮
                        delay(2000);
                        LED = 1;
                }
        }
}我写的这个可以吗
回复

使用道具 举报

ID:455617 发表于 2018-12-26 16:28 | 显示全部楼层
感谢分享,想要源码。。第一次来这个论坛,不知道回帖有不有黑币
回复

使用道具 举报

ID:354236 发表于 2019-1-1 20:54 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:449256 发表于 2019-1-3 18:35 | 显示全部楼层
楼主为什么我们喇叭不响啊
回复

使用道具 举报

ID:470956 发表于 2019-1-20 18:34 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:474607 发表于 2019-2-1 20:51 | 显示全部楼层
谢谢楼主分享!
回复

使用道具 举报

ID:21069 发表于 2019-2-3 01:52 | 显示全部楼层
很好的案例,研究研究
回复

使用道具 举报

ID:482215 发表于 2019-2-28 16:36 | 显示全部楼层
感谢分享!
回复

使用道具 举报

ID:482215 发表于 2019-2-28 16:59 | 显示全部楼层
又看了下,感觉是不错的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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