标题:
单片机定时器扫描按键,实现按键时间不同功能不同的源码
[打印本页]
作者:
gy51xx
时间:
2018-9-23 10:05
标题:
单片机定时器扫描按键,实现按键时间不同功能不同的源码
单片机定时器扫描按键,实现按键时间不同功能不同
单片机源程序如下:
#include<stc15f2k60s2.h>
sbit KEY1 = P2^0; //定义KEY1为P2.0脚
sbit LED1 = P5^0; //定义LED1为P5.0脚
sbit LED2 = P5^1; //定义LED2为P5.1脚
unsigned char key_flag;
unsigned int count;
void timer0init()
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0X00; //设定定时器初值
TH0 = 0X28; //设定定时器初值
EA = 1; //总中断打开
ET0 = 1; //定时器0中断打开
TF0 = 0; //清楚TF0标志
}
void main()
{
P0M0=0X00;
P0M1=0X00;
P2M0=0X00;
P2M1=0X00;
P4M0=0X00;
P4M1=0X00;
P5M0=0X00;
P5M1=0X00;
timer0init();
while(1)
{
if(KEY1 == 0)
{
key_flag=1;
TR0 = 1;
}
else
{
TR1 = 1;
key_flag=0;
count=0;
}
if(key_flag)
{
if((10<=count)&&(count<400))
{
LED1 = 0;
}
else if((400<=count)&&(count<800))
{
LED1 = 1;
LED2 = 0;
}
else if((800<=count)&&(count<1200))
{
LED1 = 1;LED2 = 1;
}
else
{
LED1 = 1;
LED2 = 1;
LED3 = 1;
}
}
}
}
void Timer0_isr(void) interrupt 1 using 1
{
TL0 = 0X00; //设定定时器初值
TH0 = 0X28; //设定定时器初值
count++;
}
复制代码
所有资料51hei提供下载:
key.docx
(13.71 KB, 下载次数: 17)
2018-9-23 10:05 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
tianqi911
时间:
2018-10-18 14:16
参考一下。
作者:
快乐眼泪
时间:
2018-10-18 18:47
正在学习,谢谢分享!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1