单片机一个按键的多次击键组合判别技巧

单片机一个按键的多次击键组合判别技巧
单片机一个按键的多次击键组合判别技巧

《一个按键的多次击键组合判别技巧》大话篇

小匠自从上次在旧社区发表了一篇《<程序编写规范倡议书>大话篇》后,好久没有发表"高"论了.急坏了一帮MM,以为小匠退隐江湖了。

(斑竹在旁问道:“MM”不是“Mie Mie”,而是“Ma Ma”吧?)

论坛内外谣言四起,有人说小匠改行了,不做程序匠,改做泥水匠了;还有人说小匠上阿富汗反恐怖去了;其实非也,只因新板论坛启用后,小匠一直用不惯......

(斑竹在旁笑道:是“用不来”吧?)

今天,小匠再次隆重登坛献演。贴一个小程序段.....

(斑竹道:我看是“蹬痰现眼”吧?)

(程序匠人贴完帖子,下到后台,一边洗着手上残余的浆糊,一边哼着小曲:“如果你的‘芯’是一座作坊,我愿作那不知疲倦的程序匠,……”)

(一黑客悄悄贴近匠人,将一个废弃的浆糊桶扣到匠人头上......)

(匠人忙问:“斑竹,谁把灯给关了?”)

(众人哈哈大笑!......)

一个按键的多次击键组合判别技巧

有时在设计中,往往要用一个按键来输入多种信息。如:单击/双击/三击、短击/长击、还有各种组合击键方式。可以用以下程序来做。如果按键闭合时间<500MS,判断为一次短击(0);

如果按键闭合时间>500MS,判断为一次长击(1);

两次击键时间间隔应<700MS,如果按键释放后700MS内无键按下,则结束读键。

读键完毕返回一个键号值KEY_NUM。其意义如下:

KEY_NUM 意义

00000000 无键按下过

00000001 无意义

00000010 单次短击

00000011 单次长击

00000100 短击+ 短击

00000101 短击+ 长击

00000110 长击+ 短击

00000111 长击+ 长击

…………

10000000 7次短击

11111111 7次长击

上表中的KEY_NUM值的规律是,从左向右看,第一个"1"后面的每一位代表一次击键;"0"代表短击,"1"代表长击。掌握该规律后,我们可将任何一个8位的二进制数"翻译"成一种击键组合。例如:01010101,代表的是:短+长+短+长+短+长。

该程序最多可识别7次连续击键,共254种组合。但并非每个程序中用得上。在大多数程序中,能判断双击即可以了,这时可将程序中的ZHBIT定义为2。同理,如果要判断3次按键,将ZHBIT定义为3即可。

当ZHBIT=1时,程序仅能判断一次击键,包括2种组合(短击/长击);当ZHBIT=2时,程序还能判断两次击键,包括6(2+4)种组合(短击/长击/(短+短)/(短+长)/(长+短)/(长+长));以次类推,当ZHBIT=3时,程序能判断三次击键,包括14(2+4+8)种组合。

ZHBIT 组合种类

1 2

2 2+4=6

3 2+4+8=14

4 2+4+8+16=30

5 2+4+8+16+32=62

6 2+4+8+16+32+64=126

7 2+4+8+16+32+64+128=254

下面这段程序摘自小匠的一个智能充电器程序(MCU是EM78P458),如下:

;********************************

;读键子程序

;出口: KEY_NUM =键号值

;中间: KEY_DL =计数器

;说明:

/*

短击:键按下时间<500MS

长击:键按下时间>500MS

两次按键间隔时间<700MS

键号定义:

KEY_NUM=00000000: 无键按下

KEY_NUM=00000001: 无意义

KEY_NUM=00000010: 单次短击

KEY_NUM=00000011: 单次长击

KEY_NUM=00000100: 短击+ 短击

KEY_NUM=00000101: 短击+ 长击

KEY_NUM=00000110: 长击+ 短击

KEY_NUM=00000111: 长击+ 长击

...

...

KEY_NUM=11111110: 长击+ 长击+ 长击+ 长击+ 长击+ 长击+ 短击

KEY_NUM=11111111: 长击+ 长击+ 长击+ 长击+ 长击+ 长击+ 长击

*/

ZHBIT EQU 2 ;按键组合位(选择范围1~7)

;********************************

READKEY:

CLR KEY_NUM ;清键号

