微型计算机控制技术第3章.pptVIP

  • 9
  • 0
  • 约2.11万字
  • 约 73页
  • 2017-05-06 发布于广东
  • 举报
微型计算机控制技术第3章

键盘扫描程序 现以下图所示接口电路为例,说明键盘扫描程序的编制方法。 1.采用行扫描法    采用行扫描法识别闭合键的程序流程图见后图。 首先调用全扫描子程序,检查有无闭合键。若无键闭合,则对数码显示器扫描显示1遍;若有键闭合,则先消抖。这里采用调用两次数码显示器扫描循环显示子程序的方法,每次6ms共12ms。然后再次检查有无键闭合,若无键闭合,则返回主程序;若有键闭合,则进行逐行扫描,以判别闭合键的具体位置。 本例介绍的是第1种方法,采用的计算公式为    键值=行号×4+列号    对于8×4的键盘来说,其具体键值由式可计算出,见后表。 计算出闭合键的键值后,再判断键释放否?若键未释放,则等待;若键已释放,则再延时消抖,然后判断是命令键还是数字键。若是命令键,则转入命令键处理程序,完成命令键的功能;若是数字键,则转入数字键处理程序,进行数字的存储和显示等。 键盘扫描程序: KEY1: LCALL KS1 ;检查有闭合键否? JNZ LK1 ;A非0,有键闭合则转 LJMP LK8 ;无键闭合转返回 LK1: LCALL DIR ;有键闭合,则延时12ms LCALL DIR ;消抖 LCALL KS1 ;再次检查有键闭合否? JNZ LK2 ;有键闭合则转 LJMP LK8 ;无键闭合转返回 LK2: MOV R3,#00H ;行号初值送R3 MOV R2,#FEH ;行扫描初值送R2 LK3: MOV DPTR,#0101H ;指向8155口A MOV A,R2 ;行扫描值送A MOVX @DPTR,A ;扫描1行 INC DPTR INC DPTR ;指向8155口C MOV X A, @DPTR ;读入列值 ANL A,#0FH ;保留低4位 MOV R4,A ;暂存列值 CJNE A,#0FH,LK4 ;列值非全“1”则转 MOV A,R2 ;行扫描值送A JNB A.7,LK8 ;已扫到最后1行则转 RL A ;未扫完,则移至下1行 MOV R2,A ;行值存入R2中 INC R3 ;行号加1 SJMP LK3 ;转至扫描下1行 LK4: MOV A,R3 ;行号送入A ADD A,R3 ;行号×2 MOV R5,A ;暂存 ADD A,R5 ;行号×4 MOV R5,A ;存入R5中

文档评论(0)

1亿VIP精品文档

相关文档