按下的方法是: 1. 置列线 P1.4-P1.7 为输入状态,从行线 P1.0-P1.3 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合 2. 行线轮流输出低电平,从列线 P1.4-P1.7 读入数据, 若有列为低电平,则对应行线上有键按下。综合 1.2 两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按键一次键有可能会连续多次进行同样的键操作。本显示电路功能简单,为使编程简单,采用直接输出模式, 即把 P0.0-P0.7 端口用 8 芯排线连接到数码显示模块区域中的 a-h 端口上,要求: P0.0 对应着 a,以此类推。 LED 显示段码如下: 9 三、系统软件设计系统采用汇编语言编程实现其功能。汇编语言克服使用机器语言编程的缺点,采用一些符号来代表地址或数据,简单明了。程序是在 Windows 7环境下采用 protues 软件编写的,可实现电路的仿真。 2.程序流程图开始 Y Y 键盘初始化读列线是否有键按下延时去抖动显示键值 NN 开始读列线是否按下根据当前状况识别按键 10 2.相关数据 2.1相关变量: R3、A、 R1、 R5、 Cy。 2.2相关寄存器: 锁存器(特殊功能寄存器 P0-P3 ) 、累加器 ACC 、堆栈指针 SP、数据指针 DPTR 、程序计数器 PC 2.3存储单元: 片内 RAM 的 00H-FFH 、片外 RAM 的 0000H-FFFFH 、片内 ROM 的 0000H-FFFFH 、片外 ROM 的 0000H-FFFFH 2. 0000H LJMP 0030H MAIN: MOV P3, # 00H L1: MOV R3,#0F7H ;键盘行扫描的初值 MOV R1,#00H ;TABLE2 的取码指针 L2: MOV A,R3 MOV P1 ,A