JKOFF READKEYF ;键未按下跳

BS KEY_NUM,0 ;"1" -> 键号低位

;=================

READKEYA:

CLR KEY_DL ;清计数器

READKEYB:

INC KEY_DL

MOV A,@50

SUB A,KEY_DL

JBC R3,C

JMP READKEYC ;计数器溢出跳

JKON READKEYB ;键未释放跳

BC R3,C ;C=0

JMP READKEYD

;=================

READKEYC:

WDTC ;喂狗

JKON READKEYC ;键未释放跳

BS R3,C ;C=1

READKEYD:

RLLC KEY_NUM ;键号左移一位,C -> 键号低位JBC KEY_NUM,ZHBIT ;按键检测未完成继续

RET

;=================

CLR KEY_DL ;清计数器

READKEYE:

CALL DL10MS

MOV A,@70

SUB A,KEY_DL

JBC R3,C

READKEYF:

RET ;计数器溢出返回

JKOFF READKEYE ;键未按下跳

JMP READKEYA ;再次检测

;=================

;键闭合跳(宏)

;=================

JKON MACRO ADDRESS

JBS R5,KEY ;键断开跳

FJMP ADDRESS ;键闭合跳

CALL DL10MS ;延时去抖动JBS R5,KEY ;键断开跳

FJMP ADDRESS ;键闭合跳ENDM

;=================

;键断开跳(宏)

;=================

JKOFF MACRO ADDRESS

JBC R5,KEY ;键闭合跳

FJMP ADDRESS ;键断开跳

CALL DL10MS ;延时去抖动JBC R5,KEY ;键闭合跳

FJMP ADDRESS ;键断开跳ENDM

键盘组合键大全

键盘组合键大全Ctrl+S保存 Ctrl+W关闭程序Ctrl+N新建 Ctrl+O打开 Ctrl+Z撤销 Ctrl+F查找 Ctrl+X剪切 Ctrl+C复制 Ctrl+V粘贴 Ctrl+A全选 Ctrl+[缩小文字Ctrl+]放大文字Ctrl+B粗体

Ctrl+I斜体 Ctrl+U下划线 Ctrl+Shift输入法切换 Ctrl+空格中英文切换 Ctrl+回车QQ号中发送信息 Ctrl+Home光标快速移到文件头 Ctrl+End光标快速移到文件尾 Ctrl+Esc显示开始菜单 Ctrl+Shift+<快速缩小文字 Ctrl+Shift+>快速放大文字 Ctrl+F5在IE中强行刷新 Ctrl+拖动文件复制文件 Ctrl+Backspace启动\关闭输入法 拖动文件时按住Ctrl+Shift创建快捷方式

Alt+空格+C关闭窗口 Alt+空格+N最小化当前窗口Alt+空格+R恢复最小化窗口Alt+空格+X最大化当前窗口Alt+空格+M移动窗口 Alt+空格+S改变窗口大小Alt+Tab两个程序交换 Alt+255QQ号中输入无名人Alt+F打开文件菜单 Alt+V打开视图菜单 Alt+E打开编辑菜单 Alt+I打开插入菜单 Alt+O打开格式菜单 Alt+T打开工具菜单 Alt+A打开表格菜单

Alt+W打开窗口菜单 Alt+H打开帮助菜单 Alt+回车查看文件属性 Alt+双击文件查看文件属性 Alt+X关闭C语言 Shift快捷键 Shift+空格半\全角切换 Shift+Delete永久删除所选项,而不将它放到“回收站”中。拖动某一项时按CTRL复制所选项。 拖动某一项时按CTRL+SHIFT创建所选项目的快捷键。 WORD全套快捷键小技巧 CTRL+O打开 CTRL+P打印 CTRL+A全选 CTRL+[/]对文字进行大小设置(在选中目标情况下)

51单片机04矩阵按键逐行扫描,行列扫描代码

矩阵键盘扫描原理 方法一: 逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。 方法二: 行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

//行列扫描 #include #define GPIO_KEY P0 #define GPIO_LCD P2 unsigned char code a[17]= {~0xfc,~0x60,~0xda,~0xf2,~0x66,~0xb6,~0xbe,~0xe0, ~0xfe,~0xf6,~0xee,~0x3e,~0x9c,~0x7a,~0xde,~0x8e,~0x00}; //按位取反的用法 void delay10ms(); void keydown();//要与下面的定义一致 void main() { GPIO_LCD=a[16];//初始化数码管 while(1) { keydown(); } }

