KEIL中的键盘扫面程序这么跳不出循环 新人求解答 2C

uchar jianpan()
{
uchar temp,tem;
uchar sm12[]={'d',0,'g',1,2,3,4,5,6,7,8,9 };
do
{
uint r=0;
for(r;r<3;r++)
{
P0=sm[r];
tem=P0;
temp=tem&0xf0;
if(temp!=0xf0)
{
delay(50);
if(temp!=0xf0)
{
switch(temp)
{
case 0xe0:num=sm12[r]; break;
case 0xd0:num=sm12[r+3];break;
case 0xb0:num=sm12[r+7]; break;
case 0x70:num=sm12[r+10]; break;
}
}
}

} //for

}while(num!=0xf0);

if(temp!=0xf0)
{
temp=P0&0xf0;
}

return num;
}

2个回答

keil中switch的break可能会被优化掉,用if else吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
单片机——按键扫描

按键扫描,我想应该是比较简单的单片机应用了,但是有时候看起来简单的东西反而不好写。 本文拿大部分人觉得简单的按键扫描聊聊我工作至今对于软件结构的理解。嗯,对的,是结构,不是架构,暂时不敢提架构这个词。 按键扫描,我当时入门的时候是看的郭天祥的51单片机入门的,视频里面讲的是循环扫描io引脚,一旦有电平变化就利用软件延时消抖,模拟延时就是让单片机空转,什么也不做,等待个几十毫秒之后再检测一次如果...

4X4矩阵键盘扫描程序以及显示程序

自己编写的4X4矩阵式键盘的循环扫面程序,以及在12864液晶显示屏上显示调用的一些函数,很好用,注释很清楚。

利用keil编写stm32循环点亮一LED灯

利用keil编写stm32循环点亮一LED灯 在tiaos

解决keil4版本的程序乱跳的原因

前段时间调试一个很简单的IIC总线程序,程序编译通过了,但是在软件仿真调试的时候发现,不按照自己设定的程序跳转,找了很多天现在总结如下:          1.是你的程序优化级别太高,调低点就可以了,现在的ROM都很大。  2.是你有中断程序没有用,或者用错了  3.你定义的指针有错或者非法一、优化       KeilC51的编译器有一个优化设置,不同的优化设置,会产生不同的编译结果。一般情况缺省编译优化设置被设定为8级优化,实际最高可设定为9级优化:1. Dead code elimination。 2

51单片机键盘扫面程序

是关于51单片机的代码,我自己写的。分享分享。

求1到100的累加和,51单片机,keil软件

编程:计算1~100的累加和,结果存放在内部RAM的30H、31H中,低位字节在前。 悬赏分:100 - 解决时间:2009-11-29 20:22 --------------------------------------最佳答案:;下列程序,经过仿真调试,结果是:(30H)=BAH, (31H)=13H;程序如下:     MOV 30H, #0     MOV 31H, #0   

单片机:数码管的动态扫描

#include"bsp.h" sbit DUAN = P0^0; sbit WEI = P0^1; unsigned char TABLECA[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned char TABLECC[16] = {0x3f,0x0

键盘扫面反转法

键盘扫面反转法C语言编写

C#中判断扫描枪输入与键盘输入

提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBox,当条码无法扫描时,需要手工输入。如果是扫描枪输入时,我们将自动去判读条码,而手工输入时,最终需要加按回车键确认后判读条码。这时候我们就要判断输入设备是手工还是扫描枪。      尝试的方法:      1.将TextBox属性设为ReadOnly=true。结果:无法输入。      2.在TextBox的KeyPress

单片机C语言任何位置跳转到任何指定地址 -转

用C语言写的程序为求模块化,一般函数数量较多,函数调用的嵌套层数也多,要从一个较深的嵌套立刻跳出到主函数,是非常困难的。用break或者return是跳不出来的,一般的解决方法或是使用C51的库函数setjmp()和longjmp()实现长跳转,但是这两个函数在中断函数内部是无能为力的;再或是在C函数中嵌入汇编。虽然用汇编指令可以实现程序的长距离跳转,但是这种方法的调试过程十分烦琐,而且程序的可移

C51 main()函数和启动代码 --- 从汇编到c51

第一节 main()函数和启动代码   汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和链接。下面看看它和main()函数是如何编译的;//主函数如下;void main(void){    while (1)    这是个无条件空循环。        {    }}把上面的main()函数编译后的汇编程序和反汇编代码整理后对照如下;?C_C51STARTUP       SEGMENT   

