当前位置:首页 » 编程语言 » 键盘自检c语言

键盘自检c语言

发布时间: 2022-04-02 02:44:56

Ⅰ 单片机 c语言键盘检测 的问题 谢谢

答:不行。你把原程序中这一句变了:
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
如果在执行完判断后不给temp再次赋上P3的值(temp=P3)它永远跳不出while(temp!=0xf0)这个循环。但如果已经不按键了,就该跳出这个函数了,可是你这样一该,永远也出不去。

Ⅱ [c语言]检测 2种键盘输入,这样行不行呢

scanf返回的是你正确输入变量的数目,如果你输入hello 0 a 0
那么word就得到了正确的值,row也得到了正确的,col得到了错误的,那么后面的orientation就得不到值了,那么scanf的返回值是2.
如果只有你所说的这两种输入,而没有其他错误的输入的话,你的程序的逻辑是可以的

Ⅲ C语言 如何在一段时间内检测键盘是否按下

#include <bios.h>
#include <stdio.h>
main()
{
int key;
for(;;)
{
if (bioskey(1)) /*有键按下,读取键值*/
key=bioskey(0);
else /*无键按下,返回0*/
key=0;
switch(key)
{case 0: ...../*无按键,执行该操作*/
case 0xXXXXH:..../*不同键值,做不同处理*/
。。。。。
}
}
}

该程序段功能:
判断是否有键按下,若有进行不同操作,若无进行其他操作。

相关原理:
函数名: bioskey
功 能: 直接使用BIOS服务的键盘接口
函数原型:int bioskey (int cmd)
说明:bioskey()的函数原型在bios.h中
bioskey()完成直接键盘操作,cmd的值决定执行什么操作。

cmd = 1:
当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。

键盘有按键时,会把键值(扫描码)存入缓冲区,当需要判断是否有键按下时,扫描缓冲区,为空则无键按下,不为空则有键按下。注意:该功能并不清空缓冲区。

cmd = 0:
当cmd是0,bioskey()返回键盘键入的值。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码,高8位存放该键的扫描码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。

其操作步骤为:
1.检测缓冲区是否有数据;
2.没有则继续第一步;
3.读取缓冲区第一个单元中的键盘输入
4.读取的扫描码
5.将已读取的键盘输入从缓冲区删除

Ⅳ c语言键盘按键触发怎么表示

可以用FlexibleButton表示。

FlexibleButton 是一个基于标准 C 语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。

该按键库解耦了具体的按键硬件结构,理论上支持轻触按键与自锁按键,并可以无限扩展按键数量。另外,FlexibleButton 使用扫描的方式一次性读取所有所有的按键状态,然后通过事件回调机制上报按键事件。

核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用 C 语言标准库 API 编写,也使得该按键库可以无缝兼容任意的处理器平台,并且支持任意 OS 和 non-OS(裸机编程)。

快速体验:

FlexibleButton 库中提供了一个测试例程 ./examples/demo_rtt_iotboard.c,该例程基于 RT-Thread OS 进行测试,硬件平台选择了 RT-Thread IoT Board Pandora v2.51 开发板。

当然你可以选择使用其他的 OS,或者使用裸机测试,只需要移除 OS 相关的特性即可。

如果你使用自己的硬件平台,只需要将 FlexibleButton 库源码和例程加入你既有的工程下即可。

DEMO 程序说明:

该示例程序可以直接在 RT-Thread stm32l475-atk-pandora BSP 中运行,可以在该 BSP 目录下,使用 menuconfig 获取本软件包。

Ⅳ c语言检测键盘具体按键

WIN程序中,是写消息处理过程的。。。

如果不写消息过程,可以调用 WINDOWS API 通过循环检测(容易漏)

。。。。。。。。。。。

Ⅵ c语言怎么实现按键的实时检测

参照窗口程序的设计,检测按键就是用个while来不断检测是不是按到了某个键,至于要做什么就塞循环里

难道要搞机票预订系统么寒……
C是面向过程的只能这样,否则微软早就改进窗口程序代码了

Ⅶ C语言如何检测是否按下功能键

有独立键盘和距阵键盘的独立键盘的很简单我就不写了距阵的我给你写一个//键盘扫描ucharKeys_Scan(){ucharsCode,kCode,i,k;//低4位置0,放入4行P1=0xf0;//若高4位出现0,则有键按下if((P1&0xf0)!=0xf0){DelayMS(2);if((P1&0xf0)!=0xf0){sCode=0xfe;//行扫描码初值for(k=0;k<4;k++)//对4行分别进行扫描{P1=sCode;if((P1&0xf0)!=0xf0){kCode=~P1;for(i=0;i<16;i++)//查表得到按键序号并返回if(kCode==KeyCodeTable[i])return(i);}elsesCode=_crol_(sCode,1);}}}return(-1);

Ⅷ c语言中如何随时监测键盘是否有输入

可以运行后指定要打开的文件,成功运行 如我D盘下有f1.txt,没有f3.txt 两次运行结果分别是 一: 请输入要打开的文件名(含路径): d:\f1.txt 成功打开文件d:\f1.txt! Press any key to continue 二: 请输入要打开的文件名(含路径): d:\f3.txt 打开文件失败! Press any key to continue 程序如下: #include <stdio.h> #include <malloc.h> #define MAXSIZE 50 void main() { char* file=(char*)malloc(sizeof(char)*MAXSIZE); printf("请输入要打开的文件名(含路径):\n"); gets(file); FILE* fp; if(!(fp=fopen(file,"r"))) { puts("打开文件失败!\n"); } else { printf("成功打开文件%s!\n",file); fclose(fp); } free(file); }

Ⅸ C语言如何检测键盘动作不要用bios.h和windows.h。

在应用层实现应该用到windows.h;而在核心层可以不必用到bios.h和windows.h.单说记录键盘动作在核心层实现的方法也是有许多种,讲都讲不完.你可以搜索:键盘驱动

Ⅹ 请帮看看这段单片机C语言程序,是键盘检测,有关列检测那里看不懂,帮帮忙啊~~~

你条件都没说清楚啊,那P1,P2接什么,行是接P口的高四位还是低四位?等问题都须告知啊

热点内容
手机配置高玩不了单机游戏怎么办 发布:2025-07-26 15:53:05 浏览:258
手机设置开机手势密码后如何解锁 发布:2025-07-26 15:39:14 浏览:39
迭代优化算法 发布:2025-07-26 15:25:45 浏览:947
东风本田买哪个配置好 发布:2025-07-26 15:10:01 浏览:764
plsql游标 发布:2025-07-26 15:09:51 浏览:127
android转字符串数组 发布:2025-07-26 15:08:05 浏览:268
实时产量编程 发布:2025-07-26 15:03:33 浏览:112
c语言汉诺塔算法 发布:2025-07-26 14:56:13 浏览:937
androidqq空间分享 发布:2025-07-26 14:27:27 浏览:724
为什么招生办公室登录密码错误 发布:2025-07-26 14:27:13 浏览:665