void delay10ms() { unsigned char a,b; for(a=38;a>0;a--) for(b=130;b>0;b--); } void keydown() //检测按下,按下时需要消抖,检测松开,返回按键值//没有按键时保持 { unsigned char n=0,key; GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f)//读取按键是否按下 { delay10ms(); //延时10ms消抖 if(GPIO_KEY!=0x0f)//再次检测按键是否按下 { GPIO_KEY=0x0f;//测试列 switch(GPIO_KEY) { case 0x07: key=0;break;

根据C51单片机的键盘及LCD显示

基于C51单片机的键盘及LCD显示 一、实验目的 1.掌握矩阵式键盘的数字键和功能键的编程方法。 2.掌握LCD的接口技术和编程方法。 3.掌握仪器监控程序设计和调试方法。 二、预习与参考 1. 结合ST7920 控制器系列中文图形液晶模块有关资料手册,详细了解ST7920接口设计技术。 2. 参考资料 1)实验板说明书 2)ST7920 控制器系列中文图形液晶模块资料手册 三、设计指标 利用实验板上提供的键盘电路,LCD显示电路,设计一人机界面,能实现以下功能: 1.LCD上显示“重庆科技学院” 2.按键至少包括0-9的数字键 3.LCD显示按键值 4.电子钟显示:时,分,秒(选作) 四、实验要求 1.以单片机为核心,设计4*4非编码键盘及LCD的硬件电路,画出电路原理图。 2.设计4*4非编码键盘及LCD的控制软件,画出流程图,编写控制程序。

五、实验仪器设备和材料清单 单片机实验板、连接导线、ST7920图形液晶模块、PC机; Keil c51软件 六、实验设计及实施的指导 1.实验课前布置实验任务,提出实验要求,预习相关资料,完成硬件草图设计和软件流程图备查。 2.经指导教师检查,预习达到要求者进入实验室实验。 3.按照设计的电路连线,构建键盘及显示系统,经检查无误方可进入下一步。 4.在指导教师指导下调试LCD显示程序。 5.在指导教师指导下调试按键程序。 6.综合调试直到满足设计要求。 七、实验成绩评定方法 实验成绩包括预习、实验完成质量、实验报告质量4部分组成,各部分所占比例分别为30%、30%、40%。 八、实验报告要求 1.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

(整理)键盘快捷键大全69125.

键盘快捷键大全 快捷键大全(实用版) 一、常见用法: F1显示当前程序或者windows的帮助内容。 F2当你选中一个文件的话,这意味着“重命名” F3当你在桌面上的时候是打开“查找:所有文件”对话框 F10或ALT激活当前程序的菜单栏 windows键或CTRL+ESC打开开始菜单 CTRL+ALT+DELETE在win9x中打开关闭程序对话框 DELETE删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站 CTRL+N新建一个新的文件 CTRL+O打开“打开文件”对话框 CTRL+P打开“打印”对话框 CTRL+S保存当前操作的文件 CTRL+X剪切被选择的项目到剪贴板 CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板 SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置 ALT+BACKSPACE或CTRL+Z撤销上一步的操作 ALT+SHIFT+BACKSPACE重做上一步怀废牟僮?br> Windows键+M最小化所有被打开的窗口。

Windows键+CTRL+M重新将恢复上一项操作前窗口的大小和位置 Windows键+E打开资源管理器 Windows键+F打开“查找:所有文件”对话框 Windows键+R打开“运行”对话框 Windows键+BREAK打开“系统属性”对话框 Windows键+CTRL+F打开“查找:计算机”对话框 SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单 SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏 ALT+F4关闭当前应用程序 ALT+SPACEBAR打开程序最左上角的菜单 ALT+TAB切换当前程序 ALT+ESC切换当前程序 ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板 ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板 CTRL+F4关闭当前应用程序中的当前文本(如word中) CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前一个窗口) 在IE中: ALT+RIGHTARROW显示前一页(前进键) ALT+LEFTARROW显示后一页(后退键)

基于51单片机的USB键盘设计与实现

三江学院 本科生毕业设计(论文)题目基于51单片机的USB键盘设计与实现高职院院(系)电气工程及其自动化专业 学生姓名梁邱一学号 G105071013 指导教师孙传峰职称讲师 指导教师工作单位三江学院 起讫日期 2013年12月10日至2014年4月12日