51单片机程序执行流程(STARTUP.A51) [李园7舍_404]

keil 版本:uVision 4         单片机是没有上操作系统的东西,在keil中编写的代码都是裸机代码,深入编写裸机代码有助于了解硬件的特性。       若不是硬件特性已定的情况之下的其它流程都是代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面最终都挂一个while(1);语句。为何要加一句while死循环让程序停留在main函

[C8051F320]完全在Keil下进行C8051…

问题描述:之前写过在Silicon Laboratories IDE下进行C8051Fxx单片机程序开发以及在Keil下编程调试,然后将生成的hex文件用Silicon的Flash Program烧写到单片机中这两种方式的尝试,但感觉都不是很方便,Silicon的IDE使用起来不如Keil的界面以及功能好用,许多出错信息也不很熟悉,而且用这个Silicon IDE的人应当很少,有问题时讨论也不方便

可编程键盘/显示接口芯片8279中文资料

可编程键盘/显示接口芯片8279,用于自动完成键盘扫面输入和led、lcd输出

扫普通链接二维码打开小程序

一,想要扫描普通链接二维码打开小程序,必须在小程序后台进行配置,否则无法完成写在前面:微信对扫描普通链接二维码打开小程序有一定限制,对企业、媒体、政府、其他组织类型小程序开放此功能,个人类型小程序暂不支持开启。另外为确保用户体验,小程序必须先发布代码才可以发布二维码跳转规则。1,首先进入微信公众平台,登录小程序后台管理2,菜单栏选中最后一项“设置”,然后选中“开发设置”,页面下滑到最后一项“扫普通...

一个网上的短小精悍的按键扫描程序及我的看法

短小精悍的按键扫描的深度解读 消抖 多任务

有问题的用DirectX9绘制2D图形的程序

显示不出图像。用的是d3dvertexelement9数组来定义数组的格式。求高人解答!

微信小程序 微信通过扫码跳到任意一个小程序页面

微信扫码跳转小程序任意页面------前提:小程序必须上线废话少说直接进入正题:点击进入微信公众平台接口调试工具:https://mp.weixin.qq.com/debug/如以下页面:   填写上线的小程序的APPid 和 Secret 点击检查问题注意上图的access_token,在下面是有用的然后点击进入我的这个博客:--------------------------注意到我的这个连接...

STC单片机在keil中的循环左右移函数

SCDN      : http://blog.csdn.net/beyondmike QQ        : 276678408Email     : hxtiou@163.comMike      :/***************************************************************************** * Function : 循环左右移...

关于STM32运行时程序卡在B.处的解决方法

背景: 程序运行时,发现程序卡死在B.处。 解决方法: 程序卡死在B.处说明有中断没有处理,导致程序进入中断后无法跳出。 之后查看程序发现,程序中定义了一个中断,但是之前一次偶然把中断处理程序屏蔽了,导致没有中断处理函数。 程序如下: //开启了EXTI15_10_IRQn中断 void nirq_Init(void) { GPIO_InitTypeDef GPIO_Ini...

STM32由boot跳转到应用程序地址

1、keil c应用程序工程中设置IROM1 的起始地址和程序空间的大小。 2、boot中,定义目标地址及函数指针类型: #define ApplicationAddress 0x08001000 typedef void (*pFunction)(void); pFunction Jump_To_Application; u32 JumpAddress; 3、boot中,完成以下任务:

解决安卓版微信扫描二维码白屏的问题

今天遇到一个问题,做的网站,通过安卓手机微信扫一扫二维码或者识别二维码链接无法跳转,显示白屏,但是ios的微信扫码就没有问题,一开始认为是安卓版微信做了限制,后来分析了下扫码后跳转的链接,发现了这个问题: 我的链接是类似于http://xxxx.com/xxx.do?abc,ios的扫码识别出来的没问题,安卓的微信扫码后跳转的地址是http://xxxx.com/xxx.do?abc=,后面多了

区分键盘输入与扫描枪输入的源代码

区分键盘输入与扫描枪输入的源代码

键盘扫描程序

键盘扫面c程序,4*4的键盘。直接给出移植文件,只需添加到所在的工程就可以用,适合各种用c的单片机,arm,dsp等

扫描条形码扫不出来的情况

