找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1634|回复: 3
收起左侧

52单片机红外报警有硬件故障,汇编程序仿真已通过

[复制链接]
ID:840392 发表于 2020-12-16 18:10 | 显示全部楼层 |阅读模式
{SH%XQ3G@3Q(7U27~LBP8Y4.png 15BFD0EA6E25078C01AF99EDF516B691.png
右图是HRSC501,在p2.3口还接了下拉电阻,这个是临时连的演示一下。
安装好以后,人通过传感器没有反应,但是直接把5V电压源接2.3口却有效果,这是为什么啊?但是程序仿真是ok的
跪求大佬指点

这个是单片机程序
ORG 000H
LJMP STAR
ORG 000BH
LJMP BO
ORG 0013H
LJMP CLOSE
ORG 0040H
STAR:
MOV SP,#60H
    MOV P0,#0H
        CLR P2.3
        MOV R2,#2
         DELAY0:MOV R3,#150                   //延时30S
         DELAY1:MOV R4,#200
         DELAY2:MOV R5,#250
         DELAY3:DJNZ R5,DELAY3
                DJNZ R4,DELAY2
                        DJNZ R3,DELAY1
                        DJNZ R2,DELAY0
                        CLR P2.0
        SETB EA
        SETB EX1
        SETB IT1
        SCAN:MOV C,P2.3                        //扫描
        JC SCAN2
        LJMP SCAN
        SCAN2:
        LCALL DE
        MOV C,P2.3
        JNC SCAN
        LCALL ALARM
        SCAN3:MOV C,P2.3                 //传感器高电平是否结束
        JNC SCAN
        LJMP SCAN3


DE:                                                                //延时0.1s
         MOV R3,#1
         DE1:MOV R4,#200
         DE2:MOV R5,#250
         DE3:DJNZ R5,DE3
                DJNZ R4,DE2
                DJNZ R3,DE1
               


ALARM:

      SETB ET0
      SETB TR0
      MOV TMOD,#01H
          LJMP BO

BO:                                                                   //计时器0产生方波
       MOV P0,#79H
           MOV TL0,#83H
           MOV TH0,#0FFH
           CPL P2.1
           CPL P2.2
           RETI
CLOSE:MOV P0,#0H                                         //关闭报警
      CLR ET0
          SETB P2.1
          SETB P2.2
          RETI
          END




回复

使用道具 举报

ID:840392 发表于 2020-12-16 18:13 | 显示全部楼层
仿真过了
回复

使用道具 举报

ID:840392 发表于 2020-12-16 22:46 | 显示全部楼层
求告知51单片机io口做输入怎么判断外部输入的高电平
回复

使用道具 举报

ID:401564 发表于 2020-12-17 08:33 | 显示全部楼层
多年的8051汇编经验告诉你:玩STC的汇编不需要仿真,仿真也没有意义
1:在KEIL编写好代码,生成HEX文件之后,烧录到开发板直接运行看结果,整个过程只要几秒钟,比仿真快
2:要时间上,仿真是8051内核,实际的STC并不是按传统8051跑的,和时间相关的都是对应不上的(定时器除外)
3:对于你这个,先写一个通过中断读取外部电平信号的程序,并报警,在开发板上可以用一个东西把外部中断IO短路到GND或者VCC,实现高低电平信号的触发
4:如果是不想用中断,一直要检测IO电平的,用JB或者JNB来检测
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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