摘要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。 本论文阐述了51系列单片机和USB的相关内容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。 总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以及在硬件部分设计了原理图。 关键词:USB;D12;PC

Abstract With the rapid development of computer technology and multimedia technology constantly updated, traditional computer peripheral interface because there are many shortcomings have been unable to meet the development needs of the https://www.360docs.net/doc/1a9935300.html,pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, has been widely used. This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructions, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corresponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, components and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure. Keywords:USB;D12;PC

基于51单片机的PS2键盘的单片机编程

PS2键盘的单片机编程 在单片机系统中,经常使用的键盘都是专用键盘.此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出.与此相比,在PC系统中广泛使用PS/2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求.因此在单片机系统中应用PS/2键盘是一种很好的选择. 文中在介绍PS/2协议和PS/2键盘工作原理与特点的基础上,给出了一个在单片机上实现对PS/2键盘支持的硬件连接与驱动程序设计实现.该设计实现了在单 片机系统中对PS/2标准104键盘按键输入的支持.使用Keil C51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中.所有程序在 Keil uVision2上编译通过,在单片机AT89C51上测试通过. 1 PS/2协议 目前,PC机广泛采用的PS/2接口为mini-DIN 6pin的连接器,如图1所示. PS/2设备有主从之分,主设备采用Female插座,从设备采用Male插头.现在广泛使用的PS/2键盘鼠标均在从设备方式下工作.PS/2接口的时钟 与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中).主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生. 1.1 从设备到主设备的通信 当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平.如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据.传输的每一帧由11位组成,发送时序及每一位的含义如图2 所示. 每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1.从设 备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟 下降沿读人数据线状态.

快捷键组合大全

电脑键盘快捷键、组合键功能使用大全 发布时间:2013-03-10 08:15 作者:admin 来源:https://www.360docs.net/doc/1a9935300.html, 271878次阅读 大家在使用电脑时如果对快捷键比较熟悉可以更轻松的在网上冲浪,下面电脑百事网来带大家一起学习电脑快捷键知识大全。 所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的。下面为大家介绍一些常用快捷键的使用和功能。希望这些可以给您带来便捷的上网体验。善用快捷键,除了可以更快捷的使用电脑,也是由新手变高手的蜕变哦! (图为标准键盘示意图) 下面来看看各种键盘键的功能和组合键的功能 一、最常用的快捷键:---日常电脑使用中最常用的快捷操作。 1.最常用的快捷键 F5------------刷新 DELETE--------删除

TAB-------改变焦点 CTRL+A--------全选 CTRL+C--------复制 CTRL+V--------粘贴 CTRL+X--------剪切 CTRL+Z--------撤销 CTRL+Y--------恢复 CTRL+S--------保存 CTRL+O-------打开 CTRL+W-------关闭 CTRL+F--------查找 CTRL+F5---强制刷新 CTRL+ESC--开始菜单 CTRL+ALT+DEL任务管理CTRL+空格--中英文输入切换CTRL+Shift输入法切换CTRL+ALT+Z QQ快速提取消息

CTRL+ALT+A QQ截图工具 CTRL+ENTER QQ发消息 ALT+F4--------关闭 ALT+TAB-------切换 SHIFT+DELETE永久删除 Win+pausebreak 属性/alt+entery SHIFT+TAB-反向切换 【窗口】+D显示桌面 【窗口】+R打开“运行 【窗口】+L屏幕锁定 【窗口】+E打开“我的电脑” 【窗口】+F搜索文件或文件夹 【窗口】+TAB项目切换 cmd----CMD命令提示符 二:、键盘快捷键和组合键的功能 F1帮助CTRL+Z撤消

单片机矩阵键盘扫描程序

#include #include #define uint unsigned int #define uchar unsigned char sbit E=P2^7; //1602使能引脚 sbit RW=P2^6; //1602读写引脚 sbit RS=P2^5; //1602数据/命令选择引脚 uint keyflag ; //键盘正在读取标志位,如果Keyflag为1 ,表示正在读取键盘,停止其他功能; char x,y,m,n,c; //Keyflag为0,读取键盘结束,恢复其他功能 char flag1=0; //频率范围10~1000Hz uchar Hrate = 0; //一个周期内高点平占据时间 uchar Lrate = 0; //一个周期内低电平占据时间 uint FREQ0; //定时器T0的计数变量// uint FREQ1; //定时器T1的计数变量// sbit P2_1=P2^0; //设置P2.1,作为信号输出口// uint disbuf[3]; uint figure=0; int sum2=0; int sum1=0; int flag=0; uint count=0; uint max=0; uint disbuf_temp=0; /******************************************************************** * 名称: 1602显示延时函数delay() * 功能: 延时,延时时间大概为5US。