当app需要添加扫条形码的功能的时候。自己不会,网上一搜。遂引用之; 但之后发现了扫描书本上的二维码还ok,但公司自己印的都扫不动。本来打算用zxing替换呢。发现ZXing好像的iphone部分已经没啦。不知道为啥。。 闹了两天。解决:       if (item.type == QRItemTypeQRCode) {         _output.metadataObjectT

关于微信二维码带参跳小程序

1.自定义二维码扫码进入小程序页面规则  如果后缀参数带?id=X,X是变化的,则不满足前缀匹配,所以带动态参数值的无法扫码打开指定页面,我们的页面每个活动id也是变化的,所以扫码进入小程序当前活动也是无法实现的2.公众号跳小程序1.公众号介绍页:找到公众号关联的小程序,如丰巢快递公众号2.公众号自定义菜单: 可设置为一级菜单或二级菜单3.公众号模板消息:关联时下发4.公众号图文消息中的小程序卡片...

新人 菜鸟 求解答

大家好,我想了解一些安卓基础知识,我是小白,大家肯定知道 安卓版(或者iphone)的app界面是用什么工具做的? 生成的是什么东西?用户请求是怎么接收的? 然后数据是怎么保存的(数据库,还是文件)? 希望大家不厌其烦告诉我一点,谢谢啊

小程序扫描普通链接二维码跳转小程序指定界面

微信官方文档https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html 看了官方文档之后,还是存在很多困惑,微信小程序是托管到微信服务器上的,要想扫描普通链接跳转指定界面,首先要知道微信把小程序放的服务器的访问路径,这些最初想法,可是看微信官方文档,感觉不是我想的这样的文档上:“二维码规则的域名须通过ICP备案的验证。

职场新人应该如何为人处世:踏实做事,诚实做人

年轻人作为职场新人,常常面临很多困惑,特别是对于“人情世故”的把握往往处于被动。 前段时间,一位咨询公司的女老总发微博说,在咖啡店面试一名求职者时,因为对方没有“端饮料”和“埋单”,觉得求职者不注重“细节”,不懂“人情世故”。该微博吸引了众多网友热议,有人表示,在职场上“人情世故”确实非常重要,也有人指责女老板自以为是,苛责求职者。 中国青年报社会调查中心通过搜狐网和民意中国网,对20

微信扫描二维码实现自动跳转

问题描述:二维码的内容为一个连接。如:www.xiangzimomo.cn,用微信扫一扫的功能,只能扫描出www.xiangzimomo.cn连接,需要点击才能完成跳转,如图: 解决方案:只需要将内容改为 http://www.xiangzimomo.cn,既可以完成自动跳转

keil环境下为什么有时候不用while语句也可以不跑飞?

51里面的汇编指令最后会有一个return 遇到return必定弹栈,将SP指针赋给PC 指令解释 LJMP addr16:长转移指令的功能是:把指令码中的目标地址addr16装入程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序,不影响任何标志。 LJMP C:0003 //无条件跳转到0003寄存器 CLR:赋值0 CLR A  //把A寄存器赋0

for循环经典,鸡兔同笼问题

for循环经典,鸡兔同笼问题问题:鸡兔同笼,鸡兔一共35只。笼子里脚一共94只,请问分别有多少只鸡和兔? 思路:首先明确思路,鸡的数量*2加上兔子的数量*4等于脚的总数94,这是一个关键点, 代码很简单,但是关键的条件却要花很多时间去找,要是不明白的真的是很烦啊。 利用for循环列举出所有可能直到if满足条件, 列出表达式 鸡*2 加 兔*4 等于 脚总数94 ,这是if的判断条件,满足就可

Keil里面无法使用“Go To Definition Of ”跳转到相应的函数解决办法

Keil无法使用“Go To Definition Of ”跳转到该函数 第二问题

键盘按键与显示

用汇编语言实现键盘按键与现实功能,采用全扫描的扫面方式

关于用MDK定义无法跳转的问题

关于使用keil来跳转到定义上得问题:是因为要跳转的被定义在了很多个文件了,所以无法跳转, 这样就可以了。 原文出自:http://www.it165.net/embed/html/201506/3129.html

微信小程序 扫码怎么扫都扫不出来

appId 没有填写是扫不出来 ;

利用Keil精确实现软件延时

用定时器延时,有时候显得有点麻烦,我们不如考虑软件精确延时,软件延时无非就是利用for或while多重循环。以前用到延时函数时,都是从网上下载别人写好的延时子程序。延时5ms,400ms,1s,……,这些延时函数的函数名中都清清楚楚地标明了延时的时间,可我一直不知道这些函数是如何

ARM键盘扫面代码

控制595对键盘进行扫描,完成键盘工作的功能,该文件给Key.h提供底层接口

键盘 keil proteus 程序

keil 程序 键盘 keil proteus 程序 多位键盘检测并显示按键类似于计算器

生成扫描跳转到指定页面并带有参数的二维码

后台处理(WAPSplittinRule.cs) using Hidistro.Core; str3 = Globals.HostPath(HttpContext.Current.Request.Url) + "/Wapshop/ReferralAgreement.aspx?ReferralUserId=" + referraluserid.ToNullString(); this.userR

几种按键扫描软件处理方法

按键扫描是每个工程师都会用到的,它就像一个零部件,存在于每个程式系统中。而如何把它写得高效、省空间也是需要一定的技巧。 下面我介绍一下我接触到的一些按键扫描的写法。其实也都是站在巨人的肩膀上,再加上自己的理解稍微改动的,如果有什么错误,请大家指出讨论,一起进步。 在读书时很多人都是采用delay()的方式,我一开始也是,就这么用到毕业,所以做出来的东西经常出问题 if(pin_Key1_IO

微信扫描二维码跳转页面

微信扫描二维码跳转页面

php开发公众号菜单事件,点击,链接跳转,扫码等功能

微信菜单新建好后, 怎么知道用户点击了菜单, 并做出与之相应的业务处理, 是这一节课程要解决的问题。 微信菜单有8大类事件类型, 包括:点击事件,链接跳转事件,扫码事件,拍照发图事件… 每个事件的处理流程类似, 在这里心前面两个最常用的事件为例讲解。 当你学会公众号菜单事件后, 可以实现的常用功能

扫面图片转换成文字的方法

首先你得先把这些打印稿或文件通过扫描仪扫到电脑上去,一般单位都有扫描仪,如果没有也没关系,用数码相机拍也行,拍成图片放到WORD里面去,不过在些 之前,你还得装一下WORD自带的组件,03和07的都行。点开始-程序-控制面板-添加/删除程序,找到Office-修改 找到Microsoft Office DocumentImaging 这个组件,MicrosoftOffice Document

ARM 第一个汇编程序(跳转,循环,reset_handler,swi_handler 软件中断)

AREA demo, CODE, READONLY   ENTRY  b reset_handler    //0x0复位入口  nop  b swi_handler  ////0x08 软件中断入口  nop  nop  nop  nop     //0x18 TRQ(硬件中断)入口      nop  swi_handler    ///0x08 软件中断程序 sub r0,lr,#4  //

网站漏洞扫面器VB源码

蚁族黑客联盟网站漏洞扫面器VB源码网站漏洞扫面器VB源码网站漏洞扫面器VB源码网站漏洞扫面器VB源码网站漏洞扫面器VB源码

端口扫面程序

图形界面实现了UDP TCP对指定主机端口的扫描,完整源代码,注释详细,可以运行

iOS浅谈模拟器弹不出键盘的问题

前言: 昨天帮一个小伙伴调试程序的时候,在模拟器上发现一个问题,就是点击UITextField之后,弹不出键盘...可能有的朋友要说了,那还不容易,你直接Toggle Software Keyboard(command+k)不就解决了吗,可是试了好几遍就是弹不出键盘,不知道是什么鬼 1.首先分析一下command+K为什么没有作用.... 由于在iOS8.0及以后的模拟器中,Xcode默认是使

面阵和线扫工业相机选型

一. 面阵相机和镜头选型 已知:被检测物体大小为A*B,要求能够分辨小于C,工作距为D 解答:  1. 计算短边对应的像素数 E = B/C,相机长边和短边的像素数都要大于E;  2. 像元尺寸 = 物体短边尺寸B / 所选相机的短边像素数;  3. 放大倍率 = 所选相机芯片短边尺寸 / 相机短边的视野范围;  4. 可分辨的物体精度 = 像元尺寸 / 放大倍率 (判断是否小于C); 

keil mdk b __main不进入C语言main函数入口

在调试的时候发现,从startup.s中逐步运行到b __main,但下一步就是不跳转到main函数,后来发现问题出现在以下两个函数: 1、void _mutex_acquire(void *m)  2、void _mutex_release(void *m) 为了保证malloc是线程安全的,必须重写这两个方法,保证开关中断,但千万不能在函数里加printf打印,因为这时候还没有初始化串口...

立即提问
相关内容推荐