原创 51单片机系列五:(定时器实现)长按键识别

2009-7-2 21:21 3034 8 9 分类: MCU/ 嵌入式

实验简介:


本实验针对的对象:单片机初学者


编程语言:51单片机C语言


编写时间:2009.6.25


附件提供的资源:  1.      keil工程包(包括C语言源代码和hex文件等等)


                                    2.     Proteus仿真图


程序员: 小邹


特别说明: 欢迎大家下载,并提出修改或者优化意见


程序说明:一般情况下是按一下键led就亮,本程序实现的功能是你要按住一个键几秒钟之后led才亮,如果你再按住这个键几秒钟,led就灭


程序源代码展示:


#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key="P3"^7;
sbit led="P1"^0;
uchar tt;
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--); 
}
void main()
{
 key=1;
 led=1;
 while(1)
 {
 if(key==0)
 {
  
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;
  while(1)
  {
   if(key==1)
   {
    break;
   }
  }
 }
 }
}
void timer_0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 if(key==0)
 {
  tt++;
 }
 else
 {
  TR0=0;
 }
 if(tt==60)
 {
  led=~led;
  delay(500);
  tt=0;
 }



}


请在这里下载附件:rar

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户381372 2009-8-13 14:59

#include #include #define nop _nop_() sbit keyboard=P3^0; sbit ledstatus=P0^7; void delay(unsigned int time); bit flag=0; void main(void) { ledstatus=0; while(1) { if(!keyboard) { delay(60000); delay(60000); if(!keyboard) { if(!flag) { ledstatus=1; flag=1;//亮标志 } else { ledstatus=0; flag=0;//灭标志 } } } } } void delay(unsigned int time) { unsigned char i; for(i=0;i
相关推荐阅读
用户209461 2010-05-02 09:00
分享本人写的一个八路抢答器程序(带Proteus仿真)
      请在此处下载C语言源代码和Proteus(7.5)仿真图:...
用户209461 2010-03-09 16:26
用空闲时间给一位网友焊的单片机小系统板(图)
 这是我过年的时候利用空闲时间给一位网友焊的单片机小系统开发板  单片机芯片: STC89C52供电方式:   USB供电(电源经过电容的滤波,从而使得杂波和干扰都比较小)下载方式:   串口直接下载...
用户209461 2010-03-09 09:03
基于I2C (24C02) 写的一个流水灯
设计名称:基于I2C (24C02) 写的一个流水灯软件: Keil + Proteus仿真编程语言: C51功能描述: 本设计通过查表法实现一个流水灯,先通过I2C将一个流水灯的编码表存入24C02...
用户209461 2010-02-07 13:10
51单片机+1602做的一个电子表(带初始化功能)
 设计名称:51单片机+1602做的一个电子表(带初始化功能)编程软件:keil仿真软件:proteus编程语言:C语言程序总长度:204行功能描述: 上电之后,1602上面显示时分秒,有两个按键可以...
用户209461 2010-02-05 18:03
51单片机+1602做的一个电子表(显示时分秒)
 设计名称:基于51单片机和1602的电子表设计编程语言: C语言程序长度:117 行仿真软件: proteus功能描述: 显示时、分、秒,但是无初始化功能,下一步要做的就是加上按  键,能对该电子表...
用户209461 2010-01-17 10:21
最简单的51单片机串口通讯程序(C语言)
设计名称:最简单的51单片机串口通讯程序(C语言)编程语言:C语言代码总长度:20行功能描述:在PC机上通过“串口调试助手”这个软件,向单片机发送数据,单片机的P1口接受SBUF的数据,P1.0有个l...
EE直播间
更多
我要评论
1
8
关闭 站长推荐上一条 /3 下一条