版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、键输入过程与软件结构图9.1MCS–51单片机键输入过程
二、键盘接口和键输入软件中应解决的几个问题
1.消除键抖动键稳定键按下前沿抖动前沿抖动图9.2键合断时的电压抖动
顺序排列键编码--如图9.3所示。这种方法,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成:键码=行首键码+列号2.键编码及键值图9.3行列式键盘的编码与键值
顺序排列编码0列
1列
2列
3列0行1行2行3行+5V
3.键盘的监测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。三、独立式按键1.独立式按键接口结构图9.4独立式按键的接口电路示意图(a)中断方式;(b)查询方式
2.独立式按键的软件结构下面是查询方式的键盘程序。K0~K7为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节,PROM0~PROM7分别为每个按键的功能程序。设I/O为P1口。START:MOVA,#0FFH ;
MOVP1,A ;置P1口为输入状态
MOVA,P1 ;键状态输入
JNBACC.0,K0;检测0号键是否按下,按下转
JNBACC.1,K1;检测1号键是否按下,按下转JNBACC.2,K2 ;检测2号键是否按下,按下转
JNBACC.3,K3;检测3号键是否按下,按下转
JNBACC.4,K4;检测4号键是否按下,按下转
JNBACC.5,K5;检测5号键是否按下,按下转
JNBACC.6,K6;检测6号键是否按下,按下转
JNBACC.7,K7;检测7号键是否按下,按下转
JMPSTART;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1
K7:AJIMPPROM7;入口地址表…PROM0:………;0号键功能程序
………JMPSTART ;0号键功能程序执行完返回PROM1:………;0号键功能程序
………JMPSTART ;1号键功能程序执行完返回
………;7号键功能程序PROM7:………JMPSTART ;7号键功能程序执行完返回…四、行列式(矩阵)键盘(省I/O口)
行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如4×4的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。
0列
1列
2列
3列图9.5
键盘的组成0行1行2行3行+5V1.行列式键盘的接口行列式键盘的接口方法有许多,例如直接接口于单片机的I/O口上;利用扩展的并行I/O接口;用一种可编程的键盘、显示接口芯片8279进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用(实验箱8255)。2.原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被箝位在高电平状态。
2.键盘工作方式编程扫描和中断扫描1)编程扫描方式
CPU在完成其它工作的空余来响应键输入要求。图9.68×8键盘连接……+5V+5V……
8255
PA7PA1PA0PB0PB1PB7……
键盘中有无键按下是由列线送入全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为"1"。
键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出"0",置对应的列线为低电平,然后从PC口读入行线状态,如果全为"1",则所按下之键不在此列;如果不全为"1",则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。
求取键码图9.7
中断连接方式&
INT1
80C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V2)中断扫描方式中断工作方式:提高CPU的效率,可采用中断工作方式。
这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。3.键盘接口举例:
图9.8
软件消除抖动和识别键码流程图YYYNNN
闭合键释放吗?返回二次调用延时子程序12ms
有键闭合吗?调用延时子程序6ms
有键闭合吗?判断闭合键键码转键码处理KEY键盘扫描子程序如下:KEY1:ACALLKS1 ;调用判断有无键按下子程序
JNZLK1;有键按下时,(A)≠0转消抖延时
AJMPKEY1 ;无键按下返回
LK1:ACALLTM12S;调12ms延时子程序
ACALLKS1 ;查有无键按下,若有则真有键按下
JNZLK2;键(A)≠0逐列扫描
AJMPKEY1 ;不是真有键按下,返回
LK2;MOVR2,#0FEH ;初始列扫描字(0列)送入R2MOVR4,#00H ;初始列(0列)号送入R4
LK4:MOVDPTR,#7F01H;DPTR指向8155PA口
MOVA,R2;列扫描字送至8155PA口
MOVX@DPTR,AINCDPTR;DPTR指向8155PC口
INCDPTRMOVXA,@DPTR;从8155PC口读入行状态
JBACC.0,LONE;查第0行无键按下,转查第1行
MOVA,#00H;第0行有键按下,行首键码#00H→AAJMPLKP;转求键码
LONE:JBACC.1,LTWO;查第1行无键按下,转查第2行
MOVA,#08H;第1行有键按下,行首键码#08H→AAJMPLKP;转求键码LTWO:JBACC.2,LTHR;查第2行无键按下,转查第3行
MOVA,#10H;第2行有键按下,行首键码#10H→AAJMPLKP;转求键码LTHR:JBACC.3,NEXT;查第3行无键按下,转该查下一列
MOVA,#18H;第3行有键按下,行首键码#18H→ALKP:ADDA,R4;求键码,键码=行首键码+列号
PUSHACC;键码进栈保护LK3:ACALLKS1;等待键释放
JNZLK3;键未释放,等待
POPACC;键释放,键码→ARET;键扫描结束,出口状态(A)=键码NEXT:INCR4;准备扫描下一列,列号加1MOVA,R2 ;取列号送累加器AJNBACC.7,KEND;判断8列扫描否?扫描完返回
RLA ;扫描字左移一位,变为下一列扫描字
MOVR2,A;扫描字送入R2AJMPLK4 ;转下一列扫描KEND:AJMPKEY1 KS1:MOVDPTR,#7F01H ;DPTR指向8155PA口
MOVA,#00H ;全扫描字→AMOVX@DPTR,A ;全扫描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,@DPTR;读入PC口行状态CPLA;变正逻辑,以高电平表示有键按下ANLA,#0FH ;屏蔽高4位,只保留低4位行线值RET;出口状态:(A)≠0时有键按下TM12ms:MOVR7,#18H;延时12ms子程序TM: MOVR6,#0FFHTM6:DJNZR6,TM6DJNZR7,TMRET9.3显示及显示器接口一、LED显示器结构与原理
图9.9七段显示块管脚与结构图表9.1七段LED的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“灭”00HFFHA77H88HB7CH83H
二、LED显示器与显示方式图9.10N位LED显示器
1.LED静态显示方式
LED工作在静态显示方式下,共阴极接地或共阳极接+5V;每一位的段选线(a~g、dp)与一个8位并行I/O口相连,如图5.10所示。该图表示了一个4位静态LED显示器电路,显示器的每一位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。由于每一位由一个8位输出口控制段选码,故在同一时刻各位可以显示不同的字符。
N位静态显示器要求有N×8根I/O口线,占用I/O口线较多。故在位数较多时往往采用动态显示方式。2.LED动态显示方式图9.118位LED动态显示器电路
三、8255接口1.试写出8255的PA\PB\PC\及控制寄存器的地址2.设置8255的控制寄存器,并初始化8255(88H)3.试写出键盘扫描程序一般应具有的功能4.试编写在两位数码管上显示数字20编程思路(2段码为A4;0段选码为C0)5.试写出用手按下键盘后,在八段数码管上显示对应键值的思路
A/D转换器芯片种类很多,按其转换原理可分为逐次比较式、双重积分式、量化反馈式和并行式A/D转换器;按其分辨率可分为8~16位的A/D转换器芯片。目前最常用的是逐次逼近式和双重积分式。9.4A/D转换器接口一、A/D转换器主要参数1.分辨率:A/D转换器输出数字量的最低位变化一个数码时,对应输入模拟量的变化量。其中n为A/D转换器的位数。2.转换速度:是指A/D转换器完成一次转换所需要的时间。即从开始转换到输出端出现稳定的数字量所需要的时间。二、A/D转换器ADC0809与单片机的接口1.ADC0809芯片简介图9.13ADC0809芯片的内部逻辑结构与引脚图表9.2ADC0809通道地址选择表
ADDCADDBADDA选通的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN728双列直插式封装:IN0~IN7:模拟量输入通道ADDA/ADDB/ADDC:模拟通道地址线ALE:地址锁存信号START:转换启动信号。脉冲式启动,脉冲下降沿有效D0~D7:数据输出线OE—输出允许信号,为脉冲信号,高电平时打开三态输出锁存器,将转换结果的数字量输出的数据总线上。CLK—时钟信号EOC—转换结束状态信号,转换期间为低电平,转换结束为高电平编程须注意的几点:a.一个ADC开始转换时,必须加一个启动转换信号,这一启动信号要由单片机提供-------脉冲启动和电平启动两种;b.当ADC转换结束时,ADC输出一个转换结束标志信号,通知单片机读取转换结果-------一般有中断和查询两种;c.A/D转换器的另一个重要连接信号是时钟,其频率是决定芯片转换速度的基准。图9.2ADC0809转换工作时序2.ADC0809的工作时序
一般来说,A/D转换器与单片机的接口主要考虑的是数字量输出线的连接、ADC启动方式、转换结束信号处理方法以及时钟的连接等。A/D转换器与单片机接口具有硬、软件相依性。①.在ALE的上升沿锁存模拟通道地址线ADDA/ADDB/ADDC-----------选择模拟量输入通道;②.START的下降沿启动A/D转换;③.EOC在转换过程中呈现低电平;转换结束EOC呈现高电平;⑤.OE为正脉冲后,将转换结果送到数据总线上。时序分析:3.ADC0809与单片机硬件接口
图9.3ADC0809与8031的接口连接图
启动转换:MOVDPTR,#BFF8HMOVX@DPTR,A读取结果:MOVDPTR,#BFF8HMOVXA,@DPTR地址范围:BFF8H~BFFFH4.A/D转换应用程序举例
设图9.13接口电路用于一个8路模拟量输入的巡回检测系统,使用中断方式采样
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗器械行业风险分析报告
- 2025年工程机械油缸市场环境分析
- 2025年广州专业市场调研报告范文
- 2025年兴化保安考试题库及答案
- 初中地理期末试卷及答案
- 风场安全培训题库及答案
- 社工面试管理题库及答案
- 2025年旅游调查报告5
- 2025年昊慧流体科技(宁波)有限公司介绍企业发展分析报告
- 2025年机制专业剖析报告
- 安全防护用品采购合同
- 寺禅文化传承发展生态园项目实施方案
- 江苏省综合评标专家库题库
- 《得道多助-失道寡助》对比阅读6篇(含答案)
- 医保理疗及中医治疗记录单
- 啤酒厂全套安全生产操作规程
- 机电安装监理质量控制要点-机电工程质量控制要点共课件
- 【钢铁冶炼】-锌冶炼中汞的回收利用
- 泌尿科品管圈提高携带双J管患者的健康教育落实率
- 艺术课程标准(2022年版)
- 泥玩具教学课件
评论
0/150
提交评论