版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章键盘显示及模拟量通道技术8.1键盘/显示器接口扩展技术8.2模拟量I/O8.1键盘/显示器接口扩展技术8.1.1显示器结构与工作原理8.1.2键盘接口工作原理8.1.1显示器结构与工作原理显示器概述作用显示单片机的运行结果与运行状态分类LED(发光二极管):亮度清晰、成本低、控制简单LCD(液晶):功耗低CRT(阴极射线管):图形显示方便使用场合电子显示屏、工业测控领域、仪器仪表、电子钟、家用电器等LED数码管显示原理与段码1111110000000011共阳段码表共阴段码表3FHC0H显示代码表LED数码显示方法静态动态典型静态显示接口图一程序(1):8位显示,显示缓冲30H-37H,用串口方式0DIS: MOVSCON,#00H MOVR0,#30H MOVR7,#08H MOVDPTR,#TABLP: MOVA,@R0
MOVC A,@A+DPTR
MOVSBUF,A JNBTI,$
CLRTI INCR0 DJNZR7,LP
RETTAB: DB3FH,06H,…… CLK BITP1.0 DAB BITP1.1DIS: MOV R0,#30H
MOV R7,#08H MOV DPTR,#TABLP: MOV A,@R0 MOVC A,@A+DPTR
MOV R6,#08H程序(2):8位显示:显示缓冲30H-37H,用P1.0-CLK,P1.1-DABLP0: CLR CLK RRC A ;循环右移 MOV DAB,C
SETB CLK DJNZ R6,LP0 INC R0 DJNZ R7,LP RETTAB: DB3FH,06H,……
P1.0P1.1静态显示应用静态显示应用3.动态扫描显示法接口设计动态扫描显示对于一组LED数码显示器需要两组信号来控制段码:字段输出口输出的字形代码位码:输出口的控制信号,选择第几位显示器工作一位一位地显示器数码——动态扫描显示利用人的“视觉暂留效应”显示刷新的频率达到30Hz以上,否则会出现闪烁8255的口地址A口:7FFCHB口:7FFDHC口:7FFEH控制寄存器:7FFFH段控位控共阳极MODE: MOV A,#80H ;10000000B=80HA、C口基本输出 MOV DPTR,#7FFFH ;控制字
MOVX @DPTR,ADISP: MOV R0,#30H ;显示缓冲 MOV R2,#01H ;6个显示器,位选点亮的初始码程序8255A初始化共阳极 INC R0 ;指向下一个显示缓冲 MOV A,R2
JB ACC.5,EXIT ;到第6个数码管了?
RL A MOV R2,A AJMP LOOPEXIT: RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H DB 90H,88H,83H,0C6H,0A1H,86H,8EH,8CH,0BFH,0FFH8.1.2键盘接口工作原理键盘人机交互的一个重要工具两种基本类型编码键盘除了按键以外,还包括产生键码的硬件电路使用方便、价格较高非编码键盘靠软件来识别键盘上的闭合键,由此计算出编码几乎不需要附加硬件逻辑在单片机应用系统中被普遍使用1.
非编码键盘的工作原理分类硬件编码式键盘、二维直读式键盘独立式键盘〔简单键盘〕、行列式键盘(矩阵式键盘)独立式按键行列式键盘01111011110111103.消除抖动不良后果的方法⑴硬件去抖动RC滤波电路去抖动电路简单实用,效果较好。⑵软件去抖动检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。键处理的流程图
4.独立式按键处理过程查键:扫描有否键按下,若无键按下,返回有键按下软件去抖:延时20ms找键等键释放软件去抖:延时20ms;准备输入等放去抖查键KE2: MOV B,#0 ;保存键值0KE3: ANL A,#3FH RRC A ;(A.0)Cy JNC KE4
INC B SJMP KE3KE4: ORL P1,#3FH MOV A,P1 ANL A,#3FH CJNE A,#3FH,KE4
MOV A,B ;返回键值
CJNE A,#06H,KE5KE5: JC KE6 ;Cy=1,(A)<6KE7: MOV A,#0FFH;(A)>=6KE6: RETKE: ORL P1,#3FH
MOV A,P1 ANL A,#3FH ;P1.0~P1.5 CJNE A,#3FH,KE1 SJMP KE7 ;无键按下KE1: LCALL DL20 ;延时去抖
ORL P1,#3FH;修改P1 MOV A,P1 ;读P1 ANL A,#3FH CJNE A,#3FH,KE2 SJMP KE7 ;误动作返回找键5.矩阵式键盘工作方式查询定时每隔一段时间对键盘扫描一次利用单片机内部的定时器的定时器溢出中断。中断中断方式00001111处理过程键扫描确认有无按键按下去抖动延时按键的识别:确定键的行、列号扫描算法、线反转法键号的确定等待键释放扫描算法:逐行置低电平,其余各行为高电平,检查各列电平的变化,如果某列线电平为低电平,即可确定此行列线交叉点处的按键被按下。交换行列线的输出读取关系也可以实现。线反转法:首先,将行线编程为输入线,列线编程为输出线,然后使列线线全输出低电平,读取行线电平,行线从高电平转为低电平的行线为按下按键所在行;然后,将列线编程为输入线,行线编程为输出线,然后使行线全输出低电平,读取列线电平,列线从高电平转为低电平的列线为按下按键所在列。[例1]扫描算法用8255A作单片机键盘接口,A口为输出口接键盘列线。C口为输入口接键盘的4条行线8255A地址 A口:7FFCH
B口:7FFDH
C口:7FFEH 控制寄存器:7FFFH子程序KSI:判定有无闭合键的KSI: MOV DPTR,#7FFCH
;A口地址 MOV A,#00H MOVX @DPTR,A
;A口送00H INC DPTR INC DPTR
;C口地址 MOVX A,@DPTR
;读C口 CPL A ANL A,#0FH
;屏蔽高四位 RET00000000有闭合键,则(A)≠0无闭合,则(A)=01111KEY1: ACALL KSI
;检查是否有键闭合 JNZ LK1
;A非“0”则转移 ACALL DLY6
;“延时6ms AJMP KEY1LK1: ACALL DLY6
;有键闭合二次延时 ACALL DLY6
;共12ms去抖动
ACALL KSI
;再检查是否有键闭合 JNZ LK2
;有键闭合转移到LK2 ACALL DLY6 AJMP KEY1
;无键闭合,延时6ms后转KEY1有闭合键,则(A)≠0无闭合,则(A)=0LK2: MOV R2,#0FEH
;扫描初值送R2 MOV R4,#00H
;扫描列号送R4,第0列LK4: MOV DPTR,#7FFCH
;A口地址
MOV A,R2 MOVX @DPTR,A
;扫描初值送A口 INC DPTR INC DPTR
;C口地址 MOVX A,@DPTR
;读C口有闭合键,则(A)≠0无闭合,则(A)=001111111 JB ACC.0,LONE
;ACC.0=1,第0行无键闭合,转LONE MOV A,#00H
;装第0行值 AJMP LKPLONE: JB ACC.1,LTWO
;ACC.1=1,第1行无键闭合,转LTWO MOV A,#08H
;装第1行值 AJMP LKPLTWO: JB ACC.2,LTHR
;ACC.2=1,第2行无键闭合,转LTHR MOV A,#10H
;装第2行值 AJMP LKPLTHR: JB ACC.3,NEXT
;ACC.3=1,第3行无键闭合,转NEXT MOV A,#18H
;装第3行值LKP: ADD A,R4
;计算键码 PUSH ACC
;保护键码LK3: ACALL DIR
;延时6ms ACALL KSI
;检查是否继续闭合,若闭合再延时 JNZ LK3 POP ACC ;若键起,则键码送A扫描列号:R4NEXT: INC R4
;扫描列号加1
MOV A,R2 JNB ACC.7,KEND
;若第7位=0,已扫完最高列则转KND RL A MOV R2,A AJMP LK4
;进行下一列扫描KEND: ………
;扫描完毕扫描列号:R4键盘/显示一体8255接口图小结键盘接口工作原理相应的程序设计方法实验:键盘扫描显示74LS245双向总线收发器74LS273地址锁存器[例2]静态显示两位十进制数MOV A,#35H ;将显示数的BCD码送累加器AMOV DPTR,#0FEFFH ;取显示口地址MOVX@DPTR,A ;送显示数0[例3]DIR1: MOV A,30H ;读显示数
MOV B,#100 ;置除数
DIV AB ;产生百位显示数字
MOV DPTR,#TAB
MOVC A,@A+DPTR ;读百位显示符(段码/字型码)
MOV DPTR,#0DFFFH ;置74377(百位)地址
MOVX @DPTR,A ;输出百位显示符(段码/字型码)
MOV A,B ;读余数
MOV B,#10 ;置除数
DIV AB ;产生十位显示数字
MOV DPTR,#TAB ;置共阳字段码表首址
MOVCA,@A+DPTR ;读十位显示符(段码/字型码)
MOV DPTR,#0BFFFH ;置74377(十位)地址
MOVX@DPTR,A ;输出十位显示符(段码/字型码)
显示存在内RAM中30H开始的数据(≤255)
MOV A,B ;读个位显示数字
MOV DPTR,#TAB ;置共阳字段码表首址
MOVC A,@A+DPTR ;读个位显示符
MOV DPTR,#7FFFH ;置74377(个位)地址
MOVX @DPTR,A ;输出个位显示符
RET ;共阳字段码表TAB: DB0C0H,0F9H,0A4H,0B0H,99H DB92H,82H,0F8H,80H,90H;[例2]线反转法KEY: MOV P1,#0F0H ;行线置低电平,列线置输入态KEY0: MOV A,P1 ;读列线数据
CPL A ;数据取反,“1”有效
ANL A,#0F0H ;屏蔽行线,保留列线数据
MOV R1,A ;存列线数据(R1高4位) JZ GRET ;全0,无键按下,返回KEY1: MOV P1,#0FH ;行线置输入态,列线置低电平
MOV A,P1 ;读行线数据
CPL A ;数据取反,“1”有效
ANL A,#0FH ;屏蔽列线,保留行线数据
MOV R2,A ;存行线数据(R2低4位) JZ GRET ;全0,无键按下,返回
JBC F0,WAIT ;已有消抖标志,转
SETB F0 ;无消抖标志,置消抖标志
LCALL DY10ms ;调用10ms延时子程序消抖
SJMP KEY0 ;重读行线列线数据GRET: RET参考程序:WAIT: MOV A,P1 ;等待按键释放
CPL A ANL A,#0FH
JNZ WAIT ;按键未释放,继续等待KEY2: MOV A,R1 ;取列线数据(高4位) MOV R1,#03H ;取列线编号初值
MOV R3,#03H ;置循环数
CLR CKEY3: RLC A ;依次左移入C中
JC KEY4 ;C=1,该列有键按下,(列线编号存R1) DEC R1 ;C=0,无键按下,修正列编号
DJNZ R3,KEY3 ;判
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学(四则混合运算)计算题专项练习与答案
- 2024年反担保协议法律文件样式
- 生态农业园建设项目可行性研究报告
- 2024年劳动协议监管手册内容概览
- 2024年期办公场所租赁协议模板
- 2024室内涂装批白施工服务协议
- 2024新装修工程项目协议
- 产品代理权益详述2024协议模板
- 2024年煤矿煤炭货运专业协议
- 2024年木材购销协议模板
- 骨盆-教学讲解课件
- 做好新形势下群众工作培训课件
- 赛课一等奖《林黛玉进贾府》课件3
- 《世间最美的坟墓》PPT
- 中国古代儒家思想的发展演变教学设计
- 慢性阻塞性肺疾病(-COPD)的药物治疗及合理用药课件
- 广电全媒体运营知识考试题库(含答案)
- 商业插画设计 02课件
- DB37-T 3799-2019 城镇冬季供热服务规范-(高清版)
- 六年级上册美术课件-10 流动的风景线 |浙美版(2014秋)(共13张PPT)
- 市政工程管理制度4篇
评论
0/150
提交评论