
参照窗口程序的设计,检测按键就是用个while来不断检测是不是按到了某个键,至于要做什么就塞循环里
难道要搞机票预订系统么寒……
C是面向过程的只能这样,否则微软早就改进窗口程序代码了
据我所知,实用的快捷方式、快捷键很多,除了平时用的比较多的复制粘特ctrl+c,ctrl+V,还有以下 *** 作:
一、Winkey
winkey是键盘上刻有windows徽标的键。
winkey d :
你知道吗?
按下这个快速组合,可以将从桌面上删除的所有窗口瞬间最小化。 按这个组合可以瞬间复原。 上司和父母来看守时可以强调他。
winkey f :
“搜索:
“所有文件”对话框。
无论如何,按下此组合键后,将显示搜索框,您可以在计算机中搜索任何文件。
不需要用鼠标点移动“开始”-“搜索”-“文件和文件夹”。 (按F3键在桌面上时“搜索:
“所有文件”对话框。
)中被调用,将出现故障
winkey r :
打开“运行”对话框。 很多电脑 *** 作都会有打开驾驶的步骤,怎么办?
还是点击“开始-驾驶”吗?
现在你相信你知道有更好的方法了吧!
winkey e :
打开资源管理器。 你需要打开我的电脑的时候,直接按这个组合吧。 你想开几个吗?
Winkey U :
打开辅助功能管理器。
winkey Ctrl M :
上一个 *** 作前窗口的大小和位置将再次恢复。
winkey BREAK :
打开“系统属性”对话框。
winkey Ctrl F :
“搜索:
“计算机”对话框。
Winkey或Ctrl ESC :
打开开始菜单。
二、F1/2。
F1 :
显示当前程序或windows的帮助内容。
F2 :
选择文件后,意味着“重命名”。
F10或Alt :
激活当前程序的菜单条。
三、Ctrl
CTRL ALT DELETE :
如果无法打开“任务管理器”,死机或关闭应用程序,则可以使用此技巧进入任务管理器并删除文件。
DELETE :
删除选定的文件并将其放入回收站。
SHIFT DELETE :
直接删除选定的文件,不经由回收站。
小贴士:
这种 *** 作很少使用,如果意外删除了重要文件,可以使用强大的数据恢复软件进行恢复。
Ctrl N :
在当前使用的应用程序中创建新的空文件以进行编辑。
Ctrl O :
打开“打开文件”对话框。
Ctrl P :
打开“打印”对话框。
Ctrl S :
保存当前 *** 作的文件。
Ctrl X :
将选定的项目剪切到剪贴板。
Ctrl Insert或Ctrl C :
将选定的项目复制到剪贴板。
Ctrl V或Shift Insert :
将剪贴板的内容粘贴到当前位置。
Ctrl Z或Alt Backspace :
取消上一步的 *** 作。
Ctrl F4 :
关闭当前应用程序的当前文本(例如word的当前编辑文档)。
Ctrl F6 :
切换到当前应用程序的下一个文本。
四、Alt
Alt Shift Backspace :
是否要重新执行上一步取消的 *** 作?
属性。
Alt F4 :
关闭当前应用程序。
Alt Spacebar :
打开程序最左上角的菜单。
Alt TAB/ESC :
切换当前程序。 工作中,不知不觉会打开很多窗口,无法安装电脑下面的菜单栏。 我该怎么办? 没有alt tab键的组合吗?
首先单击Alt,然后按tab,窗口中将显示当前打开的所有对话框的名称和图标。 按tab选择要打开的窗口,松开此键即可直接打开。
此外,按alt tab shift键可反转当前打开的窗口。
ALT ENTER :
在windows上运行的MSDOS窗口和全屏状态之间切换。
ALT Print screen :
将当前活动的程序窗口作为图像复制到剪贴板。
P1MDIN是配置输入模式的,置0为模拟输入,置1位数字输入,按键应选择置1,单片机复位后引脚的缺省值是数字输入,所以程序不需要更改P0MOUT是配置输出方式的,置0是开漏输出,置1是推挽输出,按键用不到所以不需要配置C8051f330内部有弱上拉,按键不加上拉电阻也可以正常使用
有独立键盘和距阵键盘的 独立键盘的很简单我就不写了 距阵的我给你写一个
//键盘扫描
uchar Keys_Scan()
{
uchar sCode,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);
}
else
sCode=_crol_(sCode,1);
}
}
}
return(-1);
/
矩阵按键实验
实现现象:下载程序后数码管显示0,按下矩阵按键上的按键显示对应的数字
S1-S4:0-3
S5-S8:4-7
S9-S12:8-B
S13-S16:C-F。
注意事项:如果不想让点阵模块显示,可以将74HC595模块上的JP595短接片拔掉。
/
#include "reg52h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
#define GPIO_DIG P0
#define GPIO_KEY P1
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 KeyValue; //用来存放读取到的键值
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
/
函 数 名 : delay
函数功能 : 延时函数,i=1时,大约延时10us
/
void delay(u16 i)
{
while(i--);
}
/
函 数 名 : KeyDown
函数功能 : 检测有按键按下并读取键值
输 入 : 无
输 出 : 无
/
void KeyDown(void)
{
char a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//读取按键是否按下
{
delay(1000);//延时10ms进行消抖
if(GPIO_KEY!=0x0f)//再次检测键盘是否按下
{
//测试列
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break;
}
//测试行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0): KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0)) //检测按键松手检测
{
delay(1000);
a++;
}
}
}
}
/
函 数 名 : main
函数功能 : 主函数
输 入 : 无
输 出 : 无
/
void main()
{
LSA=0; //给一个数码管提供位选
LSB=0;
LSC=0;
while(1)
{
KeyDown(); //按键判断函数
GPIO_DIG=smgduan[KeyValue]; //
}
}
temp等于0x0e时,键值key等于7 : 这个键值是你自己定义的,就是起一个标志位的作用,然后用程序判断键值,当键值等于7时,该进行什么动作,这就相当于当你那个按键按下时执行什么动作
写单片机C程序 一定要活用标志位
还有你好像都大四了,怎么这样普通的矩阵键盘程序还看不懂,该好好学习呀 兄弟
I和J 只是一个变量 用来决定延时时间的长短 延时是为了消除按键的抖动
毕竟机械按键存在抖动(按下去并不是电平直接就跳变并稳定下来了)
延时是软件消抖 增强系统的稳定性
以上就是关于c语言怎么实现按键的实时检测全部的内容,包括:c语言怎么实现按键的实时检测、键盘上的按键各有什么作用、C8051F330单片机设计按键检测程序。。。急求大神指点!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)