* 输出: 无 ***********************************************************************/ void delay() { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } /******************************************************************** * 名称: bit Busy(void) * 功能: 这个是一个读状态函数,读出函数是否处在忙状态 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ bit Busy(void) { bit busy_flag = 0; RS = 0; RW = 1; E = 1; delay(); busy_flag = (bit)(P0 & 0x80); E = 0; return busy_flag; } /******************************************************************** * 名称: wcmd(uchar del) * 功能: 1602命令函数 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ void wcmd(uchar del) { while(Busy()); RS = 0; RW = 0; E = 0; delay(); P0 = del; delay(); E = 1;

51单片机独立按键程序查询法和外部中断两种

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111代表第一个程序。//2222222222222222222222222代表第二个程序,以此类推 //1111111111111111111111111111111111111111111111111111111111111111111 //1111111111111111111111111111111111111111111111111111111111111111111 /****************************************************************************** * * 实验名: 左右流水灯实验 * 使用的IO : LED使用P2,键盘使用P3.1 * 实验效果: 按下K1键, * 注意: ******************************************************************************* / #include #include #define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( ); //延时10ms /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main(void) { unsigned int i,j; j=0xfe; //1111_1110 while(1) { GPIO_LED=j; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) {

电脑键盘快捷键大全(超全)

电脑键盘快捷键大全 单独按Windows:显示或隐藏“开始”功能表 Windows+BREAK:显示“系统属性”对话框 Windows+D:显示桌面 Windows+M:最小化所有窗口 Windows+Shift+M:还原最小化的窗口 Windows+E:开启“资源管理器” Windows+F:查找文件或文件夹 Windows+CTRL+F:查找电脑 Windows+F1:显示Windows“帮助” Windows+R:开启“运行”对话框 Windows+U:开启“公用程序管理器” Windows+L:切换使用者(WindowsXP新功能) Ctrl快捷键 Ctrl+S保存 Ctrl+W关闭程序 Ctrl+N新建 Ctrl+O打开 Ctrl+Z撤销 Ctrl+F查找 Ctrl+X剪切

Ctrl+C复制 Ctrl+V粘贴 Ctrl+A全选 Ctrl+[缩小文字 Ctrl+]放大文字 Ctrl+B粗体 Ctrl+I斜体 Ctrl+U下划线 Ctrl+Shift输入法切换 Ctrl+空格中英文切换 Ctrl+回车QQ号中发送信息 Ctrl+Home光标快速移到文件头 Ctrl+End光标快速移到文件尾 Ctrl+Esc显示开始菜单 Ctrl+Shift+<快速缩小文字 Ctrl+Shift+>快速放大文字 Ctrl+F5在IE中强行刷新 Ctrl+拖动文件复制文件 Ctrl+Backspace启动\关闭输入法 拖动文件时按住Ctrl+Shift创建快捷方式Alt快捷键 Alt+空格+C关闭窗口

Alt+空格+N最小化当前窗口 Alt+空格+R恢复最小化窗口 Alt+空格+X最大化当前窗口 Alt+空格+M移动窗口 Alt+空格+S改变窗口大小 Alt+Tab两个程序交换 Alt+255QQ号中输入无名人 Alt+F打开文件菜单 Alt+V打开视图菜单 Alt+E打开编辑菜单 Alt+I打开插入菜单 Alt+O打开格式菜单 Alt+T打开工具菜单 Alt+A打开表格菜单 Alt+W打开窗口菜单 Alt+H打开帮助菜单 Alt+回车查看文件属性 Alt+双击文件查看文件属性 Alt+X关闭C语言 ALT+F4 关闭当前应用程序 ALT+SPACEBAR 打开程序最左上角的菜单ALT+TAB 切换当前程序

51单片机按键控制数码管程序

#define uint unsigned int #define uchar unsigned char uchar c; sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7; void delay(uint z); int b[]={0,1,2,3,4,5,6,7};//设置每一位显示的数字 unsigned char code Tab[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳极数码管 int a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { EA=1; EX0=1; IT0=1; P1=0xff; while(1) { for(c=0;c<8;c++)//数码管扫描显示

P2=a[c]; P0=Tab[b[c]]; delay (1); } } } void delay(uint z) { uint a,b; for(a=z;a>0;a--) for(b=110;b>0;b--); } int_0()interrupt 0 { EA=0; if(p10==0) b[0]=(b[0]+1)%10; if(p11==0) b[1]=(b[1]+1)%10; if(p12==0) b[2]=(b[2]+1)%10; if(p13==0) b[3]=(b[3]+1)%10; if(p14==0) b[4]=(b[4]+1)%10; if(p15==0) b[5]=(b[5]+1)%10; if(p16==0) b[6]=(b[6]+1)%10; if(p17==0) b[7]=(b[7]+1)%10;

电脑键盘快捷键操作大全

电脑键盘快捷键操作大全Ctrl+S 保存 Ctrl+W 关闭程序 Ctrl+N 新建 Ctrl+O 打开 Ctrl+Z 撤销 Ctrl+F 查找 Ctrl+X 剪切 Ctrl+C 复制 Ctrl+V 粘贴 Ctrl+A全选 Ctrl+[ 缩小文字 Ctrl+] 放大文字 Ctrl+B 粗体 Ctrl+I 斜体 Ctrl+U 下划线 Ctrl+Shift 输入法切换 Ctrl+空格中英文切换 Ctrl+回车 QQ号中发送信息 Ctrl+Home 光标快速移到文件头

Ctrl+End 光标快速移到文件尾 Ctrl+Esc 显示开始菜单 Ctrl+Shift+< 快速缩小文字 Ctrl+Shift+> 快速放大文字 Ctrl+F5 在IE中强行刷新 Ctrl+拖动文件复制文件 Ctrl+Backspace 启动\关闭输入法 拖动文件时按住Ctrl+Shift 创建快捷方式 Alt+空格+C 关闭窗口 Alt+空格+N 最小化当前窗口 Alt+空格+R 恢复最小化窗口 Alt+空格+X 最大化当前窗口 Alt+空格+M 移动窗口 Alt+空格+S 改变窗口大小 Alt+Tab 两个程序交换 Alt+255 QQ号中输入无名人 Alt+F 打开文件菜单 Alt+V 打开视图菜单 Alt+E 打开编辑菜单 Alt+I 打开插入菜单 Alt+O 打开格式菜单

Alt+T 打开工具菜单 Alt+A 打开表格菜单 Alt+W 打开窗口菜单 Alt+H 打开帮助菜单 Alt+回车查看文件属性 Alt+双击文件查看文件属性 Alt+X 关闭C语言 Shift快捷键 Shift+空格半\全角切换 Shift + Delete 永久删除所选项,而不将它放到“回收站”中。拖动某一项时按 CTRL 复制所选项。 拖动某一项时按 CTRL + SHIFT 创建所选项目的快捷键。WORD全套快捷键小技巧 CTRL+O 打开 CTRL+P 打印 CTRL+A 全选 CTRL+[/] 对文字进行大小设置(在选中目标情况下) CTRL+D 字体设置(在选中目标情况下) CTRL+G/H 查找/替换; CTRL+N 全文删除; CTRL+M 左边距(在选中目标情况下); CTRL+U 绘制下划线(在选中目标情况下);

键盘快捷键大全

键盘快捷键大全 一、常见用法: F1显示当前程序或者windows的帮助内容。 F2当你选中一个文件的话,这意味着“重命名” F3当你在桌面上的时候是打开“查找:所有文件”对话框 F10或ALT激活当前程序的菜单栏 windows键或CTRL+ESC打开开始菜单 CTRL+ALT+DELETE在win9x中打开关闭程序对话框 DELETE删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE 删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站 CTRL+N新建一个新的文件CTRL+O打开“打开文件”对话框 CTRL+P打开“打印”对话框CTRL+S保存当前操作的文件 CTRL+X剪切被选择的项目到剪贴板 CTRL+INSERT 或CTRL+C复制被选择的项目到剪贴板 SHIFT+INSERT 或CTRL+V粘贴剪贴板中的内容到当前位置 ALT+BACKSPACE 或CTRL+Z 撤销上一步的操作 ALT+SHIFT+BACKSPACE重做上一步被撤销的操作

Windows键+M最小化所有被打开的窗口。 Windows键+CTRL+M重新将恢复上一项操作前窗口的大小和位置 Windows键+E打开资源管理器 Windows键+F打开“查找:所有文件”对话框 Windows键+R打开“运行”对话框 Windows键+BREAK打开“系统属性”对话框 Windows键+CTRL+F打开“查找:计算机”对话框 SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单 SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不 放,可以跳过自启动的宏 ALT+F4关闭当前应用程序ALT+SPACEBAR打开程序最左上角的菜单 ALT+TAB切换当前程序ALT+ESC切换当前程序 ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 PRINT SCREEN将当前屏幕以图象方式拷贝到剪贴板 ALT+PRINT SCREEN将当前活动程序窗口以图象方式拷贝到剪贴板 CTRL+F4关闭当前应用程序中的当前文本(如word中)

51单片机矩阵键盘扫描程序

/*----------------------------------------------- 名称:矩阵键盘依次输入控制使用行列逐级扫描 论坛:https://www.360docs.net/doc/1a9935300.html, 编写:shifang 日期:2009.5 修改:无 内容:如计算器输入数据形式相同从右至左使用行列扫描方法 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 #define KeyPort P1 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempData[8]; //存储显示值的全局变量 void DelayUs2x(unsigned char t);//us级延时函数声明 void DelayMs(unsigned char t); //ms级延时 void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数 unsigned char KeyScan(void);//键盘扫描 unsigned char KeyPro(void); void Init_Timer0(void);//定时器初始化 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { unsigned char num,i,j; unsigned char temp[8]; Init_Timer0(); while (1) //主循环 { num=KeyPro();

51单片机按键控制花样灯

51单片机按键控制花样灯 时间:2018-09-10 13:50:11 来源:51hei 作者: /**************************************************** * 本程序实现用按键控制花样灯。 * * 当K1按下时,灯从0xfe向左跑一遍; * * 当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置; * * 当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。 * * 当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。 * * 当K5键按下时,结束任意正在进行的程序,使LED灯全部熄灭。 * ******************************************************/ ************************************************* 连接方法:P0接独立按键JP5。P2接LED灯接口JP1 * ***********************************************************/ #include //头文件,函数声明 #include //定义按键所在位 sbit K1=P0^0。 sbit K2=P0^1。 sbit K3=P0^2。 sbit K4=P0^3。 sbit K5=P0^4。 unsigned char led。 unsigned char j。 void delayms(unsigned char ms> // 1ms标准延时 { while(ms--> { for(j=0。j<110。j++>。 //还是无法设置比较标准的延时,如1S等;所以应该用定时器延时才最准确 } } void main(> { //P2=led。 unsigned int i。

