您现在的位置:首页 > >

单片机原理与接口技术第8章常用外围设备接口电路

发布时间:

第八章 常用外围设备接口电路 【学习目标】 1.理解键盘接口(去抖动问题、按键连接方式、扫描控制方式) 2.掌握LED数码管及编码方式 3.掌握A/D和D/A 接口电路 4.掌握开关量驱动输出接口电路 【重点内容】 1.独立式、矩阵式按键及其接口电路 2.静态、动态显示方式及其典型应用电路 3.ADC0809及其接口电路 4 . DAC0832及其接口电路 图8-1 单片机应用系统人机对话通道配置图 单片机接口的主要作用如下: (1)管理和协调各种数字部件和外部设备对数据总线的使用。 (2)解决单片机与外设之间数据收发速度的匹配问题。 (3)解决单片机与外设信号形式的匹配问题。 8.1 键盘接口技术 8.1.1 按键的状态输入及去抖动 图8-2 按键输入和电压抖动 硬件上可采用在按键输出端加RS触发器(双稳态触发 器)或单稳态触发器构成去抖动电路 。 图8-3 双稳态去抖动电路 8.1.2 键盘与CPU的连接方式 图8-4 独立式按键原理 图8-5 矩阵式键盘原理图 8.1.3 键盘扫描控制方式 1.程序控制扫描方式 2.定时控制扫描方式 3.中断控制方式 8.1.4 独立式按键 图8-6 独立式按键 图8-6(a)所示的独立按键扫描程序如下: ORG 0000H LJMP KEYA ORG 0100H KEYA:ORL P1,#07H ;置P1.0~P1.2为输入状态 MOV A,P1 ;读键值,键闭合相应位为0 CPL A ;取反,键闭合相应位为1 ANL A, #00000111B ;屏蔽高5位,保留有键值信息的低3位 JZ GRET ;全0,无键闭合,返回 LCALL DY10 ms ;非全0,有键闭合,延时10 ms,软件去抖动 MOV A,P1 ;重读键值,键闭合相应位为0 CPL A ;取反,键闭合相应位为1 ANL A,#0000011IB ;屏蔽高5位,保留有键值信息的低3位 JZ GRET ;全0,无键闭合,返回;非全0,确认有键闭合 JB Acc.0,KA0 ;转0#键功能程序 JB Acc.1,KA1 ;转1#键功能程序 JB Acc.2,KA2 ;转2#键功能程序 GRET:SJMP $ KA0: LCALL WORK0 ;执行0#键功能子程序 SJMP GRET KA1: LCALL WORK1 ;执行1#键功能子程序 SJMP GRET KA2: LCALL WORK2 ;执行2#键功能子程序 SJMP GRET END 8.1.5 矩阵式键盘 图8-7 矩阵式键盘的结构 图8-8 矩阵式键盘程序流程图 解:编程如下: KEY: MOV P1, #0F0H KEY0: MOV A, P1 CPL A ANL A, #0F0H MOV R1, A JZ GRET KEY1: MOV P1,#0FH MOV A, P1 CPL A ANL A, #0FH MOV R2,A JZ GRET JBC F0,WAIT SETB F0 LCALL DY10 ms SJMP KEY0 RET GRET: ;行线置低电平,列线置输入态 ;读列线数据 ;数据取反,1有效 ;屏蔽行线,保留列线数据 ;存列线数据(R1高4位) ;全0,无键按下,返回 ;行线置输入态,列线置低电平 ;读行线数据 ;数据取反,1有效 ;屏蔽列线,保留行线数据 ;存行线数据(R2低4位) ;全0,无键按下,返回 ;已有消抖标志,转 ;无消抖标志,置消抖标志 ;调用10 ms延时子程序,消抖 ;重读行线列线数据 ; WAIT: MOV CPL ANL JNZ KEY2:MOV MOV MOV CLR KEY3: RLC JC DEC DJNZ KEY4: MOV MOV MOV CLR KEY5: RRC JC INC DJNZ A, A A, WAIT A, R1, R3, C A KEY4 R1 R3, A, R2, R3, C A KEY6 R2 R3, P1 #0FH R1 #03H #03H KEY3 R2 #00H #03H KEY5 ;等待按键释放 ; ; ;按键未释放,继续等待 ;取列线数据(高4位) ;取列线编号初值 ;置循环数 ; ;依次左移入C中 ;C=1,该列有键按下,(列线编号存R1) ;C=0,无键按下,修正列编号 ;判循环结束否?未结束继续寻找有键按下的列线 ;取行线数据(低4位) ;置行线编号初值 ;置循环数 ; ;依次右移入C中 ;C=1,该行有键按下,(行线编号存R2) ;C=0,无键按下,修正行线编号 ; KEY6: MOV A, R2 CLR C RLC A RLC A ADD A, R1 C KEY7:CLR RLC A RLC A MOV DPTR,#TABJ JMP @A+DPTR TABJ: LCALL WORK0 RET LCALL WORK1 RET LCALL WORK15 RET ;取行线编号 ; ;行编号×2 ;行编号×4 ;行编号×4+列编号=按键编号 ; ;按键编号×2 ;按键编号×4(LCALL+RET共4字节) ; ;散转,执行相应键功能子程序 ;调用执行K0键功能子程序 ; ;调用执行K1键功能子程序 ; ;调用执行K15键功能子程序 2.扫描法 依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的 按键不在此行;如果不全为1,则按下的按键必在此行,而且是与0电 平列线相交的交点上的那个按键。 图8-10 8155扩展I/O接口组成的行列矩阵式键盘 PA7 PA6 PA5 A4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 FEH 1 1 1 1 1 1 0 1 FDH 1 1 1 1 1 0 1 1 FBH …… …… …… 1 0 1 1 1 1 1 1 BEH 0 1 1 1 1 1 1 1 7EH 再相应地


热文推荐
猜你喜欢
友情链接: 工作计划 总结汇报 团党工作范文 工作范文 表格模版 生活休闲