打印

51单片机 键盘输入密码问题

[复制链接]
1413|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuya..|  楼主 | 2008-5-27 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序用来测试输入的数字为213则点亮灯  ,输入的数字由3个按键代表,3个按键接P1.0到P1.2,  P1.4接的按键做了确认输入比较..  采用中断方式的键盘连接
程序不能实现上面说的要求(在keil中不知道怎么触发外部中断,调试遇到困难)  请大家有空帮我看看哪里不对 先谢谢各位
         org 0000h
         jmp start
         org 0003h
         ljmp int00
 start:  mov sp,#5fh
         mov r0,#50h   ;按键读入的值从50H开始存放
         setb ea
         setb ex0
         jmp $
 int00:  jnb p1.0,h1   ;如果是按键1按下则跳到h1
         jnb p1.1,h2
         jnb p1.2,h3
         jnb p1.3,h4

  h1:   mov @r0,#1   
        inc r0
        reti
 h2:    mov @r0,#2
        inc r0
        reti
 h3:    mov @r0,#3
        inc r0
        reti
h4:     call cmp

        reti
cmp:    mov a,50h     ;从50H开始比较,如果第一个数正确则继续比较,否则
        cjne a,#2,ed
        mov a,#2
 
        mov a,51h
        cjne a,#1,ed
        mov a,52h
        cjne a,#3,ed   ;如果50H到52H中的值分别为2,1,3,则点亮灯
        clr p2.0
      
ed:    mov r0,#50h  ;恢复各单元初始值
       anl 50h,#00
       anl 51h,#00
       anl 52h,#00
       ret
       end

相关帖子

沙发
xuyaqi| | 2008-5-27 11:45 | 只看该作者

51单片机通过P32,P33脚接收外部中断,具体怎么用还要看书。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