51单片机键盘设置

\\\§8.3 键盘接口技术 一、键盘输入应解决的问题 键盘是一组按键的集合,它是最常用的单片机输入设备. 操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘, 如:ASCⅡ码键盘、BCD码键盘等; 靠软件识别的称为非编码键盘。 在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。 本节着重讨论非编码键盘的原理、接口技术和程序设计。 键盘中每个按键都是—个常开关电路,如图所示。

1.按键的确认:P1.7=1 无按键; P1.7=0 有按键; 2.去抖动 去抖动的方法: ①硬件去抖动采用RS触发器: 优点: 速度快,实时, 缺点: 增加了硬件成本 ②软件去抖动采用延时方法 延时5—10ms 延时5—10ms P1.7=0 确认P1.7=0 P1.7=1 (去前沿抖动) (去后沿抖动) 二、独立式键盘

每个I/O口连接一个按,S1 P1.0 S2 P1.1 ………………………. S8 P1.7 软件: START:MOV P1,#0FFH ;置P1口为高电平 JNB P1.0, RS1 ; S1按下,程序去执行RS1 JNB P1.1, RS2 ; S2按下,程序去执行RS2

JNB P1.2, RS3 ; S3按下,程序去执行RS3 JNB P1.3, RS4 ; S4按下,程序去执行RS4 JNB P1.4, RS5 ; S5按下,程序去执行RS5 JNB P1.5, RS6 ; S6按下,程序去执行RS6 JNB P1.6, RS7 ; S7按下,程序去执行RS7 JNB P1.7, RS8 ; S8按下,程序去执行RS8 AJMP START ; 继续扫描按键 …………. RS1: AJMP PK1 ; RS2: AJMP PK2 ; RS3: AJMP PK3 ; RS4: AJMP PK4 ; RS5: AJMP PK5 ; RS6: AJMP PK6 ; RS7: AJMP PK7 ; RS8: AJMP PK8 ; AJMP START ; 无键按下,继续扫描………………… PK1: ……….. ;按键S1功能处理程序 AJMP START ;处理S1按键后, 继续扫描PK2: ……….. ;按键S2功能处理程序

