c语言经典程序 流程图,c语言超经典矩阵式键盘的接法,流程图和扫描程序
描述
列线输入端P1.0~P1.3通过电阻接正电源,行线P1.4~P1.7所接的单片机的I/O口作为输出端。将输入端置为高电平,输出端置为低电平。这样,当按键没有按下时,所有的输入端无变化,代表无键按下。一旦有键按下,则输入线就受输出线的影响被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
行扫描法
行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
/*************************C语言键盘扫描子函数************************/
uchar KeyV()
{ uchar Key,a;
P3=0x0f; //确定P3.0~P3.3为输入线,P3.4~P3.7为输出线。
if(P3==0x0f) return(0); //无键按下返回0.
else
{ mling(6); //调用延时函数,去前沿键抖
for(a=0;a<4;a++)
{ P3=_cror_(0x7f,a); //计算键值,依次将输出线置低电平,检查输入线。
if(P30==0) break; //P30表示p3.0口引脚。预先定义,以下类同
if(P31==0) break;
if(P32==0) break;
if(P33==0) break;
} Key=P3; //取得键值
for(;P3!=0x0f;P3=0x0f) ; //等待按键释放,去后沿键抖
return(Key); //带键值返回
}
计算后变量Key得到的键值对照:
【0 0xee】 【1 0xed】 【2 0xeb】 【3 0xe7】 【4 0xde】 【5 0xdd】 【6 0xdb】 【7 0xd7】
【8 0xbe】 【9 0xbd】 【A 0xbb】 【B 0xb7】 【C 0x7e】 【D 0x7d】 【E 0x7b】 【F 0x77】
单片机矩阵式键盘C语言扫描子函数详细N_S图
打开APP精彩内容
点击阅读全文
c语言经典程序 流程图,c语言超经典矩阵式键盘的接法,流程图和扫描程序相关推荐
- c语言主程序子程序流程图,c语言超经典矩阵式键盘的接法,流程图和扫描程序
标签:单片机(2591)程序(73)C语言(456) 列线输入端P1.0~P1.3通过电阻接正电源,行线P1.4~P1.7所接的单片机的I/O口作为输出端.将输入端置为高电平,输出端置为低电平.这样, ...
- c语言超经典矩阵式键盘的接法,c语言超经典矩阵式键盘的接法,流程图和扫描程序...
列线输入端P1.0~P1.3通过电阻接正电源 单片机解密,行线P1.4~P1.7所接的单片机的I/O口作为输出端.将输入端置为高电平,输出端置为低电平.这样,当按键没有按下时,所有的输入端无变化,代表 ...
- linux编写一个简单的端口扫描程序,小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2)...
当前位置:我的异常网» Linux/Unix » 小弟我在linux下写了个简单的多线程端口扫描程序, 小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2) www. ...
- 【按键】短按,长按,按键释放,三种模式的按键扫描程序(软件消抖动)
先来说一下这三种模式的意思: 1. 短按模式:单击按键时,返回一次有效按键值:长按时也只返回一次有效按键值.这样可以有效地排除因不小心长按带来的返回多次有效按键,进而执行多次按键处理程序. 2. 长按 ...
- c语言程序stm8s,经典STM8s20实用C语言编程大全
经典STM8s20实用C语言编程大全 我学单片机开门三砖总是要砸的. 第一砖:电源系统,这没什么好说的,只是它是stm8工作的基础总 是要提一下 第二砖:时钟系统,这等下再说. 第三砖:复位系统,st ...
- c语言if怎么结束_07if与循环案例超经典C语言
本讲将通过几个经典例子来讲解选择与循环嵌套. 选择与选择嵌套 if 与 if嵌套 判断变量a是否在3~10之间. int a = 4;if (a > 3) { if (a 10) { print ...
- c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...
c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...
- 07-if与循环-案例超经典-C语言
本讲将通过几个经典例子来讲解选择与循环嵌套. 选择与选择嵌套 if 与 if嵌套 判断变量a是否在3~10之间. int a = 4;if (a > 3) {if (a < 10) {pr ...
- c语言简单收银系统程序编码,我有个C语言编写的超市收银系统,请高手修改下,帮做流程图,可追加分...
我有个C语言编写的超市收银系统,请高手修改下,帮做流程图,可追加分0 #includestruct goods{ char no[8];3char name[20]; float price; i ...
最新文章
- S2JH经验分享:控制jdbc:initialize-database与其他bean加载顺序
- R语言attach函数、detach函数(全局注册或者全局解除)实战
- ubuntu下修改文件权限
- MySQL 数据库慢查询日志分析脚本
- 第一次上计算机课日记500,第一次上网课作文500字
- 利用树求解算术表达式的值
- 微信小程序_(表单组件)button组件的使用
- POJ 1002 解题分析
- 广成 USBCAN-II Pro V502 linux下升级经验
- TortoiseSVN--Subversion客户端使用详解及问题解决
- 分治法经典问题-逆序对个数
- 虚拟化--062 vsphere workstation bios启动
- python逻辑型数据也叫什么_python基础(三)python数据类型
- 《Adobe Premiere Pro CC经典教程》——6.2 节目监视器控件
- 身份证归属地查询接口
- Photoshop学习之旅--通道抠图
- 什么是反射(Reflection)?它能做什么?
- [转]94个比付费软件更好的免费软件
- 解读国内外园艺机器人的应用现状
- 115道Java面试题及答案分享,java程序员赶紧收好
热门文章
- mybatis plus分页插件
- 准备机试时候不懂的问题
- 前有阿里苏宁,后有拼多多国美
- 计算工资及所得税java_根据最新税法的相关规定,个人所得税工资、薪金的计算适用( )...
- Day228229.上传查询医院接口、上传查询删除科室接口、上传查询删除排班接口 -尚医通
- Python Turtle绘图[难度2星]:多边形螺旋线(颜色交叉/颜色分层)
- Canvas 旋转风车绘制
- easyexcel导入时读不到数据_java编程中通过easypoi导入excel文件并验证导入数据
- 一个简单的支付系统设计
- 解决adb devices出现no permission的问题(转)