程序用来测试输入的数字为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
|