找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

独立键盘循环,自己用汇编写的,烧录后就是按键没反应

查看数: 5986 | 评论数: 4 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-8-26 23:51

正文摘要:

                        程序在keil中模拟没找出问题来,但是下载到单片机里面就是运行不了,            &nbs ...

回复

ID:153199 发表于 2017-2-17 13:38
学习了, 很不错的经验,值得分享
ID:53308 发表于 2013-8-28 09:42
已经解决了,是因为  
“       CJNE R1,#0FFH,D2       ”
中的比较出问题,我将p3状态给了r1,然后和0ff比较,实际上P3高四位是做别的用途,状态不定的。
所以改成如下,屏蔽掉高四位:
                         D2:
                                 MOV A,P3                          ;用r1和ff比较大小,从而判断是否释放
                                 ANL A,#0FH
                CJNE A,#0FH,D2

再烧录就可以了。
ID:7485 发表于 2013-8-28 08:35
本帖最后由 ahshmj 于 2013-8-28 08:37 编辑

第一次看见这样的按键程序。
KEYCHECK1:               
                  JNB P3.0,      K1
                           JNB P3.1,      K2
                           JNB P3.2,      K3
                           JNB P3.3,      K4
                           JMP KEYCHECK1
K1:
                           CALL    DELAY                     ;延时
                           JB P3.0,      START            ;再次确认不是误动作
                          CPL P2.0                            ;执行按键功能
                           JNB   P3.0,      $                   ;等待按键抬起
                           LJMP START                       返回
K2:
                 ......
K3:     
                 ......
K4                    
                         ......

ID:18297 发表于 2013-8-27 21:25
                         ORG 0000H               
                     AJMP START

                     ORG 0080H
START:                MOV P2,#0FFH
                 
KEY1:                MOV A,P3
                        CJNE A,#0FFH,KEY2
                        AJMP KEY1
KEY2:                ACALL DELAY       
                        MOV A,P3
                        CJNE A,#0FFH,KEY3
                        AJMP KEY1
KEY3:                 MOV R0,P3
                       
KEY4:                MOV A,P3
                        CJNE A,#0FFH,KEY4
                        MOV A,R0
                        CJNE A,#0FEH,KEY01
                        CPL P2.0
KEY01:                CJNE A,#0FDH,KEY02
                        CPL P2.1
KEY02:                 CJNE A,#0FBH,KEY03
                        CPL P2.2
KEY03:                CJNE A,#0F7H,KEY1
                        CPL P2.3
            AJMP KEY1


  DELAY:          MOV R7,#100                                                                ;延时程序,目的为消除机械抖动
  D1:                 MOV R6,#100                                                          
            DJNZ R6,$
            DJNZ R7,D1
                        RET
                       
                        END
自己看看,这个仿真过。

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

Powered by 单片机教程网

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