史上最全CAD快捷键命令大全(图文版、文字版、键盘版)

在CAD操作中我们常用一些快捷键来代替鼠标操作从而提高绘图效率,以下是小编为大家整理的常用快捷键大全,涵盖图文版、文字版、键盘版。 图文版:

文字版: 一、常用功能键 F1: 获取帮助 F2: 实现作图窗和文本窗口的切换 F3: 控制是否实现对象自动捕捉 F4: 数字化仪控制 F5: 等轴测平面切换 F6: 控制状态行上坐标的显示方式 F7: 栅格显示模式控制 F8: 正交模式控制 F9: 栅格捕捉模式控制 F10: 极轴模式控制 F11: 对象追踪模式控制 (用ALT+字母可快速选择命令,这种方法可快捷操作大多数软件。) 二、常用CTRL,ALT快捷键 ALT+TK 如快速选择 ALT+NL 线性标注 ALT+VV4 快速创建四个视口 ALT+MUP 提取轮廓 Ctrl+B: 栅格捕捉模式控制(F9) Ctrl+C: 将选择的对象复制到剪切板上 Ctrl+F: 控制是否实现对象自动捕捉(F3) Ctrl+G: 栅格显示模式控制(F7) Ctrl+J: 重复执行上一步命令 Ctrl+K: 超级链接 Ctrl+N: 新建图形文件 Ctrl+M: 打开选项对话框 Ctrl+O:打开图象文件 Ctrl+P:打开打印对说框 Ctrl+S:保存文件 Ctrl+U:极轴模式控制(F10) Ctrl+v:粘贴剪贴板上的内容 Ctrl+W:对象追踪式控制(F11) Ctrl+X:剪切所选择的内容

