单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...
单片机一键长按与短按按键实现的c程序有问题,实在不知道是哪里有问题,请帮助修改一下,谢谢!
功能如下:长按2秒灯全亮(我用的开发板),短按实现流水灯。
程序如下:
#include
#include
#define uchar unsigned char
#define uint unsigned int
uint num,flag,gb,ga;
uchar aa=0xfe;
sbit key1=P3^7;
void delayms(uint);
void delayms(uint x) //延时函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void init() //初始化函数
{
TMOD=0x01; //设置定时器0为工作方式1
TH0=(65536-1000)/256; //装初值1ms一次中断
TL0=(65536-1000)%256;
EA=1;
ET0=1;
}
void keyscan()
{
if (key1==0) //按键去抖
delayms(10);
if (key1==0) //有按键按下则启动定时器
{
TR0=1;
gb=1;}
if((!key1==0)&&(gb==1))
{TR0=0; //按键弹起则关闭定时器
ga=1;} //ga,gb分别表示按键按下和弹起过程有效标志位
if(num>2000) //长按有效
{ flag=1;num=0;}
while(flag==1)
{ P1=0; //灯全亮
if(key1==0) //有按键按下则退出长按程序
flag=3;
}
if((num<2000)&&(ga==1)) //短按有效
{flag=2;num=0;}
while(flag==2) //流水灯循环亮
{ P1=aa;
delayms(500);
aa=_crol_(aa,1);
if(key1==0) //有按键按下则退出短按程序
flag=3;}
}
void main()
{
init();
while(1)
{
keyscan();
}
}
void T0_time() interrupt 1
{
TH0=(65535-1000)/256;
TL0=(65535-1000)%256;
num++;
}
单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...相关推荐
- 单片机c语言必背代码_最适合单片机编程的高级语言,除了C语言,别无选择!...
单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢 ...
- 51单片机c语言宏定义是什么意思,51单片机的C语言宏定义应用.doc
1.预编译处理是单片机C语言程序设计中经常用到的一种方法.通过一些预处理命令可以为C语言本身提供许多功能和符号的扩充,增强C语言程序的灵活性和方便性. 常用的预处理命令有:宏定义.文件包含.条件编译等 ...
- 单片机c语言有没有跳转指令,51单片机跳转指令
@ 无条件转移bai指令(共4条) LJMP addr16 : PC〈-du- addr16 AJMP addr11 : PC〈-- PC+2 , PC10-0〈-- addr11 SJMP rel ...
- 单片机c语言常用的语句有几条,单片机C语言常用语句详解
<单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程中常见语句的总结.首先,C51定义 ...
- 单片机c语言程序设计中可以不分大小写,单片机考试复习题及答案
选择题 1.主频为12MHz的单片机他的机器周期为(c). A.1/12微秒 B.0.5微秒 C.1微秒 D.2微秒 2.MCS-51系列单片机是属于(C)体系结构. A.冯诺依曼 B.普林斯顿 C. ...
- atmega16单片机c语言程序设计经典实例pdf,《AVR单片机C语言程序设计实例精粹》.pdf...
AutodeskAsiaPteLtd主编的<AutodeskRevitStructure2012应用宝典>是对AutodeskRevitStructure2012进行全面介绍的权威用书.全 ...
- 单片机c语言每隔1m闪烁一次,单片机c语言闪烁灯程序
1.闪烁灯 1.实验任务 如图所示:在端口上接一个发光二极管L1,使L1 在不停地一亮 灭,一亮一灭的时间间隔为秒. 2.电路原理图 图系统板上硬件连线把"单片机系统"区域中的端口 ...
- 51单片机c语言数字输入输出,第五章 51单片机C语言程序--输入输出接口.pdf
四川师范大学成都学院 51单片机原理及应用 单片机输入/输出口(I/O口) 主讲教师:刘强 四川师范大学成都学院电子竞赛培训实验中心(刘强) 明德.博学.求实.创新 复习1.单片机的外观 AT89C5 ...
- 单片机C语言拉高1位,第二讲 单片机C语言之12864液晶显示
前面一讲我们焊接了C51的最小系统.这讲里我们将继续焊接上液晶显示相关电路,并分别实现用12864显示一个汉字,字符串,数字,浮点数以及可调节的电子时钟. 概念 点阵式液晶显示模块(LCD)广泛应用于 ...
- 51单片机c语言测距,超声波HM55B测距(STC10F08单片机C程序)
名称:超声波测距 作者:Acebit本文引用地址:http://www.eepw.com.cn/article/201611/320529.htm 信息:STC10F08单片机,晶振11.0592MH ...
最新文章
- 如何评价小马智行投后估值60亿美元?无人车的追涨杀跌已经开始
- 南邮宽字节(sql_gbk)注入
- python discuz搜索api_Python + Bottle + 谷歌搜索Api 实现简单搜索引擎
- 【kafka系列】centos7系统安装kafka
- 北风设计模式课程---创建模式、结构模式、行为模式的区别
- yolov5-detect.py解析与重写
- ubuntu开机自动关闭独显,使用集成显卡
- 中文命名实体识别总结
- python的debug为什么点第一行直接运行结束了_Python 代码调试工具 pdb 快速入门
- LeetCode刷题指南
- SDM660 xbl阶段使能I2C 设备实现
- vc++指定区域截屏
- 《初等数论》:最大公因数与最小公倍数
- Ubuntu配置GoldenDict词典翻译-划线翻译
- XXOO 传说90黑阔论坛
- php 实现curl下载,如何利用phpcurl实现多进程下载文件类
- 数据库监控设计-DBA-专属
- 如何使用html代码给文字加边框?
- Java之自动拆装箱及享元模式应用
- 青春末路,独自行走(转)
热门文章
- jquery判断页面、图片是否加载完成
- 120.数据缓存cache的基本概念
- C++程序设计之可调用对象与标准库function
- Matlab中的CVX工具包安装
- android 超链接事件,Android实现捕获TextView超链接的方法
- android如何添加gif,Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1)...
- 050_学习的CSS属性
- Android源代码介绍,Android-Log源码详解
- 大学计算机网络技术考试题,2017年大学生计算机考试的试题
- android webview静态方法,android – 将静态HTML加载到Webview中