单片机c语言的按键程序,51单片机按键扫描C程序
原标题:51单片机按键扫描C程序
大二上学期做过80 的按键程序,当时项目要求实现按键控制 屏显示并且接收GPRS传来的数据。当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的拼接成128*16的。做完之后虽然可以运行,但是很勉强,尤其是 程序没有下面这位哥写得简洁缜密,所以就贴过来,以后用到的时候直接研究:
unsigned char key,key_h,kpush;
unsigned int key_l;
//按键连接到p1.0、p1.1、p1.2
void int_t0(void) 1 {
unsigned char dd,i;
TL0=TL0+30;TH0=0xfb; //800
/* 按键判别 */
if ((P1&0x7)==0x7) {
if ((key_l>30)&&(key_l<800)&&(key_h>30)) { //释放按键,如果之前按键时间少于1秒,读入键值
key=kpush;
}
if ((++key_h)>200) key_h=200;
key_l=0;
if (key>=0x80) key=0; //如果之前的按键为1秒,清除键值
} else {
kpush=P1&0x7;
key_l++;
if ((key_l>800)&&(key_h>30)) { //如果按键超过1秒,键值加0x80标志键
key=kpush|0x80;
key_h=0;
key_l=0;
}
}
}
void main(void) {
TMOD=0x1;TR0=1;ET0=1;EA=1;
while (1) {
while (!key) {}
switch (key) {
case 1:break;
case 2:break;
}
}
}
责任编辑:
单片机c语言的按键程序,51单片机按键扫描C程序相关推荐
- 51单片机c语言延时计算软件,51单片机精确延时程序大集合+初值计算工具
在论坛上看到不少不错的延时程序,整理如下共同分享: 精确延时计算公式: 延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+5 ;延时5秒左右 DELAY5S:PUSH 04H;2个 ...
- 单片机c语言 王东锋,基于51单片机的输液报警系统设计
高扬 摘 要:本设计是以AT89C51单片机为核心,利用光电传感器来检测设备液体的流动情况.当吊瓶内有点滴落下时,可通过红外检测装 1前言 随着信息技术和计算机技术的发展,信息革命在工业.医疗和控制领 ...
- 51单片机c语言学习感想,学习51单片机心得体会
在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...
- 单片机c语言交通灯源程序,51单片机用C语言实现交通灯_红绿灯_源程序
单片机 AT STC C语言 C 89c51 89c52 设计 交通灯 仿真 毕业论文 程序设计 毕业设计 课题设计 51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交 ...
- 单片机c语言99秒倒计时,51单片机99秒倒计时C语言源程序
51单片机99秒倒计时C语言源程序 51单片机实现数码管99秒倒计时,其实很简单,就是使用定时器中断来实现.目的就是学习怎样用单片机实现倒计时,从而实现一些延时控制类的东西,99秒只是一个例子,你完全 ...
- 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...
RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...
- 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...
描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...
- 单片机c语言电梯程序设计,基于51单片机的模拟电梯控制系统设计.doc
摘要:本文介绍了一种电梯模拟控制系统,包括怎样利用对STC89C52进行编程从而对电梯实现自由控制的方式.该系统采用了STC89C52芯片进行控制,用单片机进行编程,能实现的功能非常多而且方便设计,并 ...
- 51单片机c语言头文件大全,51单片机keilC中头文件absacc.h作用
当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h. 在程序中,用"#include"即可使用其中定义的宏来访问绝对地址,包括:CBYTE. ...
- 单片机c语言小车转圈,用51单片机编写的智能小车全程前进的C程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /**************************************************************************** ...
最新文章
- python控制手机发短信_python-在python3中使用容联云通讯发送短信验证码
- 关闭Eclipse回车自动添加大括号
- [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)
- firefox如何不让网站登录失效_Firefox Preview 4开放下载:引入登录管理、热门网站等功能...
- CNN in MRF: Video Object Segmentataion via Inference in A CNN-Based Higher-Order Spatio-Temporal MRF
- 对象key值为数字时的处理
- python写的程序怎么打包成exe_python--- 如何将自己的程序打包成exe ?
- 利用子网掩码划分子网
- 教育信息化2.0建设解决方案
- 手机号码归属地查询 java_JAVA手机号码归属地查询
- 关于app的几个核心功能的设计想法
- solidity学习-投票
- Docker(2) 安全加密,habor仓库和Docker网络
- 热门表情包+头像+壁纸自动采集多分类微信小程序源码下载支持多种流量主模式
- vba 将http.responseText返回的 unicode字符转换成中文
- Proteus仿真电路笔记
- HyperLedger Fabric中Fabric-CA的使用
- 【Docker】搭建Docker私库Harbor
- Fragment not attached to Activity 解决方案
- List中根据对象字段快速查找对象
热门文章
- 基于OpenCV的直方图匹配
- 《Greenplum企业应用实战》一导读
- 一起ORACLE数据库中数据查询结果不一致问题的排查过程
- 关于mongodb ,redis,memcache之间见不乱理还乱的关系和作用
- VC++6.0如何删除文件
- 网络故障排除连载之一:常用排除方法综述
- 蓝光电视再降价 海信42吋液晶不足五千
- Arcgis mobile介绍
- java junit 运行_appium+java+junit demo运行
- 数据库归档及热点库_postgresql连续归档及时间点恢复的操作