版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、线线 反反 转转 法法44矩阵键盘的键值计算及编程矩阵键盘的键值计算及编程51单片机C语言编程及Proteus仿真景德镇学院机电系景德镇学院机电系.j本讲主要内容本讲主要内容键值计算基本原理1读取I/O口值的练习2键盘的键值计算3键盘扫描编程_线反转法4一个数码管显示矩阵键盘值的实验5景德镇学院机电系景德镇学院机电系.j1 键值计算基本原理键值计算基本原理_“好人被带坏好人被带坏”v 默认状态:单片机通电复位后默认状态:单片机通电复位后P1 P2 P3口每个脚口每个脚都输出高电平,都输出高电平,P0口要接上拉电阻才能输出高电平。口要接上拉电阻才能输出高电平。 a 各脚状态标记都是红色方块。各脚
2、状态标记都是红色方块。 b 用电压测量都是用电压测量都是5V。景德镇学院机电系景德镇学院机电系.j1 键值计算基本原理键值计算基本原理_“好人被带坏好人被带坏”v 要使一个引脚变为低电平有如下方法:要使一个引脚变为低电平有如下方法: a 接地。接地。 b 用逻辑状态信号人为改变。用逻辑状态信号人为改变。 c 编写程序使其输出低电平。编写程序使其输出低电平。 景德镇学院机电系景德镇学院机电系.j1 键值计算基本原理键值计算基本原理_“好人被带坏好人被带坏”v 一个低电平引脚与高电平引脚相接,结果如何?一个低电平引脚与高电平引脚相接,结果如何? 实验结果:实验结果:“好人被带坏好人被带坏”,即高电
3、平引脚电压被变,即高电平引脚电压被变低。低。景德镇学院机电系景德镇学院机电系.j2 读取读取I/O口值的练习口值的练习v 一般都是自高到低读出一个端口各脚电平一般都是自高到低读出一个端口各脚电平 ,得到,得到8位二进制位二进制数,再将数,再将8位二进制转换成位二进制转换成2位十六进数。位十六进数。 P1口值口值=P1.7 P1.6 P1.5 P1.4P1.3 P1.2 P1.1 P1.0 =1101 1111=0 x df P3口值口值= P3.7 P3.6 P3.5 P3.4P3.3 P3.2 P3.1 P3.0 =1111 1010=0 xfa P1口高四位是指:口高四位是指:P1.7 P
4、1.6 P1.5 P1.4 P1口低四位是指:口低四位是指:P1.3 P1.2 P1.1 P1.0 景德镇学院机电系景德镇学院机电系.j2 读取读取I/O口值的练习口值的练习v 用程序控制单片机用程序控制单片机P2口工作,让高四位全高电平,低四位口工作,让高四位全高电平,低四位全低电平。全低电平。 即:即:P2=0 xf0; 具体实现见操作,结果如图。具体实现见操作,结果如图。 景德镇学院机电系景德镇学院机电系.j2 读取读取I/O口值的练习口值的练习v 当当 P2=0 xf0; 外接一个两脚开关到外接一个两脚开关到P2口只能让口只能让P2产生如产生如下四个新的值:下四个新的值: 0 xe0,
5、 0 xd0,0 xb0,0 x70 0 xe0 0 x70 景德镇学院机电系景德镇学院机电系.j2 读取读取I/O口值的练习口值的练习v 当当 程序使程序使P2=0 x0f; 外接一个两脚开关到外接一个两脚开关到P2口只能让口只能让P2产生如下四个新的值:产生如下四个新的值: 0 x0e, 0 x0d,0 x0b,0 x07 0 x0d 0 x0b 景德镇学院机电系景德镇学院机电系.j2 读取读取I/O口值的练习口值的练习总结总结开关接通后,如果两引脚上电平不同时,会将高电平引脚电压变低。开关接通后,如果两引脚上电平不同时,会将高电平引脚电压变低。 景德镇学院机电系景德镇学院机电系.j3 键
6、盘的键值键盘的键值P2口接有口接有44 键盘,低四位做行线,高四位做列线。键盘,低四位做行线,高四位做列线。 景德镇学院机电系景德镇学院机电系.j3 键盘的键值键盘的键值找行线值时,程序使找行线值时,程序使P2=0 x0f; P2.0行线上开关按下会使行线上开关按下会使P2口值变为口值变为 0 x0e, 其余同理。其余同理。 景德镇学院机电系景德镇学院机电系.j3 键盘的键值键盘的键值找列线值时,程序使找列线值时,程序使P2=0 xf0; P2.7列线上开关按下会使列线上开关按下会使P2口值变为口值变为 0 x70, 其余同理。其余同理。 景德镇学院机电系景德镇学院机电系.j3 键盘的键值键盘
7、的键值键盘的键值键盘的键值 位置位置 键值键值(1行,行,1列)列) e0+0e=ee (1行,行,2列)列) d0+0e=de (1行,行,3列)列) b0+0e=be (1行,行,4列)列) 70+0e=7e (2行,行,1列)列) e0+0d=ed (2行,行,2列)列) d0+0d=dd (2行,行,3列)列) b0+0d=bd (2行,行,4列)列) 70+0d=7d (3行,行,1列)列) e0+0b=eb (3行,行,2列)列) d0+0b=db (3行,行,3列)列) b0+0b=bb (3行,行,4列)列) 70+0b=7b (4行,行,1列)列) e0+07=e7 (4行,
8、行,2列)列) d0+07=d7 (4行,行,3列)列) b0+07=b7 (4行,行,4列)列) 70+07=77 注:行列线的排列不同,键值分布也不同注:行列线的排列不同,键值分布也不同景德镇学院机电系景德镇学院机电系.j3 键盘的键值键盘的键值键盘的键值键盘的键值 位置位置 键值键值(1行,行,1列)列) e7(1行,行,2列)列) eb(1行,行,3列)列) ed(1行,行,4列)列) ee(2行,行,1列)列) d7(2行,行,2列)列) db(2行,行,3列)列) dd(2行,行,4列)列) de(3行,行,1列)列) b7 (3行,行,2列)列) bb(3行,行,3列)列) bd
9、 (3行,行,4列)列) be(4行,行,1列)列) 77(4行,行,2列)列) 7b(4行,行,3列)列) 7d(4行,行,4列)列) 7e 找出行线值找出行线值置行线所处端口位置高电平找出列线值找出列线值置列线所处端口位置高电平行线值行线值+列线值列线值=键值键值计算键值一般方法景德镇学院机电系景德镇学院机电系.j3 键盘的键值键盘的键值 总结总结44矩阵键盘的键值矩阵键盘的键值 共有共有16个,计算键值时总是:个,计算键值时总是: 先找出行线值,再找出列线值,最后绘出矩阵键盘的键先找出行线值,再找出列线值,最后绘出矩阵键盘的键值。值。 景德镇学院机电系景德镇学院机电系.j4 键盘扫描编程
10、键盘扫描编程_线反转法线反转法/*键盘扫子描函数键盘扫子描函数*/ char keyscan(void) /键盘扫描函数,键盘使用键盘扫描函数,键盘使用P2口口 char value_h,value_l; /value_h行值变量行值变量,value_l列值变量列值变量 P2=0 xf0; /将行线所处位置置高电平将行线所处位置置高电平 if(P2&0 xf0)!=0 xf0) /判断是否有键按下判断是否有键按下 delay(10); /延时防抖延时防抖 if(P2&0 xf0)!=0 xf0) /仍有键按下仍有键按下 value_h=P2&0 xf0; /读出读出P2
11、口值给变量口值给变量value_h P2=0 x0f; /将列线所处位置置高电平将列线所处位置置高电平 value_l=P2&0 x0f; /读出读出P2口值给变量口值给变量value_l return(value_l+value_h); /找到的键值返回给调用函数找到的键值返回给调用函数 景德镇学院机电系景德镇学院机电系.j4 键盘扫描编程键盘扫描编程_线反转法流程分析线反转法流程分析/*键盘扫子描函数键盘扫子描函数*/ char keyscan(void) /键盘扫描函数,键盘使用键盘扫描函数,键盘使用P2口口 char value_h,value_l; /value_h行值变量行
12、值变量,value_l列值变量列值变量 P2=0 xf0; /将行线所处位置置高电平将行线所处位置置高电平 if(P2&0 xf0)!=0 xf0) /判断是否有键按下判断是否有键按下 delay(10); /延时防抖延时防抖 if(P2&0 xf0)!=0 xf0) /仍有键按下仍有键按下 value_h=P2&0 xf0; /读出读出P2口值给变量口值给变量value_h P2=0 x0f; /将列线所处位置置高电平将列线所处位置置高电平 value_l=P2&0 x0f; /读出读出P2口值给变量口值给变量value_l return(value_l+value_h); /找到的键值返回给调用函数找到的键值返回给调用函数 景德镇学院机电系景德镇学院机电系.j5 一个数码管显示矩阵键盘值的实验一个数码管显示矩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/JSGS 033-2026灌区明渠输水控制工程智能调控技术导则
- T/TMAC 274-2025汽车安全电子电气架构设计技术要求
- T/SZS 4066-2023食育学习评价指南
- T/VSTR 014-2024铁路视频监控红外热成像设备
- T/UNP 115-2024建设工程质量检测管理规范
- T/CIRA 93-2025放射性物质暂存场所辐射安全技术规范
- T/ZHHX 005-2024疗愈型芳香茶花的评价及应用指南
- 2026医药保健品品牌培育与营销策略研究分析发展报告
- 行前攻略 英国伦敦租车预定渠道、驾照翻译件、选车及保险信息全覆盖
- 《原发性肝癌诊疗规范(2017年版)》解读
- 造纸技术的演变
- 学堂在线 庄子哲学导读 章节测试答案
- 口腔修复学印模与模型技术
- JG/T 194-2006住宅厨房、卫生间排气道
- 23G409先张法预应力混凝土管桩
- 幼儿园课件之大班数学《大家爱锻炼》
- 社区家庭护理(社区护理学课件)
- 微专题3电路图与实物图的转化初中物理人教版九年级全一册
- 期中素能测评(B)课件英语七年级上册
- DZ∕T 0341-2020 矿产地质勘查规范 建筑用石料类(正式版)
- 共享资源培养小学生分享资源的意识课件教案
评论
0/150
提交评论