51单片机矩阵键盘的扫描结果返回给主函数的问题

问题描述

51单片机矩阵键盘的扫描结果返回给主函数的问题
  主程序是一个交通灯,现在加了个检测功能。就是4个路口,每个路口用10位的拨码开关检测车辆数量,然后判断是否该减少该路口的红灯时间。
  现在问题是:我检测了四个路口的按键信息并返回给主程序,但是四个路口的返回数据发生错乱。
  例如:假设初始红灯时间设为10s,东西南北按键信息分别是 1,2,3,4。那接下来东西方向红灯应该只有8s(东西两个数据里取最大的),南北红灯应该只有6s。
  但实际上东西红灯时间也减少为6s了。
        下面是所有程序:[交通灯程序](http://pan.baidu.com/s/1c1RcjKk "")

谢谢大家

解决方案

为什么 不直接贴代码上来,搞得真复杂

时间: 2024-10-29 02:45:10

51单片机矩阵键盘的扫描结果返回给主函数的问题的相关文章

51单片机矩阵键盘扫描问题

问题描述 51单片机矩阵键盘扫描问题 51单片机矩阵键盘动态扫描,我就看见例程编的程序都有个把io口值赋给一个temp,例如P3=temp然后再位与,然后再判断temp......我的问题就是为毛不直接判断P3口的值,多此一举干什么,直接用P3来判断按键按下不可以吗,大神门们求解 解决方案 51单片机矩阵键盘扫描 解决方案二: 键盘有抖动现象,需要判断是否是误按了,如果误按了一下,这个时间很短,所以显然不能用P口直接判断 解决方案三: 转换成汇编指令后就会有不同的. 解决方案四: 抖动呀,你按下

小白关于51单片机矩阵键盘的疑惑

问题描述 小白关于51单片机矩阵键盘的疑惑 不理解为什么矩阵键盘一定要通过扫描的方式才能判断哪个键被按下,直接判断P3的值不可以吗 解决方案 因为单片机是单线程,除了中断以外,没有事件之类的东西.所以他要不断的重复检查键盘按键状态,也就是扫描动作

51单片机的键盘扫描程序

 51单片机的键盘扫描程序,算法简单有效,键盘_不采用定时器_不延时,按键在松手后有效,灵敏度高,消耗资源少,运行效率高. /****************************************  键盘_不采用定时器_不延时  特点:  按键在松手后有效,灵敏度高,消耗资源少,运行效率高    独立键盘为:K01=P2^4;K02=P2^5;K03=P2^6;K04=P2^7;  矩阵键盘为:行(上到下)_P2.3_P2.2_P2.1_P2.0             列(左到右)_

单片机矩阵键盘的实现

行扫描法  行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下.判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态.只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中.若所有列线均为高电平,则键盘中无键按下.   判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程.其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平.在确定某根行线位置为低电平后,再逐行检

Win10 IoT C#开发 6 - 4x4矩阵键盘扫描

原文:Win10 IoT C#开发 6 - 4x4矩阵键盘扫描 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我们讲了 Win10 IoT 如何对本地 IoT 设备内嵌 SQLite 数据库进行 CURD 操作 ,这章我们来学习如何使用 GPIO Pin 扫描4x4矩阵键盘按键状态.如果对安装部署过程还不熟悉可以参考前几篇文章,Raspberry

j矩阵键盘-verilog 实现不了矩阵键盘扫描啊,调了两天了,数码管还是乱码

问题描述 verilog 实现不了矩阵键盘扫描啊,调了两天了,数码管还是乱码 哪位大神有源代码,求帮忙发到我邮箱里379810405@qq.com verilog新手求解救!拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托拜托- 解决方案 http://wenku.baidu.com/link?url=Fy0dimklpMDms7dCqfYzKMO23xeCu5yxC90x78cKqv6f84cuxJrpSd_kxrGMgwS5JrgX7yW4wsdYrvqc3In9

《51单片机应用开发从入门到精通》——2.12 电子琴

2.12 电子琴 51单片机应用开发从入门到精通本实例是采用44矩阵式键盘设计出16个音符,随意弹奏. 2.12.1 硬件设计 电子琴电路设计如图2-19所示. 单片机P3为输入端口,接有44矩阵式键盘,键盘上标出16个音符.键盘的4条行线的一端与单片机P3端口的P3.0.P3.1.P3.2和P3.3口相接,另一端通过上拉电阻接到 + 5V上:4条列线的一端与P3端口的P3.4.P3.5.P3.6和P3.7口相接.单片机的P2.4端口为输出端,通过限流电阻R1与三极管基极相接,三极管的集电极接有

51单片机程序参考大全

让流水灯来回流一次,蜂鸣器响一次 001   #include<reg52.h> #include <intrins.h> sbit P10=P1^2; sbit SPK=P1^2;  #define uint unsigned  int     #define uchar unsigned  char    unsigned int temp; void yanshi() ; void fengmq(); void delay(unsigned int cnt) {  while

51单片机之电子钟设计

#include<reg52.h> //#include"DS18B20_3.H" #include <string.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char #define wd 1 //定义是否有温度功能  =0时无温度,=1时有温度 #define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为