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

[复制链接]
1926|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

粉丝
快速回复 在线客服 返回列表 返回顶部