原标题: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程序相关推荐

  1. 51单片机c语言延时计算软件,51单片机精确延时程序大集合+初值计算工具

    在论坛上看到不少不错的延时程序,整理如下共同分享: 精确延时计算公式: 延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+5 ;延时5秒左右 DELAY5S:PUSH   04H;2个 ...

  2. 单片机c语言 王东锋,基于51单片机的输液报警系统设计

    高扬 摘 要:本设计是以AT89C51单片机为核心,利用光电传感器来检测设备液体的流动情况.当吊瓶内有点滴落下时,可通过红外检测装 1前言 随着信息技术和计算机技术的发展,信息革命在工业.医疗和控制领 ...

  3. 51单片机c语言学习感想,学习51单片机心得体会

    在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...

  4. 单片机c语言交通灯源程序,51单片机用C语言实现交通灯_红绿灯_源程序

    单片机 AT STC C语言 C 89c51 89c52 设计 交通灯 仿真 毕业论文 程序设计 毕业设计 课题设计 51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交 ...

  5. 单片机c语言99秒倒计时,51单片机99秒倒计时C语言源程序

    51单片机99秒倒计时C语言源程序 51单片机实现数码管99秒倒计时,其实很简单,就是使用定时器中断来实现.目的就是学习怎样用单片机实现倒计时,从而实现一些延时控制类的东西,99秒只是一个例子,你完全 ...

  6. 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...

    RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...

  7. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...

    描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...

  8. 单片机c语言电梯程序设计,基于51单片机的模拟电梯控制系统设计.doc

    摘要:本文介绍了一种电梯模拟控制系统,包括怎样利用对STC89C52进行编程从而对电梯实现自由控制的方式.该系统采用了STC89C52芯片进行控制,用单片机进行编程,能实现的功能非常多而且方便设计,并 ...

  9. 51单片机c语言头文件大全,51单片机keilC中头文件absacc.h作用

    当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h. 在程序中,用"#include"即可使用其中定义的宏来访问绝对地址,包括:CBYTE. ...

  10. 单片机c语言小车转圈,用51单片机编写的智能小车全程前进的C程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /**************************************************************************** ...

最新文章

  1. python控制手机发短信_python-在python3中使用容联云通讯发送短信验证码
  2. 关闭Eclipse回车自动添加大括号
  3. [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)
  4. firefox如何不让网站登录失效_Firefox Preview 4开放下载:引入登录管理、热门网站等功能...
  5. CNN in MRF: Video Object Segmentataion via Inference in A CNN-Based Higher-Order Spatio-Temporal MRF
  6. 对象key值为数字时的处理
  7. python写的程序怎么打包成exe_python--- 如何将自己的程序打包成exe ?
  8. 利用子网掩码划分子网
  9. 教育信息化2.0建设解决方案
  10. 手机号码归属地查询 java_JAVA手机号码归属地查询
  11. 关于app的几个核心功能的设计想法
  12. solidity学习-投票
  13. Docker(2) 安全加密,habor仓库和Docker网络
  14. 热门表情包+头像+壁纸自动采集多分类微信小程序源码下载支持多种流量主模式
  15. vba 将http.responseText返回的 unicode字符转换成中文
  16. Proteus仿真电路笔记
  17. HyperLedger Fabric中Fabric-CA的使用
  18. 【Docker】搭建Docker私库Harbor
  19. Fragment not attached to Activity 解决方案
  20. List中根据对象字段快速查找对象

热门文章

  1. 基于OpenCV的直方图匹配
  2. 《Greenplum企业应用实战》一导读
  3. 一起ORACLE数据库中数据查询结果不一致问题的排查过程
  4. 关于mongodb ,redis,memcache之间见不乱理还乱的关系和作用
  5. VC++6.0如何删除文件
  6. 网络故障排除连载之一:常用排除方法综述
  7. 蓝光电视再降价 海信42吋液晶不足五千
  8. Arcgis mobile介绍
  9. java junit 运行_appium+java+junit demo运行
  10. 数据库归档及热点库_postgresql连续归档及时间点恢复的操作