




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4×4矩阵键盘的键值计算及编程51单片机C语言编程及Proteus仿真本讲主要内容键值计算基本原理1读取I/O口值的练习2键盘的键值计算3键盘扫描编程__线反转法4一个数码管显示矩阵键盘值的实验5景德镇学院机电系矩阵键盘的键值计算及编程1键值计算基本原理__“好人被带坏”
默认状态:单片机通电复位后P1P2P3口每个脚都输出高电平,P0口要接上拉电阻才能输出高电平。a各脚状态标记都是红色方块。
b用电压测量都是5V。景德镇学院机电系矩阵键盘的键值计算及编程1键值计算基本原理__“好人被带坏”
要使一个引脚变为低电平有如下方法:a接地。
b用逻辑状态信号人为改变。c编写程序使其输出低电平。
景德镇学院机电系矩阵键盘的键值计算及编程1键值计算基本原理__“好人被带坏”
一个低电平引脚与高电平引脚相接,结果如何?实验结果:“好人被带坏”,即高电平引脚电压被变低。景德镇学院机电系矩阵键盘的键值计算及编程2读取I/O口值的练习
一般都是自高到低读出一个端口各脚电平,得到8位二进制数,再将8位二进制转换成2位十六进数。P1口值=P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0=11011111=0xdfP3口值=P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0=11111010=0xfaP1口高四位是指:P1.7P1.6P1.5P1.4
P1口低四位是指:P1.3P1.2P1.1P1.0
景德镇学院机电系矩阵键盘的键值计算及编程2读取I/O口值的练习
用程序控制单片机P2口工作,让高四位全高电平,低四位全低电平。即:P2=0xf0;具体实现见操作,结果如图。景德镇学院机电系矩阵键盘的键值计算及编程2读取I/O口值的练习当P2=0xf0;外接一个两脚开关到P2口只能让P2产生如下四个新的值:0xe0,0xd0,0xb0,0x70
0xe00x70景德镇学院机电系矩阵键盘的键值计算及编程2读取I/O口值的练习当程序使P2=0x0f;外接一个两脚开关到P2口只能让P2产生如下四个新的值:0x0e,0x0d,0x0b,0x07
0x0d0x0b景德镇学院机电系矩阵键盘的键值计算及编程2读取I/O口值的练习总结开关接通后,如果两引脚上电平不同时,会将高电平引脚电压变低。
景德镇学院机电系矩阵键盘的键值计算及编程3键盘的键值P2口接有4×4键盘,低四位做行线,高四位做列线。
景德镇学院机电系矩阵键盘的键值计算及编程3键盘的键值找行线值时,程序使P2=0x0f;P2.0行线上开关按下会使P2口值变为0x0e,其余同理。
景德镇学院机电系矩阵键盘的键值计算及编程3键盘的键值找列线值时,程序使P2=0xf0;P2.7列线上开关按下会使P2口值变为0x70,其余同理。
景德镇学院机电系矩阵键盘的键值计算及编程3键盘的键值键盘的键值位置键值(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行,2列)d0+07=d7(4行,3列)b0+07=b7(4行,4列)70+07=77
注:行列线的排列不同,键值分布也不同景德镇学院机电系矩阵键盘的键值计算及编程3键盘的键值键盘的键值位置键值(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
(3行,4列)be(4行,1列)77(4行,2列)7b(4行,3列)7d(4行,4列)7e
找出行线值置行线所处端口位置高电平找出列线值置列线所处端口位置高电平行线值+列线值=键值计算键值一般方法景德镇学院机电系矩阵键盘的键值计算及编程3键盘的键值总结4×4矩阵键盘的键值共有16个,计算键值时总是:先找出行线值,再找出列线值,最后绘出矩阵键盘的键值。
景德镇学院机电系矩阵键盘的键值计算及编程4键盘扫描编程__线反转法/************键盘扫子描函数*******************/charkeyscan(void)//键盘扫描函数,键盘使用P2口{charvalue_h,value_l;//value_h行值变量,value_l列值变量P2=0xf0;//将行线所处位置置高电平if((P2&0xf0)!=0xf0)//判断是否有键按下{ delay(10);//延时防抖if((P2&0xf0)!=0xf0)//仍有键按下{value_h=P2&0xf0;//读出P2口值给变量value_h P2=0x0f;//将列线所处位置置高电平value_l=P2&0x0f;//读出P2口值给变量value_lreturn(value_l+value_h);//找到的键值返回给调用函数}}}景德镇学院机电系矩阵键盘的键值计算及编程4键盘扫描编程__线反转法流程分析/************键盘扫子描函数*******************/charkeyscan(void)//键盘扫描函数,键盘使用P2口{charvalue_h,value_l;//value_h行值变量,value_l列值变量P2=0xf0;//将行线所处位置置高电平if((P2&0xf0)!=0xf0)//判断是否有键按下{ delay(10);//延时防抖if((P2&0xf0)!=0xf0)//仍有键按下{value_h=P2&0xf0;//读出P2口值给变量value_h P2=0x0f;//将列线所处位置置高电平value_l=P2&0x0f;//读出P2口值给变量value_lreturn(value_l+value_h);//找到的键值返回给调用函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康精算模型分析试题及答案
- 探索马工学管理学发展方向试题及答案
- 2024年投资咨询市场分析试题及答案
- 2025新版农副产品市场交易合同示范文本:食用农副产品流通安全协议
- 提升竞争力的陪诊师考试试题及答案
- 动物实验动物福利的相关法律法规试题及答案
- 2拉拉手交朋友 (教学设计)统编版道德与法治一年级上册
- 2025存量房买卖合同模板下载
- 2024年高中地理的全球水资源分布试题及答案
- 创新思维监理工程师试题及答案
- 2024专升本英语答题卡浙江省
- 2024年荆门市水务局事业单位公开招聘工作人员招聘历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 反食品浪费及食品安全与健康
- 【劳动教育一等奖教学案例】-二年级劳动教育-《三股辫儿我会编》活动方案
- 校园模拟法庭剧本
- 水准测量记录数据自动生成表
- 2024年十堰市中小学教师职称晋升水平能力测试题附答案
- 肝门部胆管癌护理查房课件
- 神经内科护理查房课件眩晕
- 公司经营合同-公司代持股份协议范本新
- 水平三(五年级)体育《障碍跑-红军长征路》教学设计及教案
评论
0/150
提交评论