找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2091|回复: 5
打印 上一主题 下一主题
收起左侧

51单片机红外遥控控制数码管,为是么数码管不亮

[复制链接]
跳转到指定楼层
楼主
有大神帮帮我吗,好几天了,不知道哪里出问题了

789.png (265.94 KB, 下载次数: 42)

789.png

456.png (330.35 KB, 下载次数: 45)

456.png

321.png (353.88 KB, 下载次数: 38)

321.png

123.png (253.33 KB, 下载次数: 46)

123.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:88256 发表于 2021-6-9 18:33 | 只看该作者
是完全不亮吗?程序这样截屏还不如直接复制贴出来好方便阅读,电路图也一起贴出来
回复

使用道具 举报

板凳
ID:825883 发表于 2021-6-9 21:44 | 只看该作者
分段排故,你用的应该是开发板,先让红外接收器接收到信号以后让P1口某个灯亮,然后判断后再让另一个灯亮,看问题是出现在前面还是后面。如果出现在后面,就不对红外接收器收到的数据判断,直接让LED显示某个数字。   
回复

使用道具 举报

地板
ID:844772 发表于 2021-6-9 21:48 | 只看该作者
是不是接线错了,你的数码管怎么接的啊?按程序你应该接P0,且是个共阳的管子。
回复

使用道具 举报

5#
ID:933672 发表于 2021-6-9 22:45 | 只看该作者
如果不亮,很有可能是数码管共阴共阳弄错了
回复

使用道具 举报

6#
ID:928089 发表于 2021-6-10 17:34 | 只看该作者
                DQ EQU P3.3

                ADDR0 EQU P1.0
                ADDR1 EQU P1.1
                ADDR2 EQU P1.2
                ADDR3 EQU P1.3
                ENLED EQU P1.4

                ORG 000H
                LJMP MAIN

                ORG 000BH
                LJMP ZD

    MAIN:
                MOV TH0,#0FEH
                MOV TL0,#0FEH
                MOV TMOD,#01H
                SETB ET0
                SETB TR0
                SETB EA
                CLR ENLED
                CLR ADDR0
                CLR ADDR1
                CLR ADDR2
                SETB ADDR3

                SJMP $

     ZD:
                CLR EA
                MOV R3,#10
     SB:        LCALL YS1  ;延时9000微妙

                DJNZ R3,SB

                JB DQ,EXIT




;---------------以上对检测9000微妙的初始低电平
                JNB DQ,$

                LCALL YS2   ;延时4.74毫秒避开4.5毫秒结果码

                MOV R1,#40H    ;设定起始RAM区
                MOV R2,#4      ;四组八位数据
      PP:       MOV R3,#8

      JJJ:      JNB DQ,$       ;等待地址码第一个高电平信号

                LCALL YS1    ;延时882微妙去判断此时的信号高低电平状态

                MOV C,DQ
                JNC UU

                LCALL YS3    ;延时1000微妙

      UU:       MOV A,@R1      ;将R1的地址给它
                RRC A          ;将C转到最低位
                MOV @R1,A      ;再将A存到r1中

                DJNZ R3,JJJ    ;循环接受地址码的高8位

                INC R1
                DJNZ R2,PP     ;接受完16位地址码和8位数据吗和8位数据反码

;---------------以上将16位地址码和8位数据吗和8位数据反码存放在1AH,1BH,1CH,1DH

                MOV A,42H
                CPL A
                XRL A,43H      ;将两数据作比较

                JNZ EXIT       ;不相同则丢弃退出解码

                MOV DPTR,#TABLE
                MOV A,43H
                ANL A,#0FH     ;求与取其低四位

                MOVC A,@A+DPTR
                MOV 44H,A      ;将查表得到的数字存到1EH中
                MOV A,43H
                SWAP A         ;高四位与低四位交换
                ANL A,#0FH     ;求与取其高四位
                MOVC A,@A+DPTR
                MOV 45H,A      ;将查表到的数据放在1FH中

;---------------以上将接受到的数据码与数据反码经过查表后存放在1EH和1FH中

                MOV R7,#20H
      DISP:
                MOV P0,45H     ;将数据送到数码管中
                CLR P2.1
                LCALL YS2
                SETB P2.1
                MOV P0,44H
                CLR P2.2
                LCALL YS2
                SETB P2.2

                CLR P1.6
                LCALL YS2
                SETB P1.6
                DJNZ R7,DISP


      EXIT:     SETB EA
                RETI           ;退出解码程序

                               ;延时882微秒
       YS1:       MOV R4,#03H
DL0:
    MOV R5,#91H
    DJNZ R5,$
    DJNZ R4,DL0
    RET
       YS2:
                               ;延时4740微秒
          MOV R6,#03H
DL1:
    MOV R4,#08H
DL2:
    MOV R5,#61H
    DJNZ R5,$
    DJNZ R4,DL2
    DJNZ R6,DL1
    RET
       YS3:
                             ;延时1000微秒
         MOV R4,#01H
DL3:
    MOV R6,#8EH
DL4:
    MOV R5,#02H
    DJNZ R5,$
    DJNZ R6,DL4
    DJNZ R4,DL3
    RET

       TABLE: DB  0C0h,0F9h,0A4h,0B0h,99h,92h
              DB  82h,0F8h,80h,90h,88h,83h,0C6h,0A1h,86h,8Eh


它现在亮了但是不是按每个按键他都能亮,而且它显示的数字也不对,大佬帮帮忙吧
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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