Ctrl+Y:重做 Ctrl+Z:取消前一步的操作 Ctrl+1:打开特性对话框 Ctrl+2:打开图象资源管理器Ctrl+3:打开工具选项板 Ctrl+6:打开图象数据原子 Ctrl+8或QC:快速计算器 双击中键:显示里面所有的图像三、尺寸标注 DLI:线性标注 DRA:半径标注 DDI:直径标注 DAL:对齐标注 DAN:角度标注 DCO: 连续标注 DCE:圆心标注 LE:引线标注 TOL:公差标注 四、捕捉快捷命令 END:捕捉到端点 MID:捕捉到中点 INT:捕捉到交点 CEN:捕捉到圆心 QUA:捕捉到象限点 TAN:捕捉到切点 PER:捕捉到垂足 NOD:捕捉到节点 NEA:捕捉到最近点 五、基本快捷命令 AA:测量区域和周长(area) ID:指定坐标 LI:指定集体(个体)的坐标AL:对齐(align) AR:阵列(array) AP:加载*lsp程系 AV:打开视图对话框(dsviewer)

第13讲51单片机按键电路

标题:键盘接口电路 教学目标与要求: 1.键盘去抖动和连接、控制方式 2.独立式按键及其接口电路 3.矩阵式键盘及其接口电路 授课时数:2 教学重点:.矩阵式键盘及其接口电路 教学内容及过程: 一、键盘接口概述 1、按键开关去抖动问题 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms 在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图9-12是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。 软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步 骤进行确认,从而可消除抖动的影响。

2.编制键盘程序 一个完善的键盘控制程序应具备以下功能: (1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。 (2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。 二、独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。 2.矩阵式键盘 I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点: ①占用I/O端线较少; ②软件结构教复杂。 适用于按键较多的场合。 3.键盘扫描控制方式 ⑴程序控制扫描方式 键处理程序固定在主程序的某个程序段。 特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 ⑵定时控制扫描方式 利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。 特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 ⑶中断控制方式 中断控制方式是利用外部中断源,响应键输入信号。 特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。 三、独立式按键及其接口电路 1、按键直接与I/O口连接

相关文档
最新文档