文档详情

华东交通大学 单片机微机原理及应用基础教程第6章 接口技术及其应用基础(第1部分).ppt

发布:2017-05-27约2.69万字共88页下载文档
文本预览下载声明
* 2. 51单片机扩展并行I/O口连接键盘 实际应用中,多数情况下P0~P2端口已被占用,只能通过扩展8155、8255A等通用并行I/O接口芯片构建键盘接口电路,如图6-18所示;或者采用8279等专用接口芯片构建键盘接口电路,如图6-19所示。 采用8155连接4×8键盘的接口电路 2. 51单片机扩展并行I/O口连接键盘 或者采用8279等专用接口芯片构建键盘接口电路,如图6-19所示。 采用8279连接3×8键盘的接口电路 以前述采用8155连接4×8键 盘的接口电路为例,行扫描法识 别闭合键的程序流程右图。 首先调用全扫描子程序,检查 有无闭合键。若无键闭合,则对数 码显示器扫描显示1遍;若有键闭 合,则调用两次数码显示器扫描显 示子程序的延时约12ms消抖。 然后再次检查有无键闭合,若 无键闭合,则返回主程序;若有键 闭合,则进行逐行扫描,以判别闭 合键的具体位置。   6.2.3 键盘扫描程序 1. 行扫描法编程 键盘扫描子程序流程图(行扫描法) 对于本例8×4的键盘,可直接由公式“键值=行号×4+列号”计 算键值,见下表。 1. 行扫描法编程 计算出闭合键的键值后,再判断键释放否?若键未释放,则等待;若 键已释放,则再延时消抖,然后判断是命令键还是数字键。若是命令键,则 转入命令键处理程序,完成命令键的功能;若是数字键,则转入数字键处理 程序,进行数字的存储和显示等。 1. 行扫描法编程 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 【例6-7】键盘扫描程序(行扫描法) 键盘扫描程序(续1) 1. 行扫描法编程 INC DPTR ;指向8155口C MOVX 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 ;行号
显示全部
相似文档